При автоматизации рутинных задач часто возникает необходимость выгружать сформированные отчеты 1С в файл формата Excel или PDF и сохранять их в определенную папку на сервере или сетевом диске по расписанию. Рассмотрим, как решить эту задачу в типовых конфигурациях 1С на управляемых формах (таких как «1С:Бухгалтерия», «1С:Управление торговлей», «1С:ERP Управление предприятием» и «1С:Комплексная автоматизация») без доработки конфигурации.
В типовых конфигурациях 1С, построенных на базе Библиотеки Стандартных Подсистем (БСП), присутствует встроенный механизм Рассылка отчетов. Вопреки названию, данный инструмент позволяет отправлять сформированные отчеты не только по электронной почте, но и сохранять их напрямую в файловую систему.
Разберем по шагам порядок настройки автоматического сохранения:
РассылкиОтчетов.В шаблоне имени выгружаемого файла можно использовать динамические теги, такие как текущая дата, время или наименование варианта отчета, что позволит формировать уникальные имена файлов при каждом запуске.
Проанализируем технические нюансы, с которыми можно столкнуться при настройке выгрузки отчетов по расписанию:
1. Контекст выполнения. Формирование и запись файла по расписанию выполняются в фоновом задании на стороне сервера 1С. Это означает, что процедура происходит от имени системной учетной записи, под которой запущен сервис 1C:Enterprise Server (по умолчанию в ОС Windows это учетная запись USR1CV8).
2. Локальные и сетевые пути. Если в настройках выгрузки указать локальный путь (например, C:\Reports), файл сохранится на физическом диске самого сервера приложений 1С, а не на рабочем столе пользователя. Для сохранения файла в общую сетевую папку (UNC-путь вида \\server\share) необходимо убедиться, что у системной учетной записи службы сервера 1С есть явные права на чтение и запись в эту сетевую директорию.
3. Отсутствие интерактивного режима. Фоновое задание выполняется в неинтерактивном режиме. Если выбранный вариант отчета или алгоритм выгрузки пытается вызвать клиентские методы (например, отобразить диалог выбора файла через ДиалогВыбораФайла или вывести модальное окно Предупреждение), процесс завершится аварийной ошибкой.
Если возможностей типовой подсистемы рассылки недостаточно, проанализируем другие способы решения задачи:
Использование механизма «Дополнительные отчеты и обработки». В программу можно подключить внешнюю обработку с типом команды «Вызов серверного метода». Для такой обработки в пользовательском режиме также настраивается индивидуальное расписание через механизм БСП, что позволяет избежать снятия конфигурации с поддержки.
Собственное регламентное задание в расширении. Если требуется сложная логика обработки данных перед сохранением, формировать отчет можно программно через механизмы Системы компоновки данных (СКД) и сохранять полученный табличный документ в файл на диске:
// Пример программного сохранения табличного документа в файл Excel
ТабличныйДокумент = Новый ТабличныйДокумент;
// ... Заполнение табличного документа с помощью СКД или программно ...
ИмяФайла = "C:\Reports\Отчет_" + Формат(ТекущаяДата(), "ДФ=yyyyMMdd_HHmmss") + ".xlsx";
ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.XLSX);
Таким образом, для решения задачи выгрузки отчетов по расписанию рекомендуется в первую очередь использовать типовую подсистему Рассылка отчетов, так как она не требует привлечения программистов и покрывает большинство базовых потребностей.