fixin (fixin) wrote,
fixin
fixin

Category:

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



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


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


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


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




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


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


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


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


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


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


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


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

Tags: критика 1с
Subscribe

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

    Error

    default userpic

    Your reply will be screened

    Your IP address will be recorded 

    When you submit the form an invisible reCAPTCHA check will be performed.
    You must follow the Privacy Policy and Google Terms of use.
  • 12 comments