Документы и Печать · 12 мин
Как изменить печатную форму в конфигураторе 1С
Пошаговая инструкция: как найти и изменить макет печатной формы в конфигураторе 1С, добавить поля и логотип, не сломав обновления. Проверка результата и ошибки.
Изменение печатной формы в конфигураторе 1С — типовая задача: добавить логотип в счёт, вывести дополнительное поле в акте, убрать лишнюю колонку из накладной. Вся работа сводится к трём шагам: найти объект, которому принадлежит форма, открыть её макет, отредактировать табличный документ и, при необходимости, модуль формирования.
Прежде чем лезть в конфигуратор, важно понять: типовые конфигурации 1С (Бухгалтерия, Управление торговлей, ЗУП) часто позволяют менять печатные формы без изменения конфигурации — через «Администрирование → Печатные формы, отчеты и обработки» или механизм внешних печатных форм. Правка в конфигураторе оправдана, когда штатных средств недостаточно или конфигурация находится на поддержке с возможностью изменения.
Главный риск ручной правки в конфигураторе — потеря изменений при обновлении. Если конфигурация типовая и обновляется автоматически, любые правки макетов будут затёрты или вызовут конфликт при сравнении. Поэтому первый раздел статьи посвящён выбору правильного способа.
Когда править в конфигураторе, а когда обойтись без него
Существует три пути изменения печатной формы, и выбор зависит от типа конфигурации и глубины правки. Прямое редактирование макета в конфигураторе — самый гибкий, но и самый рискованный с точки зрения обновлений вариант.
Если конфигурация типовая и стоит на полной поддержке, любое изменение макета потребует снятия объекта с поддержки. После этого обновления на этот объект перестанут применяться автоматически, и при каждом релизе придётся вручную сравнивать изменения. Для одной-двух правок это управляемо, для десятков — превращается в постоянную работу.
Как выбрать способ изменения
Подготовка: копия базы и режим поддержки
Перед любыми изменениями в конфигураторе сделайте резервную копию информационной базы. Для файловой базы достаточно скопировать файл 1Cv8.1CD или выгрузить базу через «Администрирование → Выгрузить информационную базу». Для клиент-серверной — используйте выгрузку в dt или средства СУБД. Правка макета сама по себе безобидна, но ошибка в модуле печати может сделать документ непечатаемым в самый неподходящий момент.
Второй шаг — проверить режим поддержки. Откройте конфигуратор, зайдите в «Конфигурация → Поддержка → Настройка поддержки». Если объекты стоят на замке, изменения будут запрещены. Нажмите «Включить возможность изменения» и согласитесь с предупреждениями. Для отдельного объекта можно выбрать режим «Редактируется с сохранением поддержки» — это минимально вмешивается в механизм обновлений.
Как найти нужный макет печатной формы
Печатная форма в 1С состоит из двух частей: макета (шаблона табличного документа) и программного кода, который заполняет макет данными. Макет обычно лежит в ветке «Макеты» того объекта, к которому относится печать: документа, справочника или обработки.
Порядок поиска такой. Откройте конфигуратор и разверните дерево конфигурации. Найдите нужный объект — например, «Документы → СчетНаОплатуПокупателю». Разверните его ветку «Макеты»: там будут элементы с именами вроде «МакетСчета», «СчетЗаказа» и т.п. Если макетов несколько, определить нужный помогает код: откройте модуль менеджера объекта и найдите функцию печати — в ней видно, какой макет получается вызовом ПолучитьМакет("ИмяМакета").
В типовых конфигурациях на БСП (библиотека стандартных подсистем) печать часто вынесена в общие макеты и модули менеджеров. Тогда ищите в ветке «Общие → Общие макеты» или в модуле менеджера документа процедуру «ДобавитьКомандыПечати» — она показывает, какие печатные формы зарегистрированы и какие функции их формируют.
- 1Откройте конфигуратор и дерево конфигурации
- 2Найдите объект (документ/справочник), из которого печатается форма
- 3Разверните ветку «Макеты» объекта
- 4Если макета нет — откройте модуль менеджера объекта и найдите функцию печати
- 5По вызову ПолучитьМакет() определите имя макета и его расположение (объект или общие макеты)
- 6Откройте макет двойным щелчком
Редактирование макета: ячейки, параметры и области
Макет печатной формы — это табличный документ, разбитый на именованные области: «Шапка», «СтрокаТаблицы», «Подвал» и т.д. Области выделяются по строкам или колонкам, и код печати выводит их последовательно, заполняя параметры данными.
Ячейки макета бывают трёх типов заполнения, который задаётся в свойствах ячейки (правый клик → «Свойства»): «Текст» — неизменяемая надпись; «Параметр» — значение подставляется из кода, имя параметра указывается в свойстве «Параметр»; «Шаблон» — смесь текста и параметров в квадратных скобках, например Счет № [Номер] от [Дата]. Чтобы добавить новое поле из документа, вставьте параметр в ячейку и убедитесь, что в коде печати этот параметр заполняется.
Типовые правки выглядят так: изменить текст — просто перепечатать содержимое ячейки; добавить строку — выделить строку, вставить новую и задать её свойства; добавить логотип — вставить картинку через «Таблица → Рисунки» или поместить картинку в ячейку с типом «Картинка»; изменить ширину колонки — потянуть границу или задать точное значение в свойствах. Объединение ячеек, шрифты, границы и выравнивание настраиваются стандартной панелью форматирования табличного документа.
Изменение кода печати в модуле менеджера
Когда недостаточно поменять шаблон — например, нужно вывести поле, которого нет в запросе, или изменить логику группировки строк — правится модуль менеджера объекта. Откройте его через контекстное меню объекта: «Открыть модуль менеджера».
Найдите функцию печати (в типовых — «ПечатьСчетаНаОплату», «СформироватьПечатнуюФорму» и т.п.). Типичная структура кода: запрос к данным документа, получение макета, цикл по областям с вызовом Область.Параметры.ИмяПараметра = Значение и ТабличныйДокумент.Вывести(Область). Чтобы добавить новый параметр, дополните запрос нужным полем и добавьте строку присвоения параметра.
Для типовых конфигураций предпочтительнее не править модуль напрямую, а использовать расширение конфигурации: оно позволяет переопределить процедуру печати через аннотацию «&Вместо» или «&После», не затрагивая основной код. Расширения не мешают обновлению конфигурации и легко отключаются при проблемах.
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НомерДокумента = ДанныеДокумента.Номер;
ОбластьМакета.Параметры.ДатаДокумента = Формат(ДанныеДокумента.Дата, "ДЛФ=D");
ТабличныйДокумент.Вывести(ОбластьМакета);Проверка результата и сохранение изменений
После правки макета обновите конфигурацию базы данных: клавиша F7 или «Конфигурация → Обновить конфигурацию базы данных». Без этого изменения не попадут в рабочую базу. Затем запустите 1С в режиме предприятия, откройте тестовый документ и сформируйте печатную форму.
Проверяйте не только внешний вид, но и граничные случаи: документ с длинным наименованием контрагента, с большим числом строк, с пустыми необязательными полями. Пустой параметр в шаблоне может «съехать» вёрстку, а длинный текст — разорвать страницу. Используйте предварительный просмотр и проверьте разбиение на страницы.
Как проверить результат
Печатная форма формируется без ошибок
Ошибка «Параметр не найден» или «Область не найдена» — имя в коде не совпадает с макетом
Новые параметры выводятся значениями из документа
Пустые ячейки или текст вида [Параметр] — параметр не заполнен в коде
Строки не наезжают друг на друга, страницы разбиваются корректно
Текст обрезан, таблица разрывается посередине строки
Остальные формы печатаются как раньше
Сломалась соседняя форма — вероятно, изменён общий макет или общий код
Типичные ошибки и ограничения
Самая частая ошибка — редактирование не того макета. В типовых конфигурациях у одного документа может быть несколько макетов (для разных вариантов печати, разных стран, разных релизов), и визуально похожий макет может не использоваться. Всегда подтверждайте выбор через код печати.
Вторая группа ошибок связана с параметрами: переименовали параметр в макете, но забыли в коде (или наоборот) — получите ошибку при формировании. Добавили параметр в шаблон, но не добавили его заполнение — ячейка выведется пустой или с необработанным текстом шаблона.
Помните и об ограничениях: макет табличного документа не умеет сложной логики — вся логика в коде. Условное скрытие строк, итоги по группам, разный вывод для разных условий делаются программно, а не настройками ячеек. Если требуется серьёзная переработка формы, иногда проще создать новый макет и новую функцию печати, чем перекраивать типовую.
Что важно запомнить
Печатная форма = макет табличного документа + код заполнения. Найдите макет через ветку «Макеты» объекта или через код печати, отредактируйте ячейки и области, при необходимости дополните заполнение параметров в модуле менеджера. Обязательно сделайте копию базы, обновите конфигурацию БД и проверьте форму на разных данных. Для типовых конфигураций предпочитайте внешние печатные формы и расширения — они переживают обновления.
Частые вопросы
Можно ли изменить печатную форму без конфигуратора?
Частично да. В типовых конфигурациях на базе БСП есть механизм внешних печатных форм: создаётся внешняя обработка с макетом и кодом, которая подключается через «Администрирование → Печатные формы, отчеты и обработки → Дополнительные отчеты и обработки». Также некоторые элементы (логотип, подписи, реквизиты) настраиваются в карточке организации и подставляются в формы автоматически.
Почему после обновления 1С мои изменения пропали?
Если конфигурация обновляется на типовой релиз, изменённые типовые объекты заменяются новыми версиями из поставки. При обновлении в режиме сравнения можно вручную оставить свои изменения, но автоматическое обновление их затирает. Решение — выносить правки во внешнюю печатную форму или расширение конфигурации.
Как добавить в счёт логотип компании?
Откройте макет печатной формы счёта, выделите ячейку в области шапки, через меню «Таблица → Рисунки → Вставить» добавьте картинку либо установите ячейке тип содержимого «Картинка» и параметр, который заполняется в коде изображением из хранилища. Во многих типовых конфигурациях логотип уже подхватывается из карточки организации, если задан в её реквизитах.
Что делать, если при печати ошибка «Параметр не найден»?
Имя параметра в коде не совпадает с именем в макете. Откройте макет, проверьте свойство «Параметр» (или «Имя») у проблемной ячейки и сравните с тем, что присваивается в модуле печати. Учтите регистр и возможные опечатки. Также ошибка возникает, если ячейка с параметром попала в другую область, чем та, что обрабатывается в коде.
Можно ли вернуть типовую печатную форму после неудачной правки?
Да, если есть резервная копия — восстановите объект из неё через сравнение и объединение конфигураций. Если копии нет, но конфигурация типовая, можно загрузить макет из конфигурации поставщика: «Конфигурация → Поддержка → Настройка поддержки → Загрузить конфигурацию из файла» либо сравнение с файлом поставки. Поэтому перед правкой макета полезно сохранить его копию под другим именем.
Чем расширение конфигурации лучше прямой правки?
Расширение хранит изменения отдельно от основной конфигурации: типовой код не трогается, обновления накатываются штатно, а при проблемах расширение просто отключается. Через расширение можно переопределять процедуры печати и добавлять свои макеты. Ограничение — не все объекты и методы доступны для переопределения, и отладка в расширениях чуть сложнее.