TGViewer
1С:БСП 1С:БСП @learn_ssl1c · 1.47K subscribers
Post #9 2.45K
Длительные операции на сервере

Одноименный стандарт https://its.1c.ru/db/v8std#content:642

Зачем нужны длительные операции?
• Чтобы не зависал интерфейс пользователя;
• Чтобы веб-сервер и браузер не отваливались на таймауте длительного обращения;
• Чтобы дать возможность пользователю отменить операцию, когда ему надоело ждать.

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

Как использовать, на примере новой формы из которой будет выполняться длительная операции:
1. Создаем команду и делаем для нее клиентский обработчики
2. Делаем серверную контекстную функцию, например НачатьДлительнуюОперацию и делаем вызов, например такой:

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

УникальныйИдентификатор - это свойство формы, он будет передан фоновому заданию, чтобы в случае, когда форма будет закрыта, платформа прервала фоновое задание на сервере.
В результате функция вернет идентификатор длительной операции, для отслеживания выполнения.
В процедуре Обработки.МояОбработка.ВыполнитьДействие это та самая процедура, которую вызываем на сервере асинхронно.

3. Делаем в клиентском обработчике команды

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

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

4. Описываем обработчик события завершения длительной операции, как

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

Механизм длительных операций имеет множество параметров и режимов работы.
Можно отображать окно состояния, или не отображать, можно получать промежуточный програсс, или не получать.

В ДемоБСП есть обработка демонстрирующая множество вариантов работы, Обработки._ДемоДлительнаяОперация.
More from @learn_ssl1c
  1. Nov 28, 2025Поддерживаемые варианты интерфейса - Версия 8.5 и Такси ОбщегоНазначенияКлиентСервер.ЭтоВа…
  2. Nov 28, 2025БСП 3.2 Вышла только что в публичную бету Список изменений тут https://dl03.1c.ru/content/…
  3. Nov 24, 2025🔌 Схема порядка событий, регистрируемых в ТЖ Технологический журнал в 1С это инструмент а…
  4. Aug 18, 2025Настройка IIS При использовании веб публикации на IIS, с переходом на версию платформы 8.3…
  5. Jul 31, 2025Новые возможности программной работы с архивами
  6. Jul 10, 2025Для удобного дополнения текста и установки более подходящей категории ошибки при перевызов…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →