Довольно часто практикуемое решение - использование обработок, которые можно запускать интерактивно и автоматически по расписанию (из регламентного задания).
В обычном интерфейсе для этого код, который должен был выполняться на сервере, выносился в модуль обработки. А в форму выносилась только интерфейсная обвязка.
При этом серверная часть могла анализировать режим работы и если обработка запускалась из формы, то на форму можно было отправлять извещения.
В управляемом интерфейсе всё стало сложнее и хуже.
Теперь на время выполнения серверного кода весь управляемый интерфейс заморожен и никаких сообщений отправлять нельзя.
Есть несложный способ обойти это ограничение - запустить выполнение сервеной части обработки в фоновом задании. Но есть одно но - фоновое задание можно запустить только из процедуры общего модуля. В принципе, в общий модуль можно добавить код, который будет вызывать саму обработку, но в фоне. Но это уже вмешательство в конфигурацию, т.е. уже нельзя сделать обработку, не привязанную к конфигурации.
Соответственно, провоцируется написание обработок, где код выполняется не в модуле обработки, а в серверных процедурах в форме.
При этом выполнение разбивается на этапы, управление которыми ведется из клиентской процедуры формы, чтобы хотя бы по выполнению этапов выводить извещение пользователю о ходе работ и давать ему прерывать работу.
Ну, грамотные программисты предусмотрят тихий режим работы, если в конфигурации нет нужных общих модулей (запуск без регламентного задания) и запуск в регламентном задании с извещениями. Но это время и напряг программистов. Ленивые не будут этим заниматься, а вынесут все в форму.
Чтобы выполнить такую обработку в регламентном задании, нужно заниматься её рефакторингом.
Хотя казалось бы, почему бы не сделать извещение от сервера к клиенту с отрисовкой формы и всего бы этого геморроя не было. Или возможность запускать задание в фоне не из общего модуля? Идеально - запустить процедуру обработки в отдельном фоновом задании.
1С опять сделалало как хуже, как будто там вредители сидят в отделе разработки.
Journal information