Как программно сохранить заполненную печатную форму документа в файл MXL в 1С

Программист 1С v8.3 (Обычные формы) 1C:Бухгалтерия Бухгалтерский учет IT и автоматизация бизнеса
← На главную

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

При попытке программно выгрузить печатную форму (например, «Акт сверки взаиморасчетов») разработчики часто совершают распространенную ошибку: обращаются непосредственно к макету объекта с помощью метода ПолучитьМакет(). В результате получается документ, который содержит только пустую визуальную структуру (шаблон оформления), но не заполнен данными из информационной базы.

Метод ПолучитьМакет() возвращает незаполненный макет из конфигуратора. Чтобы получить готовый печатный документ с данными, необходимо вызвать штатный алгоритм печати документа, который выполнит запросы к базе, заполнит параметры макета реальными показателями, и только после этого сохранить получившийся ТабличныйДокумент в файл.

Как получить заполненный табличный документ

Рассмотрим по шагам, как правильно сформировать и сохранить заполненную печатную форму в обычных формах (например, в конфигурации «Бухгалтерия предприятия ред. 2.0»).

  1. Получаем ссылку на документ. Выбираем нужный документ, для которого необходимо выгрузить печатную форму.
  2. Вызываем процедуру печати документа. Вызываем экспортную функцию печати из модуля объекта или модуля менеджера, которая возвращает готовый ТабличныйДокумент.
  3. Сохраняем табличный документ на диск. Используем метод Записать() у сформированного объекта ТабличныйДокумент.

Проанализируем пример кода для формирования и выгрузки печатной формы акта сверки в файл формата MXL:


// 1. Получаем объект документа
ОбъектДокумента = СсылкаНаДокумент.ПолучитьОбъект();

// 2. Формируем заполненный табличный документ через экспортную функцию печати
ТабличныйДокумент = ОбъектДокумента.Печать("АктСверки", 1); 

// 3. Сохраняем заполненный табличный документ в файл
ИмяФайла = "C:\Temp\АктСверки.mxl";
ТабличныйДокумент.Записать(ИмяФайла, ТипФайлаТабличногоДокумента.MXL);

Синтаксис и параметры метода Записать()

Метод Записать() объекта ТабличныйДокумент имеет следующий синтаксис:

ТабличныйДокумент.Записать(<ИмяФайла>, <ТипФайлаТаблицы>)

Разберем параметры метода подробнее:

  1. ИмяФайла (обязательный, тип Строка) — полный путь к файлу на диске, в который будет сохранен документ.
  2. ТипФайлаТаблицы (необязательный, системное перечисление ТипФайлаТабличногоДокумента) — формат сохранения. По умолчанию используется значение ТипФайлаТабличногоДокумента.MXL.

Альтернативные форматы сохранения (XLSX, PDF)

Формат MXL является специализированным форматом системы 1С:Предприятие. Если сформированные печатные формы необходимо отправлять клиентам по электронной почте, рекомендуется сохранять их в более распространенные форматы, такие как PDF или XLSX (Excel).

Посмотрим на пример выгрузки документа в формат Excel:


ИмяФайлаXLS = "C:\Temp\АктСверки.xlsx";
ТабличныйДокумент.Записать(ИмяФайлаXLS, ТипФайлаТабличногоДокумента.XLSX);

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

← На главную