Имя: Пароль:
1C
1С v8
УТ11 обращение к форме внешней обработки из регламентного задания
0 ildary
 
10.07.17
09:46
Уважаемые специалисты, подскажите пожалуйста возможно ли такое: есть внешняя обработка, которая закрывает резервы, для успешной работы (эмуляция табличной части документа) - в ней есть своя табличная часть, к которой идет обращение из формы обработки.

Все работает, теперь хочется эту внешнюю обработку вызывать из регламентного задания (чтобы не человек нажимал кнопку "Снять старые резервы", а ночью все само делалось).

Проблема в том, что в рег. заданиях есть только серверные процедуры, форм нет и непонятно, как обратиться к нужной процедуре формы из рег.задания. Переписать обработку целиком на серверную процедуру не получается - т.к. табличная часть обработки перестает себя вести так Т.Ч формы - не работает процедура ПолучитьИдентификатор().
1 mehfk
 
10.07.17
09:48
(0) Нужно перебороть себя и переписать код для работы на сервере.
2 senior
 
10.07.17
09:48
(0) Неправильная архитектура, в формах должно быть только то, что относится к интерфейсу, надо переносить в модуль обработки.
3 PuhUfa
 
10.07.17
09:49
(0) Зачем тебе в регламентом задании вообще форма? ТЗ тебя спасет
4 ildary
 
10.07.17
09:54
(1)..(3) я понимаю, что так и надо сделать - перенести все на сервер, но не понимаю чем заменить сравнение идентификаторов у двух Т.Ч. - без формы не работает функция ПолучитьИдентификатор().
5 butterbean
 
10.07.17
09:57
(4) ПолучитьИдентификатор() — это зло при обработке данных, переделывай все на индексы таблиц и т.п.
6 ildary
 
10.07.17
10:01
(5) спасибо за пинок в нужном направлении.
7 ildary
 
10.07.17
10:41
Эх не так все просто - метод ОбеспечениеСервер.ТаблицаЗаполнениеОбеспечения() и ВыделенныеСтрокиВТаблицу() требует идентификатор, а тянуть еще и их - это тянуть и переписывать все прочие зависимости.
8 butterbean
 
10.07.17
10:53
(7) передавай индексы строк вместо идентификаторов
9 ildary
 
10.07.17
10:59
(8) бесполезно, так как в  ОбеспечениеСервер.ВыделенныеСтрокиВТаблицу() используется ТаблицаТовары.НайтиПоИдентификатору(Идентификатор); а ТаблицаТовары - не из формы вызывается (где НайтиПоИдентификатору() работает, а из серверной процедуры). А тянуть все процедуры с переписыванием очень не хочется, так как впереди апгрейд на 11.3 (а в перспективе и на 11.4).
10 mehfk
 
10.07.17
11:01
(9) Не хочешь или не можешь сам - делегируй это кому-нибудь другому.
11 ildary
 
10.07.17
11:03
(10) не хочу рожать монстра, перетягиванием кучи процедур из общих модулей. Договорились, что специально обученный человек будет изредка запускать эту обработку вручную.