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

11.08.20

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

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

Скачать файл

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

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

24

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

Добавим метки в новый документ средствами БСП.

10.02.2025    4572    John_d    24    

49

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

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

27.12.2024    4977    PROSTO-1C    16    

49

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

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

11.12.2024    4704    gorenski    0    

8

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

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

1 стартмани

10.12.2024    1282    Iaskeliainen    2    

8

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

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

20.11.2024    4004    milkers    3    

14

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

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

24.10.2024    2390    PROSTO-1C    0    

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