Асинхронное выполнение длительных операций с помощью фонового задания

Публикация № 1671426 05.06.22

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

Пример Длительная операция

Пример использования длительных операций. БСП 3.1.5.

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

Код, выполняющий длительную обработку данных, располагается в общем модуле или модуле менеджера объекта. Результат своей работы он помещает во временное хранилище.

На время выполнения длительной операции пользователю отображается индикатор с возможностью отмены выполнения.

В качестве примера буду использовать обработку "ДлительнаяОперация_v01"  и общий модуль  в расширении:

Фоновое задание будет выполняться в МойОбщийМодуль.ЭмуляцияФоновыйПроцесс()

В форме обработки вызов этой функции в фоновом задании будет выполняться в три этапа:

1) Запуск фонового задания  &НаСервере;

2) Подключение обработчика завершения фонового задания &НаКлиенте;

3) Обработка результата выполнения фонового задания.\

Пример можно использовать любых современных типовых конфигурациях и нетиповых, использующих БСП.

Код: МойОбщийМодуль.ЭмуляцияФоновыйПроцесс()

Функция ЭмуляцияФоновыйПроцесс( Параметр1 = Неопределено, Параметр2 = Неопределено) Экспорт 
	
	Если Параметр1 = Неопределено Тогда
		Параметр1 = 300000;
	КонецЕсли;
	пв1 = Истина; пв2 = Истина; пв3 = Истина; пв4 = Истина; пв5 = Истина;
	Для счетчик = 0 По Параметр1 Цикл
		пакет = Новый Структура("Счетчик, Количество", счетчик, Параметр1);
		процент = ОКР(100*счетчик / Параметр1,0);	
		Если  процент > 8 И процент < 10 Тогда 
			Если пв1 Тогда	ДлительныеОперации.СообщитьПрогресс(процент, "Идет длительная операция"); пв1 = Ложь; КонецЕсли;
		ИначеЕсли процент > 28 И процент < 30 Тогда
			Если пв2 Тогда ДлительныеОперации.СообщитьПрогресс(процент, "Идет длительная операция"); пв2 = Ложь; КонецЕсли;
		ИначеЕсли процент > 49 И процент < 51 Тогда
			Если пв3 Тогда ДлительныеОперации.СообщитьПрогресс(процент, "Идет длительная операция"); пв3 = Ложь; КонецЕсли;
		ИначеЕсли процент > 70 И процент < 72 Тогда
			Если пв4 Тогда пв4 = Ложь; КонецЕсли; 
		ИначеЕсли процент > 89 И процент < 92 Тогда
			Если пв5 Тогда ДлительныеОперации.СообщитьПрогресс(процент, "Идет длительная операция"); пв5 = Ложь; КонецЕсли;	
		КонецЕсли;	
	КонецЦикла;
	Возврат "Эмуляция фонового процесса завершилась"; 
	
КонецФункции

Код модуля формы обработки:


&НаКлиенте
Процедура ВыполнитьКоманду(Команда)
	
	длительнаяОперация = НачатьВыполнениеНаСервере();                                             //Запуск фонового задания на Сервере 
	параметрыОжидания = ДлительныеОперацииКлиент.ПараметрыОжидания(ЭтотОбъект); 
	параметрыОжидания.ВыводитьПрогрессВыполнения = Истина;
	оповещение = Новый ОписаниеОповещения("ПриЗавершенииНачатьВыполнениеНаСервере", ЭтотОбъект); 
	ДлительныеОперацииКлиент.ОжидатьЗавершение(длительнаяОперация, оповещение, параметрыОжидания); //Подключение обработчика завершения фонового задания  
	
КонецПроцедуры 

&НаСервере
Функция НачатьВыполнениеНаСервере()

	параметрыВыполнения = ДлительныеОперации.ПараметрыВыполненияФункции(УникальныйИдентификатор);
	Количество = 450000;
	возврат ДлительныеОперации.ВыполнитьФункцию(параметрыВыполнения, "МойОбщийМодуль.ЭмуляцияФоновыйПроцесс", Количество);
	
КонецФункции 

&НаКлиенте
Процедура ПриЗавершенииНачатьВыполнениеНаСервере(Результат, ДопПараметры) Экспорт 

	Если Результат = Неопределено Тогда // Пользователь отменил задание
		Возврат;	
	КонецЕсли;	
	Если Результат.Статус = "Ошибка" Тогда
		ВызватьИсключение Результат.КраткоеПредставлениеОшибки;
	КонецЕсли;
	ответ = ПолучитьИзВременногоХранилища(Результат.АдресРезультата);
	УдалитьИзВременногоХранилища(Результат.АдресРезультата);
	ОбщегоНазначенияКлиент.СообщитьПользователю(ответ);

