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

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

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

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

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

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

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

Где хранится значение параметра: источники данных

Параметр печатной формы — это именованная область в макете, которая при формировании документа заполняется конкретным значением. Источником значения может быть реквизит документа (номер, дата, контрагент), реквизит справочника (адрес организации, банковский счёт), регистр сведений (ответственные лица, подписанты) или вычисляемое в коде выражение (сумма прописью, итоговая сумма с НДС).

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

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

Параметр пустойНет значения на печати

Проверьте заполнение соответствующего реквизита в документе или справочнике

Устаревшее значениеВыводится старый счёт, адрес, ФИО

Проверьте карточку организации, регистры ответственных лиц, банковские счета

Параметра нет в формеНужного поля нет в макете

Потребуется доработка макета и процедуры печати

Ошибка в вычисляемом полеНеверная сумма прописью или итог

Проверьте данные документа; если они верны — нужна правка кода формирования

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

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

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

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

Порядок действий при правке через данные
  1. 1
    Сформируйте печатную форму и зафиксируйте неверное значение параметра
  2. 2
    Откройте карточку организации, контрагента или договора и найдите соответствующий реквизит
  3. 3
    Проверьте регистры сведений: ответственные лица, подписанты, учётная политика
  4. 4
    Исправьте значение, при необходимости указав дату начала действия
  5. 5
    Пересформируйте печатную форму и убедитесь, что параметр выводится корректно

Как найти макет и параметр в конфигураторе

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

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

В коде заполнения параметры устанавливаются через обращение к области макета: область получается из макета, затем её параметрам присваиваются значения. Найдите в процедуре строку, где нужному параметру присваивается значение, — это и есть точка изменения. Имя параметра в коде должно совпадать с именем параметра в макете, иначе значение не подставится.

Изменение макета и кода заполнения параметра

Работа с макетом состоит из трёх частей: сам макет (табличный документ с областями и параметрами), код присвоения значений и проверка результата. В макете параметр выглядит как текст в квадратных скобках, например [НаименованиеОрганизации], либо задаётся в свойствах ячейки с типом заполнения «Параметр».

Чтобы добавить новый параметр, откройте макет, в нужной ячейке укажите имя параметра в квадратных скобках или через палитру свойств. Затем в процедуре формирования добавьте строку присвоения: получите область макета и задайте параметру значение из данных документа или результата запроса. Если значение берётся запросом, убедитесь, что поле присутствует в выборке.

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

bsl
ОбластьМакета = Макет.ПолучитьОбласть("Шапка");
ОбластьМакета.Параметры.НаименованиеОрганизации = СведенияОбОрганизации.СокращенноеНаименование;
ОбластьМакета.Параметры.НомерДокумента = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Шапка.Номер);
ТабличныйДокумент.Вывести(ОбластьМакета);

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

Изменение через расширение без снятия конфигурации с поддержки

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

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

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

Сравнение способов изменения параметра

Правка данных в пользовательском режиме

Подходит, когда параметр берётся из реквизитов и регистров. Не требует доработок, безопасно, но не решает задачи изменения состава полей

Внешняя печатная форма

Подходит для замены логики без изменения конфигурации. Ограничение: нужно поддерживать обработку при смене типовых процедур

Расширение конфигурации

Подходит для точечного переопределения макетов и процедур с сохранением поддержки. Требует навыков разработки

Прямая правка конфигурации

Максимальная гибкость, но усложняет обновление и требует снятия объектов с поддержки

Проверка результата и типичные ошибки

После любого способа изменения сформируйте печатную форму минимум на двух документах: новом и старом, с другим набором данных. Убедитесь, что параметр выводится в обоих случаях, а пустые значения не приводят к разрыву вёрстки или тексту вида «<Параметр>» в готовом документе — такой текст означает, что параметр объявлен в макете, но ему не присвоено значение в коде.

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

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

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

Значение параметра в форме
Норма

Выводится актуальное значение из нужного источника

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

Пусто, старое значение или текст-заглушка в угловых скобках

Вёрстка формы
Норма

Все области на месте, таблицы не съехали

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

Разрывы строк, наложение текста, пропавшие блоки

Разные документы
Норма

Форма корректна на новых и старых документах

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

На части документов ошибка или пустые поля

Обновление конфигурации
Норма

Доработка в расширении или внешней форме, обновление проходит штатно

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

Изменены типовые объекты без фиксации изменений

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

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

Да, если задача сводится к изменению данных: реквизитов организации, подписантов, банковских счетов. Также в пользовательском режиме подключаются внешние печатные формы через механизм дополнительных отчетов и обработок. А вот редактирование самого макета и кода требует конфигуратора.

Почему после правки макета параметр выводится как текст в квадратных скобках?

Это значит, что параметр объявлен в макете, но ему не присвоено значение в коде формирования. Проверьте, что в процедуре печати есть строка присвоения именно с этим именем параметра и что она выполняется до вывода области.

Изменится ли параметр в уже распечатанных документах?

Печатные формы в 1С формируются заново при каждом вызове и не хранятся как файлы (если не был приложен скан). Поэтому изменение данных или макета повлияет на все документы, включая прошлые. Для периодических значений, например подписантов, форма подставит данные, действовавшие на дату документа.

Что безопаснее: расширение или внешняя печатная форма?

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

Форма пропала из списка команд печати после обновления. Что делать?

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

Итог

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

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