Содержание:
2. Создание обработки для фонового выполнения в системе компоновки данных 1С
3. Использование фонового задания БСП в системе программирования 1С
4. Обработка завершения задания в автоматизированной системе 1С
Фоновое формирование отчетов в 1С позволяет освободить основное время пользователя, выполняя долгие вычисления или генерацию отчетов в фоновом режиме. Это особенно актуально для систем с большим объемом данных. Использование механизма фоновых заданий, встроенного в Библиотеку стандартных подсистем (БСП), значительно упрощает реализацию такой функциональности.
Мы рассмотрим основные шаги реализации.
1. Создание отчета в 1С
Создайте отчет, который будет формироваться в фоновом режиме. Например, «Дополнительный отчет». Он может быть реализован через СКД или как обычный отчет.
Пример процедуры формирования отчета:
Процедура СформироватьОтчет(Параметры, ИмяФайла)
// Основная логика формирования отчета
Отчет = Новый ОбъектОтчет("ИмяОтчета");
Отчет.УстановитьПараметры(Параметры);
ТаблицаРезультатов = Отчет.Сформировать();
// Сохранение результата в файл
ТаблицаРезультатов.Записать(ИмяФайла);
КонецПроцедуры
2. Создание обработки для фонового выполнения в системе компоновки данных 1С
Создайте общую обработку, которая будет использоваться для фонового задания. Она будет управлять запуском отчета в фоновом режиме.
Пример структуры обработки:
1) Параметры формирования отчета (например, дата начала и окончания, фильтры).
2) Кнопка для запуска формирования в фоновом режиме.
3) Обработчики событий фонового задания.
3. Использование фонового задания БСП в системе программирования 1С
Библиотека стандартных подсистем предоставляет удобные механизмы для выполнения заданий в фоновом режиме.
Пример запуска фонового задания:
Процедура ЗапуститьФормированиеОтчетаВФоне(Параметры) Экспорт
ПараметрыФоновогоЗадания = Новый Структура;
ПараметрыФоновогоЗадания.Вставить("Параметры", Параметры);
ПараметрыФоновогоЗадания.Вставить("ИмяФайла", ПолучитьИмяВременногоФайла());
// Запуск задания
ФоновыйКлиент.ДобавитьФоновоеЗадание(
"ФормированиеОтчета",
ЭтотОбъект,
"ФормироватьОтчетФон",
ПараметрыФоновогоЗадания,
Ложь
);
Сообщить("Формирование отчета запущено в фоновом режиме.");
КонецПроцедуры
4. Обработка завершения задания в автоматизированной системе 1С
В завершение фонового задания необходимо уведомить пользователя о готовности результата. Это можно сделать через стандартные уведомления 1С или отправку сообщения в журнал пользователя.
Пример уведомления:
Процедура ОбработкаЗавершенияФоновогоЗадания(Результат) Экспорт
Если Результат.Успешно Тогда
Сообщить("Отчет успешно сформирован. Файл сохранен по пути: " + Результат.Данные.ИмяФайла);
Иначе
Сообщить("Произошла ошибка при формировании отчета: " + Результат.СообщениеОшибки);
КонецЕсли;
КонецПроцедуры
Специалист компании ООО "Кодерлайн"
Елена Дубровина