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

11.08.20

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

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

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

Шаблоны  требуют наличия в конфигурации БСП 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)

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

См. также

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

Синтакс-помощник БСП - cправочник по библиотеке стандартных подсистем. В состав справочника входит описание экспортных процедур и функций, размещенных в областях кода ПрограммныйИнтерфейс БСП.

1800 руб.

21.11.2024    2370    8    14    

8

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

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

11.12.2024    3070    gorenski    0    

8

БСП (Библиотека стандартных подсистем) Менеджеры внешних отчетов Программист Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление холдингом Абонемент ($m)

За последние лет 5 несколько раз сталкиваюсь с проблемой на разных проектах (в конфигурациях 1С:ERP, 1С:ERP УХ и многих других, основанных на БСП), когда много пользователей (около 30 тысяч) в информационной базе, время добавления доступа для пользователей занимает значительное время. Открытие списка занимает от 10 до 15 секунд, и каждое изменение списка еще примерно столько же.

1 стартмани

10.12.2024    625    Iaskeliainen    2    

7

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

Некоторые нюансы, если вы захотите создавать свои расширения. Доработка отчета "Связанные документы" для отражения документов расширения. Печатные формы с шаблоном Word.

20.11.2024    2892    milkers    3    

9

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

В статье описан алгоритм для включения документа или справочника в систему БСП. Будет полезно программистам 1С, начинающим работать с БСП.

24.10.2024    1398    PROSTO-1C    0    

16

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

В материале описан универсальный механизм работы с добавленными элементами на общую форму «ФормаОтчета». Думаю, облегчит работу многим разработчикам.

08.10.2024    1195    PROSTO-1C    4    

14

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

В статье рассмотрим пошаговую инструкцию создания дополнительного отчета с фоновым формированием результата.

04.10.2024    2083    MadRave    11    

24
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. tormozit 7238 11.08.20 14:40 Сейчас в теме
Там до сих пор нет расчета оставшегося времени?
2. Hitcher 177 11.08.20 15:16 Сейчас в теме
Оставшегося времени чего? Время исполнения - вещь довольно непредсказуемая. В фоновом задании можно вызвать процедуру, в которую передаешь то, что смог посчитать. Клиент потом отобразит. Сможешь посчитать сколько осталось, значит там есть расчет оставшегося времени;)
3. Cyberhawk 135 13.08.20 08:51 Сейчас в теме
(2) Если разработчик выводит процент, то оставшееся время за него может считать сама БСП, т.к. известно, сколько прошло времени с момента старта
4. Hitcher 177 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 177 14.08.20 09:27 Сейчас в теме
(5) Не понимаю такого маниакального желания требовать от БСП того, что один из многих разработчиков считает архиважным. Сама библиотека ничего не считает, даже проценты. Она лишь предоставляет механизм, максимально очищенный от накладных расходов. И я считаю это правильным.
Если разработчику необходимо чего-то посчитать за счет увеличения накладных расходов, то флаг ему в руки. Заказчик же не будет знать, что 5 секунд из 10 приходится на отображение ему красивой цифирки.
К тому же все по-прежнему зависит от периода опроса клиентом. Допустим, сервер считает оставшееся время каждые 2 секунды, а клиент опрашивает каждые 3. Таким образом на клиенте отображаемое время всегда будет отставать от реального на 1 секунду. Поэтому и вывод оставшегося времени не имеет большого смысла.
7. Cyberhawk 135 14.08.20 09:31 Сейчас в теме
(6) Подсчет оставшегося времени конечно же должен быть опциональным.
Убедить (по крайней мере меня) в том, что отсутствие такой опции является правильным, тебе не удалось.
8. Hitcher 177 14.08.20 14:01 Сейчас в теме
Но я хотя бы попытался :)
Оставьте свое сообщение