Шаблоны выполнения длительных операций (процедур и функций) без блокировки пользовательского интерфейса

11.08.20

Разработка - БСП (Библиотека стандартных подсистем)

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

Скачать файлы

Наименование Файл Версия Размер
Шаблон 1.х (сообщения о прогрессе на форме)
.cfe 61,27Kb
9
.cfe 1.14.1.2 61,27Kb 9 Скачать
Шаблон 2.х (сообщения о прогрессе в отдельном окне)
.cfe 37,03Kb
7
.cfe 2.14.1.2 37,03Kb 7 Скачать
Шаблон 3.х (индикатор на форме)
.cfe 61,04Kb
5
.cfe 3.14.1.2 61,04Kb 5 Скачать
Шаблон 4.х Внешняя обработка ( сообщения о прогрессе в отдельном окне)
.epf 12,28Kb
9
.epf 4.1 12,28Kb 9 Скачать
Шаблон 5.х Внешняя обработка (индикатор на форме)
.epf 13,53Kb
9
.epf 5.1 13,53Kb 9 Скачать
Шаблон 6.х Внешняя обработка (сообщения на форме)
.epf 35,52Kb
6
.epf 6.1 35,52Kb 6 Скачать

Шаблоны разрабатывались для себя на основе реальных внедрений и находятся на сайте как в альтернативном месте хранения.

Шаблоны  требуют наличия в конфигурации БСП 3.х. 

Для создания полностью рабочего решения  часть шаблонов оформлена  в виде расширения (совместимость 8.14).

Согласно описанию в БСП

// При выполнении любого из следующих условий запуск выполняется не в фоне, а сразу в основном потоке:
//  * если вызов выполняется в файловой базе во внешнем соединении (в этом режиме фоновые задания не поддерживаются);
//  * если приложение запущено в режиме отладки (параметр /C РежимОтладки) - для упрощения отладки конфигурации;
//  * если в файловой ИБ имеются активные фоновые задания - для снижения времени ожидания пользователя; (Но  шаблоны из            данной публикации принудительно запускаются в фоне, то есть  в файловом варианте при наличии ранее запущенных заданий, новое задание становится в очередь и начинает выполняться  после завершения предыдущих).
//  * если выполняется процедура модуля внешней обработки или внешнего отчета 

 

Есть 4 вида шаблонов

В шаблонах 1-3 показаны примеры вызова длительной  процедуры и  длительной функции. Как  бонус прилагается демонстрация уведомления на клиенте после окончания длительной операции. Так же для процедуры показан пример передачи на клиент дополнительных сведений, которые можно обработать после окончания длительной операции.

1. Версии 1.x.  В этом шаблоне сообщения о прогрессе выводятся на форме, из которой была вызвана длительная операция.

 

 

 

 

 

 

 

 

2. Версии 2.x.  В этом шаблоне сообщения о прогрессе сообщения выводятся  в отдельном окне.

3. Версии 3.x.  В этом шаблоне сообщения о прогрессе сообщения выводятся  в индикатор на форме, из которой была вызвана длительная операция.

 

Особенностью следующих шаблонов является то, что они рассчитаны на использование в качестве внешней дополнительной обработки. Тут все просто. Регистрируем  обработку в справочнике "Дополнительные отчеты и обработки" и она запускается в режиме "Открытие формы".  Из нее возможно запускать в фоновом режиме только процедуры. Но как говорится, нет такой функции, которая не мечтала бы стать процедурой:)

 

4. Версии 4.x.  В этом шаблоне сообщения о прогрессе сообщения выводятся  в отдельном окне.

5. Версии 5.x.  В этом шаблоне сообщения о прогрессе сообщения выводятся  в индикатор на форме, из которой была вызвана длительная операция.

6. Версии 6.x.  В этом шаблоне сообщения о прогрессе сообщения выводятся  в сообщения на форме, из которой была вызвана длительная операция.

Проверено на конфигурациях:

Управление нашей фирмой, редакция 1.6 (1.6.20.143)

Управление торговлей, редакция 11 (11.4.12.71)

1С:Комплексная автоматизация 2 (2.4.12.77)

1С:ERP Управление предприятием 2 (2.5.4.127)

Розница, редакция 2.3 (2.3.4.33)

Бухгалтерия предприятия, редакция 3.0 (3.0.80.36)

БСП Шаблон Фоновое задание процедура функция выполнение

См. также

Создать на основании - своя кнопка (БСП). Проблема двух подменю Создать на основании

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

