Category:

Блеск и нищета обработок 1С



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


В обычном интерфейсе для этого код, который должен был выполняться на сервере, выносился в модуль обработки. А в форму выносилась только интерфейсная обвязка.


При этом серверная часть могла анализировать режим работы и если обработка запускалась из формы, то на форму можно было отправлять извещения.


В управляемом интерфейсе всё стало сложнее и хуже.




Теперь на время выполнения серверного кода весь управляемый интерфейс заморожен и никаких сообщений отправлять нельзя.


Есть несложный способ обойти это ограничение - запустить выполнение сервеной части обработки в фоновом задании. Но есть одно но - фоновое задание можно запустить только из процедуры общего модуля. В принципе, в общий модуль можно добавить код, который будет вызывать саму обработку, но в фоне. Но это уже вмешательство в конфигурацию, т.е. уже нельзя сделать обработку, не привязанную к конфигурации.


Соответственно, провоцируется написание обработок, где код выполняется не в модуле обработки, а в серверных процедурах в форме.


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


Ну, грамотные программисты предусмотрят тихий режим работы, если в конфигурации нет нужных общих модулей (запуск без регламентного задания) и запуск в регламентном задании с извещениями. Но это время и напряг программистов. Ленивые не будут этим заниматься, а вынесут все в форму.


Чтобы выполнить такую обработку в регламентном задании, нужно заниматься её рефакторингом.


Хотя казалось бы, почему бы не сделать извещение от сервера к клиенту с отрисовкой формы и всего бы этого геморроя не было. Или возможность запускать задание в фоне не из общего модуля? Идеально - запустить процедуру обработки в отдельном фоновом задании.


1С опять сделалало как хуже, как будто там вредители сидят в отделе разработки.

promo fixin december 31, 2037 16:57 1420
Buy for 30 tokens
UPD: Друзья, в августе 2019 года блог переехал на http://fixinchik.ru. Welcome! Добро пожаловать в журнал Осипова Сергея Александровича, известного также как Fixin и Гений 1С. Рекомендую ознакомиться с Часто Задаваемыми Вопросами обо мне. Что я хочу в подарок - список. Мой проект "…