КонецПроцедуры


 

 

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

Наименование Файл Версия Размер
Асинхронное выполнение длительных операций с помощью фонового задания:

.cfe 9,49Kb
2
.cfe 9,49Kb 2 Скачать

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Nikola23 663 06.06.22 01:12 Сейчас в теме
Коллега, а кто вас научил называть переменные "пв"? Я понимаю, что писать "ПроцентВыполнения1" да еще и в разных строках - это сложно, но все же.

Судя по-коду, вы каждые N секунд отправляете оповещение.
Для реализации этой задачи есть алгоритм, не требующий такого нагромождения "если".

К сожалению, по существу темы добавить ничего не могу. Материал прекрасно описан до вас не раз.
2. user1432326 48 06.06.22 06:19 Сейчас в теме
(1) Функция ЭмуляцияФоновыйПроцесс
цикл выполняется 450 000 раз либо N-раз переданный через Параметр1.
Для того что бы не выполнять код ДлительныеОперации.СообщитьПрогресс 450 000 раз, тем самым время выполнения задания могла бы значительно увеличиться. я ограничил его вывод. Вывод происходит не более 5 раз.
3. triviumfan 37 06.06.22 14:25 Сейчас в теме
(2) Я однажды делал замеры. У меня как раз цикл из 500к строк был, убрал ДлительныеОперации.СообщитьПрогресс() и время выполнения стало меньше на 10 секунд. Это несерьёзно, тем более выполнение в фоне. Я решил пускай лучше % точнее передаются, чем такой костыль.
maksa2005; +1 Ответить
4. user1432326 48 06.06.22 15:32 Сейчас в теме
(3) время выполнения на 150к строк 9.87 сек, если ограничение убрать, то код будет выполняться 1м.32с.(в файловом режиме)
5. Nikola23 663 08.06.22 13:53 Сейчас в теме
(2) Почему не надо сообщать прогресс каждую итерацию я в курсе.
Не понимаю, зачем вы это рассказываете - ведь я не спрашивал.

Мой комментарий выше был про стилистику кодирования.
Названия переменных, например, вызывают вопросы.
Оставьте свое сообщение

См. также

Учим БСП печатать активные ссылки и подложку в документе WORD

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

Небольшое расширение БСП для печати в WORD. Добавлена печать активных ссылок, подложки документа, и фона страницы.

1 стартмани

13.03.2023    583    1    user1575928    0    

1

Пример многопоточной обработки (БСП)

Обработка документов HighLoad оптимизация Обработка справочников БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Обработка-шаблон, на основе которой можно делать свои многопоточные обработки данных для конфигураций на БСП.

13.02.2023    3846    3    echo77    8    

68

Запуск фонового задания с прогрессом во внешней обработке независимо от места вызова на Библиотеке стандартных подсистем

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

Открытый код. Реализован запуск как из справочника дополнительных обработок, так и с файла на диске без обязательного доступа с сервера. Используется актуальная процедура БСП ДлительныеОперации.ВыполнитьПроцедуру.

1 стартмани

10.02.2023    1211    4    janit    0    

6

Ошибка механизма автонумерации объектов. Обработка «Максимальный код (номер) объекта» (БСП 3.1.7.61)

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

Сбой механизма автонумерации документов и справочников 1С:Предприятие 8.3. Методика исправления проблемы. Вспомогательная обработка.

1 стартмани

30.01.2023    794    0    mobiledrivec    0    

2

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Работа с файлами

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

Данное расширение предназначено для добавления механизма БСП присоединения файлов к объектам в типовых конфигурациях без снятия конфигураций с поддержки.

1 стартмани

03.09.2022    1754    9    Tash.B    0    

7

Шаблон внешней обработки на основе БСП с фоновым выполнением модуля обработки и выводом индикации фонового задания

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Абонемент ($m)

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

1 стартмани

31.08.2022    4728    48    VdZMWOnC    5    

81

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

Обработка документов Печатные формы БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

Добрый день. Не так давно мне была поставлена задача сделать обработку, позволяющую для выбранного объекта конфигурации показывать список печатных форм этого объекта и выводить выбранную форму на печать. Пришлось немного поразбираться с БСП, но в итоге получилось. Работает для любой конфигурации. Одно условие только - печатная форма должна быть зарегистрирована с помощью БСП.

