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

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

Как добавить текст в печатную форму счета в 1С

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

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

Чаще всего задача возникает в типовых конфигурациях «1С:Бухгалтерия 8» и «1С:Управление торговлей»: бухгалтеру нужно вывести на счет условия оплаты, реквизиты для перечисления, фразу о сроке действия счета или благодарность клиенту. Ниже разобраны рабочие варианты для каждого сценария — от простого, не требующего программирования, до полноценной доработки макета.

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

Определите, какой именно текст нужен и где он должен храниться

Прежде чем что-то менять, ответьте на три вопроса. Первый: текст одинаковый для всех счетов (например, «Оплатить в течение 5 банковских дней») или разный для каждого документа (комментарий к конкретной сделке)? Второй: кто должен его редактировать — пользователь в режиме «1С:Предприятие» или разработчик? Третий: должна ли сохраниться возможность обновлять конфигурацию без доработок?

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

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

Как выбрать способ

Текст разный в каждом счете и его вводит менеджерИспользуйте поле «Дополнительная информация» или дополнительные сведения документа
Текст одинаковый для всех счетов и меняется редкоДобавьте область с текстом в макет печатной формы
Конфигурация на поддержке и обновляется регулярноИспользуйте внешнюю печатную форму вместо изменения типового макета
Нет доступа к конфигуратору и прав разработчикаОграничьтесь дополнительными сведениями и настройками в режиме «1С:Предприятие»

Способ 1: поле «Дополнительная информация» в документе счета

В типовой «1С:Бухгалтерия 8» (редакция 3.0) в документе «Счет на оплату покупателю» есть вкладка «Дополнительно» с полем «Дополнительная информация». Всё, что введено в это поле, выводится в нижней части печатной формы счета автоматически — никакой доработки не требуется. Это самый быстрый способ добавить текст, если он должен отличаться от счета к счету.

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

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

Порядок действий через поле документа
  1. 1
    Откройте документ «Счет на оплату покупателю»
  2. 2
    Перейдите на вкладку «Дополнительно»
  3. 3
    Введите текст в поле «Дополнительная информация»
  4. 4
    Запишите документ
  5. 5
    Нажмите «Печать» → «Счет на оплату» и проверьте, что текст выведен внизу формы

Способ 2: дополнительные реквизиты и сведения

Если типового поля недостаточно — например, нужно несколько разных текстовых блоков или текст должен выводиться в конкретном месте формы — используйте механизм «Дополнительные реквизиты и сведения». Он доступен в режиме «1С:Предприятие» без конфигуратора, но требует прав администратора для первоначальной настройки.

Откройте «Администрирование» → «Общие настройки» и включите опцию «Дополнительные реквизиты и сведения». Затем перейдите в раздел «Дополнительные реквизиты» (или «Дополнительные сведения»), выберите объект «Счет на оплату покупателю» и создайте новый реквизит с типом «Строка» — например, «Условия оплаты». После этого поле появится в карточке документа на вкладке «Дополнительно».

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

Способ 3: редактирование макета печатной формы в конфигураторе

Если текст должен быть на всех счетах без исключения, правильное место для него — макет печатной формы. В «1С:Бухгалтерия 8» макет счета хранится в менеджере документа «СчетНаОплатуПокупателю» и обычно называется «МакетСчетЗаказ» или похожим образом; точное имя можно увидеть в модуле менеджера, в процедуре печати.

Общий порядок такой. Откройте конфигуратор, найдите документ «СчетНаОплатуПокупателю», откройте его макеты (или макеты менеджера печати). Добавьте в табличный макет новую область — например, строку под итогами — и введите нужный текст в ячейку. Если текст статичный, оставьте тип ячейки «Текст»; если текст должен подставляться из данных документа, задайте тип «Параметр» и имя параметра, а затем в модуле печати заполните этот параметр при формировании табличного документа.

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

bsl
ОбластьДопТекст = Макет.ПолучитьОбласть("ДополнительныйТекст");
ОбластьДопТекст.Параметры.ТекстУсловий = "Оплатить в течение 5 банковских дней";
ТабличныйДокумент.Вывести(ОбластьДопТекст);

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

Способ 4: внешняя печатная форма

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

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

После подключения внешней формы в списке печати документа появится новый пункт — например, «Счет на оплату (с условиями)». Типовая кнопка при этом никуда не исчезает, и пользователи могут выбирать нужный вариант. Это удобно и при тестировании: новую форму можно проверять параллельно со старой, ничего не ломая.

Сравнение способов

Поле «Дополнительная информация»

Подходит для разового текста в конкретном счете; не требует настройки, но вводится вручную в каждый документ

Дополнительные сведения

Гибкое хранение текста без конфигуратора; для вывода на печать всё равно нужна доработка формы

Изменение макета в конфигураторе

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

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

Не мешает обновлениям и легко откатывается; требует навыков разработки на встроенном языке

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

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

Если текст не выводится, проверьте по порядку: записан ли документ после ввода текста; тот ли это макет, который реально используется при печати (в некоторых конфигурациях макетов счета несколько — для разных вариантов поставки); заполнен ли параметр в модуле печати; не выводится ли область внутри условия, которое не выполняется.

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

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

Наличие текста на форме
Норма

Текст виден в предпросмотре печати в нужном месте

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

Текст отсутствует — проверить макет, параметр или заполнение поля

Поведение при пустом поле
Норма

Пустая область не выводится или выводится без лишних пустых строк

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

На форме пустой блок или слово «Неопределено»

Длинный текст
Норма

Текст переносится по строкам и не обрезается

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

Текст обрезан по правому краю или наезжает на соседние области

Другие документы
Норма

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

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

После доработки сломались другие формы — откатить изменения

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

Ограничения и когда привлекать разработчика

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

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

Итог

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

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

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

Можно ли добавить текст на счет без конфигуратора?

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

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

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

Пропадет ли доработанный макет при обновлении конфигурации?

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

Как вывести разный текст для разных организаций или договоров?

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

Можно ли вставить на счет многострочный текст с переносами строк?

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

Где найти, какой именно макет используется при печати счета?

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