К статье
Практический материал

Документы и Печать · 12 мин

Как изменить печатную форму в конфигураторе 1С

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

Изменение печатной формы в конфигураторе 1С — типовая задача: добавить логотип в счёт, вывести дополнительное поле в акте, убрать лишнюю колонку из накладной. Вся работа сводится к трём шагам: найти объект, которому принадлежит форма, открыть её макет, отредактировать табличный документ и, при необходимости, модуль формирования.

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

Главный риск ручной правки в конфигураторе — потеря изменений при обновлении. Если конфигурация типовая и обновляется автоматически, любые правки макетов будут затёрты или вызовут конфликт при сравнении. Поэтому первый раздел статьи посвящён выбору правильного способа.

Когда править в конфигураторе, а когда обойтись без него

Существует три пути изменения печатной формы, и выбор зависит от типа конфигурации и глубины правки. Прямое редактирование макета в конфигураторе — самый гибкий, но и самый рискованный с точки зрения обновлений вариант.

Если конфигурация типовая и стоит на полной поддержке, любое изменение макета потребует снятия объекта с поддержки. После этого обновления на этот объект перестанут применяться автоматически, и при каждом релизе придётся вручную сравнивать изменения. Для одной-двух правок это управляемо, для десятков — превращается в постоянную работу.

Маршрут решения

Как выбрать способ изменения

Нужно поменять только шапку, подписи, реквизиты организацииПроверьте настройки в разделе «Администрирование → Печатные формы» и макеты в пользовательском режиме — конфигуратор может не понадобиться
Конфигурация типовая и регулярно обновляетсяСоздайте внешнюю печатную форму и подключите её через «Дополнительные отчеты и обработки»
Конфигурация самописная или снята с поддержкиПравьте макет напрямую в конфигураторе — это самый быстрый путь
Нужно изменить логику вывода данных, а не только внешний видПотребуется правка модуля менеджера объекта — делайте это в расширении конфигурации или внешней обработке

Подготовка: копия базы и режим поддержки

Перед любыми изменениями в конфигураторе сделайте резервную копию информационной базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу через «Администрирование → Выгрузить информационную базу». Для клиент-серверной — используйте выгрузку в dt или средства СУБД. Правка макета сама по себе безобидна, но ошибка в модуле печати может сделать документ непечатаемым в самый неподходящий момент.

Второй шаг — проверить режим поддержки. Откройте конфигуратор, зайдите в «Конфигурация → Поддержка → Настройка поддержки». Если объекты стоят на замке, изменения будут запрещены. Нажмите «Включить возможность изменения» и согласитесь с предупреждениями. Для отдельного объекта можно выбрать режим «Редактируется с сохранением поддержки» — это минимально вмешивается в механизм обновлений.

Как найти нужный макет печатной формы

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

Порядок поиска такой. Откройте конфигуратор и разверните дерево конфигурации. Найдите нужный объект — например, «Документы → СчетНаОплатуПокупателю». Разверните его ветку «Макеты»: там будут элементы с именами вроде «МакетСчета», «СчетЗаказа» и т.п. Если макетов несколько, определить нужный помогает код: откройте модуль менеджера объекта и найдите функцию печати — в ней видно, какой макет получается вызовом ПолучитьМакет("ИмяМакета").

В типовых конфигурациях на БСП (библиотека стандартных подсистем) печать часто вынесена в общие макеты и модули менеджеров. Тогда ищите в ветке «Общие → Общие макеты» или в модуле менеджера документа процедуру «ДобавитьКомандыПечати» — она показывает, какие печатные формы зарегистрированы и какие функции их формируют.

Как найти макет печатной формы
  1. 1
    Откройте конфигуратор и дерево конфигурации
  2. 2
    Найдите объект (документ/справочник), из которого печатается форма
  3. 3
    Разверните ветку «Макеты» объекта
  4. 4
    Если макета нет — откройте модуль менеджера объекта и найдите функцию печати
  5. 5
    По вызову ПолучитьМакет() определите имя макета и его расположение (объект или общие макеты)
  6. 6
    Откройте макет двойным щелчком

Редактирование макета: ячейки, параметры и области

Макет печатной формы — это табличный документ, разбитый на именованные области: «Шапка», «СтрокаТаблицы», «Подвал» и т.д. Области выделяются по строкам или колонкам, и код печати выводит их последовательно, заполняя параметры данными.

Ячейки макета бывают трёх типов заполнения, который задаётся в свойствах ячейки (правый клик → «Свойства»): «Текст» — неизменяемая надпись; «Параметр» — значение подставляется из кода, имя параметра указывается в свойстве «Параметр»; «Шаблон» — смесь текста и параметров в квадратных скобках, например Счет № [Номер] от [Дата]. Чтобы добавить новое поле из документа, вставьте параметр в ячейку и убедитесь, что в коде печати этот параметр заполняется.

Типовые правки выглядят так: изменить текст — просто перепечатать содержимое ячейки; добавить строку — выделить строку, вставить новую и задать её свойства; добавить логотип — вставить картинку через «Таблица → Рисунки» или поместить картинку в ячейку с типом «Картинка»; изменить ширину колонки — потянуть границу или задать точное значение в свойствах. Объединение ячеек, шрифты, границы и выравнивание настраиваются стандартной панелью форматирования табличного документа.

Изменение кода печати в модуле менеджера

Когда недостаточно поменять шаблон — например, нужно вывести поле, которого нет в запросе, или изменить логику группировки строк — правится модуль менеджера объекта. Откройте его через контекстное меню объекта: «Открыть модуль менеджера».