1 стартмани

27.07.2022    2606    4    Alex33614    2    

6

Выгрузка дополнительных отчетов и обработок

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

Внешняя обработка 1С:Предприятие, позволяющая быстро выгрузить все подключенные внешние отчеты и обработки в рабочий каталог в виде одного архивного файла *.zip или набора файлов.

1 стартмани

21.07.2022    1680    7    mobiledrivec    0    

5

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

Рассылки отчетов по графикам

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

14.06.2022    2311    2    Sirruf    0    

2

Как подключить документ расширения к версионированию БСП

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

Пример расширения, в котором добавлен новый документ и он же подключен к подсистеме версионирования объектов. Важно! Основную конфигурацию нужно переключить в режим совместимости 8.3.20.

2 стартмани

27.05.2022    4456    5    EvgeTrofi    9    

11

Подсистема регулярных заданий

Универсальные функции БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Абонемент ($m)

Подсистема регулярных заданий предназначена для выполнения произвольных алгоритмов (задач) по заранее сформированным графикам с учетом производственного календаря.

1 стартмани

23.05.2022    4195    14    Sirruf    15    

14

Универсальный анализ и управление ролями

Инструменты администратора БД БСП (Библиотека стандартных подсистем) Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

27.04.2022    3404    26    denmp    0    

5

Шаблон обработки внешнего заполнения  (БСП, управляемые формы)

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

Сделан на примере заполнения документа «Перемещение материалов в кладовую» (ДвижениеПродукцииИМатериалов). При старте открывает дополнительную внешнюю форму обработки где запрашивается ресурсная спецификация и количество комплектов. Особенности: - открытие дополнительной формы для ввода параметров, форма для отладки, позволяющая запускать внешнюю обработку непосредственно через меню файл.

1 стартмани

31.01.2022    2988    6    milkers    0    

2

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

БСП 3.1.5 Форма отчета. Быстрый вызов редактирования варианта

БСП (Библиотека стандартных подсистем) Адаптация типовых решений Работа с интерфейсом Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

В последних релизах современных конфигураций, основанных на БСП версии 3.1.5, спрятали кнопку настройки варианта в дебри вложенных форм. Вернём всё как было, и даже лучше.

1 стартмани

20.12.2021    5870    1    ixijixi    0    

10

Интеграция с Веб сервисом ГИИС ДМДК

БСП (Библиотека стандартных подсистем) WEB-интеграция Платформа 1С v8.3 Ювелирная промышленность и торговля Россия Абонемент ($m)

Пример интеграции с Веб сервисом Государственной интегрированной информационной системе в сфере контроля за оборотом драгоценных металлов, драгоценных камней и изделий из них на всех этапах этого оборота (ГИИС ДМДК) на базе демонстрационной базы БСП 3.15.

3 стартмани

27.09.2021    16919    140    Scorpion1_77    315    

7

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

Расширение, реализующее загрузку адресного классификатора с сайта fias.nalog.ru.

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

Расширение, модифицирующее в основном общий модуль АдресныйКлассификаторСлужебный, позволяющее получать и обрабатывать файлы ФИАС.

3 стартмани

22.06.2021    4409    4    RomanCrow13    1    

4

Просмотр и редактирование условного оформления открытой формы на БСП

Универсальные обработки БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Абонемент ($m)

Иногда требуется посмотреть, какое оформление и по какому условию установлено в открытой форме. Данная обработка через подключенную команду заполнения позволяет посмотреть или изменить текущее условное оформление открытой формы, при условии, что для нее предусмотрены подключаемые команды.

1 стартмани

03.06.2021    5653    13    Foster13    3    

9

Рассылка по ошибкам журнала регистрации

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

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

1 стартмани

26.04.2021    6015    13    wonderboy    0    

3

Производственный календарь без БСП онлайн (простое определение рабочих дней)

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

Проверяем тип дня (рабочий, не рабочий, предпраздничный) для Белоруссии, Казахстана, России и Украины без БСП и огромных регистров.

1 стартмани

22.03.2021    5920    7    elephant_x    0    

5

Подборка программ для взаимодействия с ЕГАИС Промо

ЕГАИС (Единая государственная автоматизированная информационная система) - автоматизированная система, предназначенная для государственного контроля за объёмом производства и оборота этилового спирта, алкогольной и спиртосодержащей продукции. Инфостарт рекомендует подборку проверенных решений для взаимодействия с системой.

Управление регламентными заданиями. Простое включение и отключение (все конфигурации на базе БСП)