Понадобилось в подменю "Создать на основании" добавить свою команду, которая открывает обработку. В процессе доработок появилась проблема двух подменю "Создать на основании". В статье о том, как решились проблемы.

01.03.2024    1304    dimanich70    6    

13

Заполнение поля адреса в своей обработке [БСП]

Механизмы платформы 1С БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Небольшая шпаргалка по функциям БСП касательно адреса. Так скажем, еще один способ помимо https://infostart.ru/1c/articles/1060970/

12.02.2024    690    FilippovRI    0    

15

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2355    YA_418728146    11    

40

1С:БСП Дополнительные реквизиты и сведения

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Бесплатно (free)

В этой статье расскажем об архитектуре, использовании и особенностях реализации подсистемы «Свойства» из инструментария разработчика «1С:Библиотека стандартных подсистем» (1С: БСП).

19.01.2024    5214    PROSTO-1C    5    

45

Бесплатный митап 9 февраля «Библиотеки и фреймворки на 1С и всё, что с этим связано»

БСП (Библиотека стандартных подсистем) Мероприятия Бесплатно (free)

Митап посвящен вопросам создания, использования и поддержке переиспользуемого кода при разработке решений на платформе 1С:Предприятие 8.

15.01.2024    3804    0    Infostart    0    

20

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4836    mrXoxot    11    

99
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7138 11.08.20 14:40 Сейчас в теме
Там до сих пор нет расчета оставшегося времени?
2. Hitcher 162 11.08.20 15:16 Сейчас в теме
Оставшегося времени чего? Время исполнения - вещь довольно непредсказуемая. В фоновом задании можно вызвать процедуру, в которую передаешь то, что смог посчитать. Клиент потом отобразит. Сможешь посчитать сколько осталось, значит там есть расчет оставшегося времени;)
3. Cyberhawk 135 13.08.20 08:51 Сейчас в теме
(2) Если разработчик выводит процент, то оставшееся время за него может считать сама БСП, т.к. известно, сколько прошло времени с момента старта
4. Hitcher 162 13.08.20 17:09 Сейчас в теме
(3) В общем случае задача не тривиальна. Допустим, у меня в обработке 3 цикла . Длинный (примерно длится 10 минут и состоит из 10 элементов ), средний(5 минут и 50 элементов ) и короткий (менее 1 мин и 200 элементов). Я нахожусь на 10 процентах последнего цикла. Как БСП должно считать оставшееся время? Поэтому 1С оставила этот вопрос на усмотрение разработчика.
На мой взгляд главное в БСП то, что она позволяет при организации собственной индикации во процессе выполнения передавать на клиент дополнительные данные. Ради интереса в шаблоне 2.х (прогресс в отдельном окне) для простейшего случая (1 цикл) я написал расчет оставшегося времени . Это заняло у меня минуты 2. Шаблон заменил в публикации на новый.
5. Cyberhawk 135 13.08.20 17:13 Сейчас в теме
(4) А какая разница, сколько там и каких циклов?
Я про то, что если разработчик передает процент наружу, то БСП легко может преобразовать это в оставшееся время.
Твои примеры лишь демонстрируют то, что разработчик должен сам как-то оценивать этот общий процент. С этим никто не спорит.
6. Hitcher 162 14.08.20 09:27 Сейчас в теме
(5) Не понимаю такого маниакального желания требовать от БСП того, что один из многих разработчиков считает архиважным. Сама библиотека ничего не считает, даже проценты. Она лишь предоставляет механизм, максимально очищенный от накладных расходов. И я считаю это правильным.
Если разработчику необходимо чего-то посчитать за счет увеличения накладных расходов, то флаг ему в руки. Заказчик же не будет знать, что 5 секунд из 10 приходится на отображение ему красивой цифирки.
К тому же все по-прежнему зависит от периода опроса клиентом. Допустим, сервер считает оставшееся время каждые 2 секунды, а клиент опрашивает каждые 3. Таким образом на клиенте отображаемое время всегда будет отставать от реального на 1 секунду. Поэтому и вывод оставшегося времени не имеет большого смысла.
7. Cyberhawk 135 14.08.20 09:31 Сейчас в теме
(6) Подсчет оставшегося времени конечно же должен быть опциональным.
Убедить (по крайней мере меня) в том, что отсутствие такой опции является правильным, тебе не удалось.
8. Hitcher 162 14.08.20 14:01 Сейчас в теме
Но я хотя бы попытался :)
Оставьте свое сообщение