Найдите функцию печати (в типовых — «ПечатьСчетаНаОплату», «СформироватьПечатнуюФорму» и т.п.). Типичная структура кода: запрос к данным документа, получение макета, цикл по областям с вызовом Область.Параметры.ИмяПараметра = Значение и ТабличныйДокумент.Вывести(Область). Чтобы добавить новый параметр, дополните запрос нужным полем и добавьте строку присвоения параметра.

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

bsl
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НомерДокумента = ДанныеДокумента.Номер;
ОбластьМакета.Параметры.ДатаДокумента = Формат(ДанныеДокумента.Дата, "ДЛФ=D");
ТабличныйДокумент.Вывести(ОбластьМакета);

Проверка результата и сохранение изменений

После правки макета обновите конфигурацию базы данных: клавиша F7 или «Конфигурация → Обновить конфигурацию базы данных». Без этого изменения не попадут в рабочую базу. Затем запустите 1С в режиме предприятия, откройте тестовый документ и сформируйте печатную форму.

Проверяйте не только внешний вид, но и граничные случаи: документ с длинным наименованием контрагента, с большим числом строк, с пустыми необязательными полями. Пустой параметр в шаблоне может «съехать» вёрстку, а длинный текст — разорвать страницу. Используйте предварительный просмотр и проверьте разбиение на страницы.

Контрольные точки

Как проверить результат

Форма открывается из документа
Норма

Печатная форма формируется без ошибок

Тревожный признак

Ошибка «Параметр не найден» или «Область не найдена» — имя в коде не совпадает с макетом

Заполнение новых полей
Норма

Новые параметры выводятся значениями из документа

Тревожный признак

Пустые ячейки или текст вида [Параметр] — параметр не заполнен в коде

Вёрстка на разных данных
Норма

Строки не наезжают друг на друга, страницы разбиваются корректно

Тревожный признак

Текст обрезан, таблица разрывается посередине строки

Другие печатные формы объекта
Норма

Остальные формы печатаются как раньше

Тревожный признак

Сломалась соседняя форма — вероятно, изменён общий макет или общий код

Типичные ошибки и ограничения

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

Вторая группа ошибок связана с параметрами: переименовали параметр в макете, но забыли в коде (или наоборот) — получите ошибку при формировании. Добавили параметр в шаблон, но не добавили его заполнение — ячейка выведется пустой или с необработанным текстом шаблона.

Типичные ошибки
01
Правка макета без обновления конфигурации БД — изменения не видны в режиме предприятия
02
Изменение имени области без правки кода — ошибка «Область не найдена» при печати
03
Вставка строк вне именованной области — новые строки не выводятся
04
Правка типового макета без копии — при обновлении все изменения теряются
05
Изменение общего макета, который используется несколькими формами — ломаются соседние печатные формы
06
Забытый тест на документе с длинными данными — вёрстка едет у реальных пользователей

Помните и об ограничениях: макет табличного документа не умеет сложной логики — вся логика в коде. Условное скрытие строк, итоги по группам, разный вывод для разных условий делаются программно, а не настройками ячеек. Если требуется серьёзная переработка формы, иногда проще создать новый макет и новую функцию печати, чем перекраивать типовую.

Итог

Что важно запомнить

Печатная форма = макет табличного документа + код заполнения. Найдите макет через ветку «Макеты» объекта или через код печати, отредактируйте ячейки и области, при необходимости дополните заполнение параметров в модуле менеджера. Обязательно сделайте копию базы, обновите конфигурацию БД и проверьте форму на разных данных. Для типовых конфигураций предпочитайте внешние печатные формы и расширения — они переживают обновления.

Частые вопросы

Можно ли изменить печатную форму без конфигуратора?

Частично да. В типовых конфигурациях на базе БСП есть механизм внешних печатных форм: создаётся внешняя обработка с макетом и кодом, которая подключается через «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Также некоторые элементы (логотип, подписи, реквизиты) настраиваются в карточке организации и подставляются в формы автоматически.

Почему после обновления 1С мои изменения пропали?

Если конфигурация обновляется на типовой релиз, изменённые типовые объекты заменяются новыми версиями из поставки. При обновлении в режиме сравнения можно вручную оставить свои изменения, но автоматическое обновление их затирает. Решение — выносить правки во внешнюю печатную форму или расширение конфигурации.

Как добавить в счёт логотип компании?

Откройте макет печатной формы счёта, выделите ячейку в области шапки, через меню «Таблица → Рисунки → Вставить» добавьте картинку либо установите ячейке тип содержимого «Картинка» и параметр, который заполняется в коде изображением из хранилища. Во многих типовых конфигурациях логотип уже подхватывается из карточки организации, если задан в её реквизитах.

Что делать, если при печати ошибка «Параметр не найден»?

Имя параметра в коде не совпадает с именем в макете. Откройте макет, проверьте свойство «Параметр» (или «Имя») у проблемной ячейки и сравните с тем, что присваивается в модуле печати. Учтите регистр и возможные опечатки. Также ошибка возникает, если ячейка с параметром попала в другую область, чем та, что обрабатывается в коде.

Можно ли вернуть типовую печатную форму после неудачной правки?

Да, если есть резервная копия — восстановите объект из неё через сравнение и объединение конфигураций. Если копии нет, но конфигурация типовая, можно загрузить макет из конфигурации поставщика: «Конфигурация → Поддержка → Настройка поддержки → Загрузить конфигурацию из файла» либо сравнение с файлом поставки. Поэтому перед правкой макета полезно сохранить его копию под другим именем.

Чем расширение конфигурации лучше прямой правки?

Расширение хранит изменения отдельно от основной конфигурации: типовой код не трогается, обновления накатываются штатно, а при проблемах расширение просто отключается. Через расширение можно переопределять процедуры печати и добавлять свои макеты. Ограничение — не все объекты и методы доступны для переопределения, и отладка в расширениях чуть сложнее.