Универсальные обработки БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 Конфигурации 1cv8 Россия Абонемент ($m)

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

1 стартмани

12.11.2020    6658    18    demaxim    5    

2

БСП - рабочие примеры асинхронного запуска функций и процедур

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

В данной публикации я привожу рабочие примеры асинхронного использования функций и процедур конфигурации на БСП

4 стартмани

02.11.2020    13435    28    quazare    3    

49

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Шаблон ВПФ (внешней печатной формы) для вывода в Word

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

Шаблон для разработки ВПФ для БСП версии 3.1. Основные возможности: 1. Описание требуемых для вывода данных при помощи СКД. 2. Вывод в документ средствами БСП (не используется COM-соединение с word) 3. Реализована форма для тестирования без подключения обработки к БСП и без помещения документа-макета в обработку.

1 стартмани

10.10.2020    8480    19    Gladkov_Anton    4    

16

Шаблон обработки заполнения объекта в форме

БСП (Библиотека стандартных подсистем) Управляемые формы Конфигурации 1cv8 Абонемент ($m)

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

1 стартмани

18.08.2020    7453    6    Arc    1    

7

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

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 1С:Розница 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Россия Абонемент ($m)

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

1 стартмани

11.08.2020    6957    45    Hitcher    8    

9

Не удаляются объекты, помеченные на удаление

БСП (Библиотека стандартных подсистем) Чистка данных Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Зарплата и Управление Персоналом 3.x Абонемент ($m)

Когда в конфигурации включено "Ограничивать доступ на уровне записей" и вариант работы выбран "Производительный", при "Удалении помеченных объектов" не все объекты удаляются из базы.

1 стартмани

31.07.2020    13638    30    Maito    6    

1

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

СПАРК помогает предотвратить мошенничество со стороны компаний и предпринимателей, благодаря актуальным сведениям о компаниях и системе выявления факторов риска.Сервис позволяет управлять налоговыми рисками и комплексно оценивать благонадежность контрагентов.

Шаблон загрузки данных из табличного документа (Excel, Open Office, MXL, CSV) с использованием БСП для УФ

БСП (Библиотека стандартных подсистем) Загрузка и выгрузка в Excel Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Абонемент ($m)

Обработка предназначена для организации собственного механизма обработки данных из табличного документа (Excel, Open Office, MXL, CSV). Для загрузки используются механизмы БСП.

2 стартмани

26.06.2020    8999    26    Hitcher    2    

5

Пользовательские макеты внешних печатных форм и настраиваемый комплект документов по договорам

БСП (Библиотека стандартных подсистем) Бухгалтерский учет 1С:Бухгалтерия 3.0 Абонемент ($m)

- Расширение стандартной подсистемы печати, позволяющее редактировать макеты внешних печатных форм и сохранять их по аналогии с встроенными печатными формами - подсистема настраиваемых комплектов печатных форм с привязкой к договору контрагента.

2 стартмани

08.06.2020    9298    5    andy_zhav    0    

7

Установка даты запрета изменения по расписанию

БСП (Библиотека стандартных подсистем) Роли и права Платформа 1С v8.3 1С:Бухгалтерия 3.0 Абонемент ($m)

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

1 стартмани

14.04.2020    7414    4    user1393353    0    

3

Добавление контекстных дополнительных обработок в командную панель (немного практики по доработке БСП расширениями)

БСП (Библиотека стандартных подсистем) Платформа 1С v8.3 1С:Управление торговлей 11 Абонемент ($m)

При добавлении контекстных дополнительных отчетов они не попадают в командную панель (КП), а открываются специальной командой из КП "Отчеты - Дополнительные отчеты..." Не всегда это удобно, и если контекстный отчет нужен для частого использования, то гораздо лучше, если бы он попадал сразу в подменю "Отчеты" на КП, а не требовал открытия дополнительной формы.

1 стартмани

18.03.2020    9104    1    work.sable    6    

19

Перенос данных БП 3 - УТ 11 (Исправление обработки с ИТС)

БСП (Библиотека стандартных подсистем) Обмен между базами 1C Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Абонемент ($m)

Для текущих на данный момент версий УТ 11.4.11.63 и БП 3.0.75.93 обработка с сайта обновлений 1С из указанного релиза торговли отказывается работать, ссылаясь на ошибки БСП и некорректные правила обмена. Исправляется совсем небольшим расширением и корректировкой указанной на сайте 1С обработки (прилагается).

1 стартмани

13.02.2020    7550    21    &rew    9    

3