Переписать процедуру в серверную с клиентской

1. Malcev_a 21.11.24 10:31 Сейчас в теме
Всем привет.
Есть обработка, которая меняет цены в вечах, она работает на клиенте.
Есть задача поставить ее в регламентное расписание, для этого ее нужно переделать из ВызовКлиентскогоМетода в ВызовСерверногоМетода.

Но в команде есть ОписаниеОповещения, которое работает только на клиенте. И оно обязательно нужно как аргумент для процедуры ОборудованиеВесовоеОборудованиеКлиент.НачатьОчисткуТоваровВВесахСПечатьюЭтикеток

В общем как это все переписать пока не понимаю. Гуглил, читал. Буду благодарен если дадите пищу для размышления куда копать и как сделать.

Процедура ВыполнитьКоманду(Идентификатор, ОбъектыНазначения = неопределено) Экспорт
	
	
	Для каждого Строка из ЭтотОбъект.Весы Цикл
		Строка.Обработано = Ложь;
	КонецЦикла;
			
	Массив = ЭтотОбъект.Весы.НайтиСтроки(Новый Структура("Выгружать, Обработано", Истина, Ложь));
	Если Массив.Количество() = 0 Тогда
		Сообщить("Не выбрано устройств к выгрузке");
		Возврат
	КонецЕсли; 
	
	ИдентификаторУстройства = Массив[0].Оборудование;
	Массив[0].Обработано = Истина;
				
	ДополнительныеПараметры = Новый Структура;
	//ДополнительныеПараметры.Вставить("СостояниеВыполнения", СостояниеВыполнения);
	ДополнительныеПараметры.Вставить("ТекущиеВесы", Массив[0].Оборудование);
	ДополнительныеПараметры.Вставить("ТаблицаТоваров", ПолучитьТаблицуТоваров(Массив[0].Оборудование)); 
	
	Состояние("Очистка товаров: " + Массив[0].Оборудование);
	
	Если ЭтотОбъект.ОчищатьТоварыПередВыгрузкой Тогда	
		ОборудованиеВесовоеОборудованиеКлиент.НачатьОчисткуТоваровВВесахСПечатьюЭтикеток(
			Новый ОписаниеОповещения("ОчиститьТоварыЗавершение", ЭтотОбъект, ДополнительныеПараметры),
			Новый УникальныйИдентификатор, ИдентификаторУстройства);		
	Иначе
		ОчиститьТоварыЗавершение(Новый Структура("Результат", "Пропуск"), ДополнительныеПараметры)
	КонецЕсли;

КонецПроцедуры
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user2107191 21.11.24 10:35 Сейчас в теме
(1)
Но в команде есть ОписаниеОповещения, которое работает только на клиенте. И оно обязательно нужно как аргумент для процедуры ОборудованиеВесовоеОборудованиеКлиент.НачатьОчисткуТоваровВВесахСПечатьюЭтикеток

Ну так ты все равно эту процедуру в регламенте не сможешь использовать. Хоть с опевещением, хоть без. Потому что она тоже на Клиенте.

Ищи дальше момент, где она лезет на сервер. Или не лезет.
3. starik-2005 3090 21.11.24 10:35 Сейчас в теме
Весы, как и любое другое подключаемое оборудование, подтыкается к 1С в виде клиентской внешней компоненты. На сколько я знаю, в базовых конфигурациях от 1С нет поддержки оборудования в серверных вызовах. Придется писать самостоятельно. Если уровень программиста 1С - это подтыкновение оборудования и выбор его в списке, то такой программист скорее всего не осилит. Сорян.
orakool; user2107191; +2 Ответить
4. Malcev_a 21.11.24 11:03 Сейчас в теме
(3)
ется писать самостоятельно. Если уровень программиста 1С - это подтыкновение оборудования и выбор его в списке, то такой п


Ну да) Я программист начинающий)) Спасибо за информацию
5. starik-2005 3090 21.11.24 11:14 Сейчас в теме
(4)
Спасибо за информацию
Сделайте внешнюю обработку и запускайте клиентский сеанс раз в эндцать минут, открывающий эту обработку. Обработка в "ПриОткрытии" пусть творит всю ту дичь, ну и после творения дичи пусть завершает работу - есть такие слова волшебные, в синтаксис-помощнике написаны.

Как вариант простой реализации. Можно запуск в фоне вендовым планировщиком сделать.
6. user2107191 21.11.24 11:25 Сейчас в теме
(5)
есть такие слова волшебные, в синтаксис-помощнике написаны
"И нужно обязательно дунуть, потому что если не дунуть, никакого чуда не произойдет" (С) А.Акопян.
7. starik-2005 3090 21.11.24 11:30 Сейчас в теме
А еще можно отдельного юзера сделать, навесить ему при открытии какую-нить форму, и сделать там обработчик ожидания на тыщу секунд, например, в коде которого творить ту самую дичь по очистке весов.

Но да, лицуха будет юзаться тогда перманентно. С другой стороны, лицуха клиентская вроде как дешевле двух часов приличного разраба выйдет, который это все пилить станет.

Я так этикетки печатал на принтере через как раз подключаемое оборудование. Запускался отдельный сеанс под юзером "Принтер этикетосов", там обработка раз в секунду проверяла наличие данных с ТСД, ну и если они там появились - печатала этикетос, в данные ставя признак того, что этот этикетос уже напечатан. Вот ваще лениво было разбираться, откуда там ноги растут...
user2107191; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот