Разработка печатных форм в системе «1С:Предприятие» — одна из самых частых задач, с которой сталкиваются программисты. На первый взгляд процесс кажется простым, но когда дело доходит до пиксельной верстки, точного соблюдения корпоративных шрифтов, отступов, границ ячеек и сложного форматирования, ручная отрисовка макета в Конфигураторе превращается в рутину. Пользователи часто предоставляют готовые образцы форм в формате Microsoft Excel, и ручной перенос этой разметки в табличный документ 1С отнимает массу времени.
В этой статье мы подробно рассмотрим, как можно значительно упростить и ускорить процесс разработки печатных форм, разберем методы быстрого импорта макетов из Excel, проанализируем возможности специализированных утилит и современных конструкторов печатных форм.
Начнем с самого простого и доступного способа, который не требует сторонних программ. Если вы работаете на платформе 1С:Предприятие версии 8.3, вам доступен прямой импорт файлов Excel в среду разработки.
Разберем этот процесс по шагам:
.mxl. При этом сохраняются практически все шрифты, объединения ячеек, границы, цвета заливки и размеры колонок.Важный нюанс: при таком переносе сложные формулы Excel, специфические стили или сложные диаграммы могут отображаться некорректно или «поплыть». Поэтому после вставки макета обязательно проверьте границы областей, настройте параметры страниц для печати и укажите имена параметров для заполнения данными.
Если вы вынуждены работать на старых версиях платформы (например, 1С 8.2), где прямое открытие файлов Excel в Конфигураторе может не поддерживаться или работать со сбоями, на помощь приходят специализированные инструменты.
Проанализируем две популярные утилиты:
.mxl). Вы просто указываете исходный файл, запускаете процесс конвертации и получаете готовый макет, который без проблем открывается в любом Конфигураторе.Если вам нужно не просто перенести макет, а полностью автоматизировать создание логики формирования печатной формы (написание запросов, создание реквизитов, заполнение параметров), отличным решением станет использование специализированных конструкторов.
Рассмотрим, как работают такие инструменты:
.docx), визуально связывать параметры с запросами к базе данных, автоматически генерировать штрихкоды и QR-коды и сразу же подключать готовую форму к нужным документам системы в качестве дополнительной печатной формы.Выясним, как упростить работу, если ваша конфигурация построена на базе БСП (к таким конфигурациям относятся «1С:Бухгалтерия», «1С:Управление торговлей», «1С:ERP» и другие типовые решения). БСП предоставляет мощные встроенные инструменты пользовательской настройки печатных форм.
Редактирование макетов в режиме «Предприятие»:
Для изменения существующей печатной формы программисту часто вообще не нужно открывать Конфигуратор. Достаточно перейти в раздел Администрирование -> Печатные формы, отчеты и обработки -> Макеты печатных форм. Здесь можно выбрать любой стандартный макет (например, Счет на оплату), отредактировать его оформление (шрифты, логотипы, границы, текст) прямо в пользовательском режиме и сохранить. Система будет использовать вашу версию макета, при этом конфигурация останется на полной поддержке.
Печать по шаблонам MS Word и OpenOffice:
Если печатная форма представляет собой текстовый договор, соглашение или сложный юридический документ, верстать его в виде ячеек табличного документа крайне неудобно. БСП позволяет использовать в качестве макетов файлы форматов .docx или .odt. Вы можете подготовить макет в привычном текстовом редакторе Word, расставить в нужных местах параметры в фигурных скобках, например, {НомерДокумента} или {Контрагент}, и загрузить этот шаблон в 1С. Программа при печати сама заполнит эти поля актуальными данными из информационной базы.
Посмотрим на классический пример программного кода, который используется для вывода готового макета в табличный документ. После того как вы скопировали макет из Excel и настроили параметры, код формирования печатной формы в модуле менеджера документа или внешней обработке будет выглядеть следующим образом:
Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИМПОРТ";
// Получаем макет, скопированный из Excel
Макет = ПолучитьМакет("МакетИзExcel");
// Получаем области макета
Шапка = Макет.ПолучитьОбласть("Шапка");
СтрокаТаблицы = Макет.ПолучитьОбласть("Строка");
Подвал = Макет.ПолучитьОбласть("Подвал");
Для Каждого СсылкаНаДокумент Из МассивОбъектов Цикл
// Заполняем параметры шапки данными документа
Шапка.Параметры.Заполнить(СсылкаНаДокумент);
Шапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
Шапка.Параметры.ДатаДокумента = Формат(СсылкаНаДокумент.Дата, "ДФ=dd.MM.yyyy");
ТабличныйДокумент.Вывести(Шапка);
// Выводим табличную часть документа
НомерСтроки = 0;
Для Каждого ТекСтрока Из СсылкаНаДокумент.Товары Цикл
НомерСтроки = НомерСтроки + 1;
СтрокаТаблицы.Параметры.Заполнить(ТекСтрока);
СтрокаТаблицы.Параметры.НП = НомерСтроки;
ТабличныйДокумент.Вывести(СтрокаТаблицы);
КонецЦикла;
// Заполняем и выводим подвал
Подвал.Параметры.Заполнить(СсылкаНаДокумент);
ТабличныйДокумент.Вывести(Подвал);
КонецЦикла;
Возврат ТабличныйДокумент;
КонецФункции
Этот шаблон кода демонстрирует базовый алгоритм работы с макетом. Сочетание импорта разметки из Excel напрямую через Конфигуратор и написание чистого, структурированного кода вывода позволяет сократить время разработки печатной формы в несколько раз.