Шаблон фоновой обработки данных

Шаблон для быстрого написания обработки большого массива данных с отображением прогресса.

Частенько вонзникают задачи вида: проставить реквизит в документе или тч. Или исправить данные в регистрах/проводках.
Конечно же написать обработку для такого случая не сложно, но! Если данных слишком много, то она будет выполняться несколько часов, в течении которых мы не будет знать сколько уже выпонилось. А может вообще все повисло?

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

Так же для примера уже готовые обработчики:

  • Шапки документа
    В запросе выбираются все документы, которые еще не обработаны и в цикле обрабатываются
  • ТЧ документа
    В запросе выбираются все документы и номера строк, которые еще не обработаны и в цикле обрабатываются
  • Регистра
    В запросе выбираются все регистраторы и номера строк, которые еще не обработаны и в цикле обрабатываются
  • Проводок
    В запросе выбираются все регистраторы, номера строк и признак Дт-Кт, которые еще не обработаны и в цикле обрабатываются
    Для примера показана установка валюты в NULL для неалютных счетов

При обработке передается состяние прогресса типовыми методами БСП.
Также есть параметр для отладки "Кол-во строк", те обработать только первые несколько записей. Для проверки работоспособности кода (не хочется запускать обрабротку на 1000 тыщ документов, а потом узнать что она работает некорректно).

Обработку можно подключить как внешнюю и настроить выполнение обработчиков по расписанию

Работает для любой конфигурации на БСП, проверено на БП 3.0.65.

PS. Обработка использует подсистему длительных заданий как основу и избавляет от написания интерфейсного кода по созданию и запуску фоновых, а также отображению прогресса

версия: 19.11.2024
[+] Сохранение галочек в таблице

 

3 Comments

  1. jif

    умеет обображать прогресс

    Reply
  2. Tarzan_Pasha

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

    Если ее поместить в справочник «Внешние обработки», то команды обработки документов, проводок и т.п. не запускаются.

    Reply
  3. acsent

    (2) В команде стоит

    Если РегламентныеЗаданияСервер.РаботаСВнешнимиРесурсамиЗаблокирована() Тогда
    Возврат;
    КонецЕсли;

    нужно закомментирвоать участок

    Reply

Leave a Comment

Ваш адрес email не будет опубликован. Обязательные поля помечены *