Как упростить разработку печатных форм в 1С:Предприятие и перенести макет из Excel?

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

Разработка печатных форм в системе «1С:Предприятие» — одна из самых частых задач, с которой сталкиваются программисты. На первый взгляд процесс кажется простым, но когда дело доходит до пиксельной верстки, точного соблюдения корпоративных шрифтов, отступов, границ ячеек и сложного форматирования, ручная отрисовка макета в Конфигураторе превращается в рутину. Пользователи часто предоставляют готовые образцы форм в формате Microsoft Excel, и ручной перенос этой разметки в табличный документ 1С отнимает массу времени.

В этой статье мы подробно рассмотрим, как можно значительно упростить и ускорить процесс разработки печатных форм, разберем методы быстрого импорта макетов из Excel, проанализируем возможности специализированных утилит и современных конструкторов печатных форм.

Метод 1. Прямой импорт файлов Excel в Конфигуратор 1С

Начнем с самого простого и доступного способа, который не требует сторонних программ. Если вы работаете на платформе 1С:Предприятие версии 8.3, вам доступен прямой импорт файлов Excel в среду разработки.

Разберем этот процесс по шагам:

  1. Откройте Конфигуратор вашей базы данных.
  2. В главном меню выберите команду Файл -> Открыть.
  3. В диалоговом окне выбора файла укажите тип файла «Лист Excel (*.xls; *.xlsx)» и выберите ваш подготовленный шаблон.
  4. Платформа 1С автоматически преобразует файл Excel во внутренний формат табличного документа .mxl. При этом сохраняются практически все шрифты, объединения ячеек, границы, цвета заливки и размеры колонок.
  5. Теперь вам остается лишь выделить всю разметку в открывшемся окне, скопировать её (Ctrl+C) и вставить в макет вашей печатной формы (Ctrl+V).

Важный нюанс: при таком переносе сложные формулы Excel, специфические стили или сложные диаграммы могут отображаться некорректно или «поплыть». Поэтому после вставки макета обязательно проверьте границы областей, настройте параметры страниц для печати и укажите имена параметров для заполнения данными.

Метод 2. Использование утилиты xls2mxl и библиотеки «Йоксель»

Если вы вынуждены работать на старых версиях платформы (например, 1С 8.2), где прямое открытие файлов Excel в Конфигураторе может не поддерживаться или работать со сбоями, на помощь приходят специализированные инструменты.

Проанализируем две популярные утилиты:

Метод 3. Использование конструкторов внешних печатных форм (ВПФ)

Если вам нужно не просто перенести макет, а полностью автоматизировать создание логики формирования печатной формы (написание запросов, создание реквизитов, заполнение параметров), отличным решением станет использование специализированных конструкторов.

Рассмотрим, как работают такие инструменты:

  1. Классические конструкторы ВПФ (например, публикации на Инфостарте): Позволяют визуально сопоставить поля объектов конфигурации (документов, справочников) с параметрами макета печатной формы. Конструктор сам генерирует необходимый программный код модуля и макет табличного документа, упаковывая результат во внешнюю обработку.
  2. Современные решения (например, Infostart PrintWizard): Это продвинутые инструменты для платформы 1С 8.3, которые позволяют создавать печатные формы полностью в режиме «1С:Предприятие» без захода в Конфигуратор. Вы можете загружать макеты в формате табличных документов или MS Word (.docx), визуально связывать параметры с запросами к базе данных, автоматически генерировать штрихкоды и QR-коды и сразу же подключать готовую форму к нужным документам системы в качестве дополнительной печатной формы.

Метод 4. Штатные механизмы БСП (Библиотеки стандартных подсистем)

Выясним, как упростить работу, если ваша конфигурация построена на базе БСП (к таким конфигурациям относятся «1С:Бухгалтерия», «1С:Управление торговлей», «1С:ERP» и другие типовые решения). БСП предоставляет мощные встроенные инструменты пользовательской настройки печатных форм.

Редактирование макетов в режиме «Предприятие»:

Для изменения существующей печатной формы программисту часто вообще не нужно открывать Конфигуратор. Достаточно перейти в раздел Администрирование -> Печатные формы, отчеты и обработки -> Макеты печатных форм. Здесь можно выбрать любой стандартный макет (например, Счет на оплату), отредактировать его оформление (шрифты, логотипы, границы, текст) прямо в пользовательском режиме и сохранить. Система будет использовать вашу версию макета, при этом конфигурация останется на полной поддержке.

Печать по шаблонам MS Word и OpenOffice:

Если печатная форма представляет собой текстовый договор, соглашение или сложный юридический документ, верстать его в виде ячеек табличного документа крайне неудобно. БСП позволяет использовать в качестве макетов файлы форматов .docx или .odt. Вы можете подготовить макет в привычном текстовом редакторе Word, расставить в нужных местах параметры в фигурных скобках, например, {НомерДокумента} или {Контрагент}, и загрузить этот шаблон в 1С. Программа при печати сама заполнит эти поля актуальными данными из информационной базы.

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

Посмотрим на классический пример программного кода, который используется для вывода готового макета в табличный документ. После того как вы скопировали макет из Excel и настроили параметры, код формирования печатной формы в модуле менеджера документа или внешней обработке будет выглядеть следующим образом:


Функция СформироватьПечатнуюФорму(МассивОбъектов, ОбъектыПечати) Экспорт

    ТабличныйДокумент = Новый ТабличныйДокумент;
    ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ИМПОРТ";
    
    // Получаем макет, скопированный из Excel
    Макет = ПолучитьМакет("МакетИзExcel");
    
    // Получаем области макета
    Шапка = Макет.ПолучитьОбласть("Шапка");
    СтрокаТаблицы = Макет.ПолучитьОбласть("Строка");
    Подвал = Макет.ПолучитьОбласть("Подвал");
    
    Для Каждого СсылкаНаДокумент Из МассивОбъектов Цикл
        
        // Заполняем параметры шапки данными документа
        Шапка.Параметры.Заполнить(СсылкаНаДокумент);
        Шапка.Параметры.НомерДокумента = СсылкаНаДокумент.Номер;
        Шапка.Параметры.ДатаДокумента = Формат(СсылкаНаДокумент.Дата, "ДФ=dd.MM.yyyy");
        
        ТабличныйДокумент.Вывести(Шапка);
        
        // Выводим табличную часть документа
        НомерСтроки = 0;
        Для Каждого ТекСтрока Из СсылкаНаДокумент.Товары Цикл
            НомерСтроки = НомерСтроки + 1;
            СтрокаТаблицы.Параметры.Заполнить(ТекСтрока);
            СтрокаТаблицы.Параметры.НП = НомерСтроки;
            
            ТабличныйДокумент.Вывести(СтрокаТаблицы);
        КонецЦикла;
        
        // Заполняем и выводим подвал
        Подвал.Параметры.Заполнить(СсылкаНаДокумент);
        ТабличныйДокумент.Вывести(Подвал);
        
    КонецЦикла;
    
    Возврат ТабличныйДокумент;

КонецФункции

Этот шаблон кода демонстрирует базовый алгоритм работы с макетом. Сочетание импорта разметки из Excel напрямую через Конфигуратор и написание чистого, структурированного кода вывода позволяет сократить время разработки печатной формы в несколько раз.

← На главную