Асинхронное выполнение длительных операций

Публикация № 1352398

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

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

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

Демонстрации работы асинхронного выполнения длительной операции, будем использовать конфигурацию Управление торговлей, редакция 11 (11.4.13.99), БСП 3.1.3.353.

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

Для примера создадим справочник "РаботаВФоне":

 В форме справочника добавим команду "ВыполнитьРасчет":

Код модуля формы будет следующим:

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

&НаСервере
Функция НачатьВыполнениеНаСервере()
	МойПараметр1 = "МойПараметр1";
	МойПараметр2 = "МойПараметр2";
	
	Возврат ДлительныеОперации.ВыполнитьПроцедуру(, "РаботаВФоне.ВыполнитьРасчет", 
	МойПараметр1, МойПараметр2);
КонецФункции

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

Процедура ПриЗавершенииРасчета()
	Сообщить("У нас все получилось!");
КонецПроцедуры

Также нам понадобится общий модуль "РаботаВФоне" с галочкой "Сервер" и экспортной процедурой "ВыполнитьРасчет".

Процедура ВыполнитьРасчет(Знач МойПараметр1, Знач МойПараметр2) Экспорт
	
	ТекДата = ТекущаяДата();	
	Пока ТекущаяДата() < ТекДата + 5*60 Цикл 
	КонецЦикла;
	
КонецПроцедуры

Запускаем в пользовательском режиме, создаем элемент справочника и нажимаем кнопку "Выполнить расчет".

Появляется окно ожидания:

А через пять минут появляется сообщение об успешном выполнении операции:

Если необходимо возвращать результат выполнения длительной операции, нужно использовать метод:

ДлительныеОперации.ВыполнитьФункцию

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

Всем спасибо!

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

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. AnryMc 789 28.12.20 10:37 Сейчас в теме
(0)
В других версиях БСП имена функция могут отличаться


