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