Вот за что я ЛЮБЛЮ применять БСП ;-)
BigB; prog_mayskiyse; +2 Ответить
2. EvgeniuXP 01.01.21 08:01 Сейчас в теме
В НачатьВыполнениеНаСервере() создаем два "моих параметра", а в ВыполнитьРасчет передаем один МойПараметр.
prog_mayskiyse; +1 Ответить
3. ellavs 794 04.01.21 11:45 Сейчас в теме
За статью спасибо. Жаль только, что пример опять про длительные операции на сервере... никак не найду пример оптимальной реализации асинхронных длительных операций на клиенте :(
prog_mayskiyse; +1 Ответить
4. ovasiliev 16 09.01.21 12:42 Сейчас в теме
(3) На мой взгляд это понятно.
Необходимость в асинхроне возникает, когда есть две машины, и нужно устранить ситуацию, когда одна машина работает, а другая ковыряет в носу и ждёт результата работы первой. Если же длительная операция выполняется на одной, она и так должна грузить ресурсы так, что параллельно работать будет некомфортно. Если это не так, то скорее всего что-то написано не правильно.
5. ellavs 794 09.01.21 15:39 Сейчас в теме
(4) в последнее время появляются задачи, связанные со взаимодействием с разными внешними системами, которые находятся в защищенных сетях, и обычно доступ к ним есть только с клиентской машины (т.е. машина находится внутри специальной защищенной сети для конкретной внешней системы, а также взаимодйствует с криптопровайдером), поэтому все длительные операции по обращению и обмену данными с этими системами происходят на стороне "клиента". Один из вариантов - настраивать в каждой защищенной сети и для каждой внешней системы отдельный кластер (но это лишние затраты для заказчика - таких внешних систем и сетей может быть несколько, серверных лицензий не напасешься). Пока только один выход - запускать несколько клиентских сессий.
7. ovasiliev 16 09.01.21 21:40 Сейчас в теме
(5) В принципе, это совершенно законно - пакетно запускать сессию для выполнения конкретной задачи. Настолько законно, что я понимаю отсутствие длительных операций в клиентском режиме. Вернее, это и есть фоновое задание в клиентском режиме.
6. ovasiliev 16 09.01.21 21:36 Сейчас в теме
Оставьте свое сообщение

См. также

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

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

Конфигурации в 1С пишутся для пользователей и по их «правилам» (клиент всегда прав), поэтому в основном все конфигурации разные, но достаточно часто в них используются одни и те же объекты, которые незначительно отличаются друг от друга. Действительно, сложно представить конфигурацию, где не фигурировали бы такие сущности как номенклатура, контрагенты, пользователи, валюта. И некоторые задачи являются типичными: возможность базового разграничения прав, работа с электронной почтой, задачи пользователям и т.д. Но...!

03.03.2017    73159    V.Stavinsky    22    

Печать макета MS Word в любом документе с помощью БСП

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

В данной статье рассмотрим типовой функционал вывода на печать макетов печатных форм MS Word (*.docx) для любого документа конфигурации, основанной на библиотеке стандартных подсистем. Вариант клиент-серверный.

23.02.2021    2504    quazare    2    

Базовое понимание внедрения механизма печати в любом документе конфигурации на БСП

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

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

17.02.2021    2161    quazare    14    

Перенос/копирование и установка отбора/периода при интерактивном переключении или смене варианта отчета/СКД в БСП 3.1 (1C ERP, УТ, БП, ...)

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

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

18.01.2021    500    SizovE    4    

Генерация штрихкодов с помощью БСП для программистов

БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия УУ Бесплатно (free)

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

09.01.2021    5475    quazare    15    

Метаданные и их идентификаторы

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

Идентификаторы (GUID'ы) метаданных конфигурации. Немного о том, как их получить.

05.12.2020    4944    YPermitin    23    

Сохранение настроек

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

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

22.11.2020    2651    the1    8    

Дополнительные реквизиты формы (простой вариант взаимодействия)

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

Упрощаем взаимодействия с дополнительными реквизитами на форме с помощью фиксированного соответствия.

14.11.2020    1333    samvani    0    

Запуск почти любых процедур и функции конфигураций в асинхронном режиме - БСП - Длительные операции [Часть 2]

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

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

30.10.2020    5930    quazare    5    

Гарантированно рабочий пример использования длительных операций на БСП с отображением прогресса. [Часть 1]

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

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

29.10.2020    5072    quazare    27    

Простой пример разработки регулярного обмена с использованием БСП на примере ERP 2.4 и УПП 1.3

БСП (Библиотека стандартных подсистем) Перенос данных из 1C8 в 1C8 v8 1cv8.cf УПП1 КД ERP2 Россия Бесплатно (free)

Данный вариант подойдет тем, кто хочет настроить "свой" регулярный обмен с добавлением "своих" планов обмена с использованием правил обмена на КД 2.1.

27.10.2020    3965    байт    8    

Вычислить РАЗНОСТЬДАТ в рабочих днях

Практика программирования БСП (Библиотека стандартных подсистем) v8::Запросы v8::СКД ERP2 БП3.0 УТ11 ЗУП3.x Бесплатно (free)

Вычисление количества рабочих днях между двумя датами в запросе.

20.10.2020    2902    antonivan    17    

Разработка функционала обмена с несколькими внешними точками

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

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

21.09.2020    942    Sergey1CSpb    2    

Работаем с контактной информацией в конфигурациях на БСП

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

14.09.2020    6888    quazare    9    

Базовые вещи БСП, которые облегчат жизнь программисту 1С

Практика программирования БСП (Библиотека стандартных подсистем) v8 1cv8.cf Россия Бесплатно (free)

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

30.08.2020    10818    quazare    33    

Выполнение внешней обработки по расписанию для управляемого и обычного приложения

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

Использование БСП для выполнения внешних обработок в управляемом и обычном приложении

06.08.2020    4187    RPGrigorev    0    

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

БСП (Библиотека стандартных подсистем) Информационная безопасность Роли и права v8 КА2 Россия УУ Бесплатно (free)

Решал задачу ограничения доступ к объектам по справочнику "Банковские счета" штатными средствами БСП. Конфигурация КА 2.2. В остальных на БСП должно работать так же. Хотел сделать инструкцию для себя на будущее, решил поделиться.

05.08.2020    2079    ER34    2    

Возможности работы со строками при помощи БСП, которые должен знать каждый программист

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

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

05.07.2020    10214    quazare    36    

Мастер-класс "Ведение проектов в типовых конфигурациях 1С"

Управление проектом CI/CD БСП (Библиотека стандартных подсистем) v8 Бесплатно (free)

При адаптации типовой конфигурации под особенности учета в компании важно обеспечить возможность легкого обновления поставки. Как организовать архитектуру решения и продумать процесс быстрой и эффективной разработки без ущерба типовой функциональности, на конференции Infostart Event 2019 Inception рассказал ведущий программист компании BIA-Teсhnologies Алексей Князьков.

05.06.2020    4445    AKnyazkov    3    

Способ хранения данных расширения или дополнительной обработки

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

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

01.06.2020    4036    Sedaiko    17    

Переопределение настроек отчета на СКД. 1С: БСП

БСП (Библиотека стандартных подсистем) v8::СКД ERP2 Россия Бесплатно (free)

Изменение настроек СКД отчета без доработки модулей БСП

24.04.2020    3382    klimsrv    6    

Картинка в форме списка номенклатуры для УТ 11.4

БСП (Библиотека стандартных подсистем) Практика программирования v8 1cv8.cf Россия Бесплатно (free)

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

23.03.2020    1980    malikov_pro    1    

Полезные функции БСП (Часть 2)

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

Список полезных функций из состава Библиотеки стандартных подсистем 3.1.

10.03.2020    14851    user5300    19    

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

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

Как проводятся документы при обмене по универсальному формату. Пример доработки типовых правил обмена с переносом состояния документа: проведен/не поведен/пометка удаления.

04.03.2020    5470    partizand    6    

[БСП] Внешняя печатная форма: как перед печатью выводить форму настроек

Печатные формы документов БСП (Библиотека стандартных подсистем) v8 КА2 Бесплатно (free)

Во внешней печатной форме перед печатью нужно выводить форму настроек. Для примера рассматриваю печатную форму "Акт сверки взаимных расчетов " .

19.12.2019    11685    John_d    8    

Реализация печати QR кодов "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

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

Рассмотрим, как реализовать печать QR кодов с помощью механизмов БСП.

16.10.2019    7184    paulis    4    

Реализация команды печати "Библиотека стандартных подсистем", редакция 3.1 (3.1.1.151)

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

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

12.10.2019    6916    paulis    4    

Шпаргалка (БСП). Добавление в новый документ механизма печати дополнительных печатных форм

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

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

10.10.2019    21623    John_d    17    

От чего можно отказаться при разработке расширений 1С

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

Разработка расширений 1С и оптимизация через механизм БСП: Дополнительные отчеты и обработки.

23.09.2019    11074    independ    33    

БСП: Дополнительные отчеты и обработки - одна обработка, несколько форм

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

Как в одной дополнительной обработке разместить несколько форм с типом команды "ОткрытиеФормы"?

29.07.2019    11552    dsdred    9    

Подсистема "Варианты отчетов". Используете ли Вы ее правильно?

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

Небольшая история про использование подсистемы "Варианты отчетов" из БСП. Используете ли Вы ее правильно?

04.06.2019    46719    YPermitin    52    

Подсистема БСП «Управление доступом», основные объекты и регистры

БСП (Библиотека стандартных подсистем) Роли и права v8 v8::УФ v8::Права 1cv8.cf Бесплатно (free)

Основные принципы работы подсистемы «Управление доступом» из состава БСП. Виды доступа, ограничение доступа на уровне записей. Описание основных объектов и регистров, используемых подсистемой.

23.05.2019    25400    ids79    9    

Как программно открыть внешний отчет из "Дополнительных отчетов и обработок" и передать параметры (при помощи БСП)

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

Пример, как при помощи БСП программно открыть внешний отчет/обработку из "Дополнительные отчеты и обработки" и передать параметры...

25.03.2019    27936    ellavs    15    

Добавление отчетов в типовые конфигурации 1С

Практика программирования Универсальные функции БСП (Библиотека стандартных подсистем) v8::УФ v8::СКД 1cv8.cf Бесплатно (free)

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

07.03.2019    62612    ids79    46    

Возможности типовых шаблонов ограничения доступа на уровне записей (RLS)

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

Краткий обзор применения типовых шаблонов ограничения доступа на уровне записей в конфигурациях, созданных на базе БСП: #ПоЗначениям, #ПоНаборамЗначений, #ПоЗначениямРасширенный, #ПоЗначениямИНаборамРасширенный

03.02.2019    46239    ids79    11    

Добавление команд печати в конфигурациях на БСП 2.4.3 (в частности, в самописных документах в Бухгалтерии 3.0 после релиза 3.0.52.35)

Печатные формы документов Практика программирования БСП (Библиотека стандартных подсистем) v8 v8::БУ БП3.0 Россия Бесплатно (free)

В статье https://infostart.ru/public/237013/ пользователя nick max рассматривался список действий для подключения команд печати в Бухгалтерии 3.0, работающей на БСП 2.3.6. В новом релизе Бухгалтерии 3.0.52.35 от 15.09.2017г. стала использоваться БСП 2.4.3, из-за чего произошли изменения в процедурах общих модулей, связанных с механизмом печати, и в процедурах их вызова в формах документов и в формах списков. Рассмотрим их.

18.09.2017    74265    bugtester    52    

Фоновое формирование отчета СКД на УФ средствами БСП

Практика программирования БСП (Библиотека стандартных подсистем) v8::УФ v8::СКД Бесплатно (free)

В узких кругах широко известна проблема, когда штатное фоновое формирование отчета СКД на управляемых формах перестает работать при выполнении нештатной компоновки (переопределении события ПриКомпоновкеРезультата). В этом случае клиент ожидает ответа сервера и сеанс 1С "висит", что жутко неудобно при формировании затратных по времени отчетов. Также нет возможности прервать такое выполнение. Когда мириться с этим стало тяжело, стал искать решения, но почему-то подходящего готового рецепта не нашел. Если плохо искал, значит, будет еще один в копилку.

16.05.2017    28833    herfis    10