Документы и Печать · 12 мин
Как добавить текст в печатную форму счета в 1С
Практическая инструкция: как добавить текст в печатную форму счета в 1С через изменение макета, внешнюю печатную форму и механизм дополнительных реквизитов.
Добавить текст в печатную форму счета в 1С можно несколькими способами: отредактировать макет печатной формы в конфигураторе, подключить внешнюю печатную форму, использовать механизм дополнительных реквизитов и сведений или вставить текст в поле «Дополнительная информация» самого документа. Выбор зависит от того, нужен ли текст один раз, в каждом счете или только при определенных условиях, а также от того, есть ли у вас доступ к конфигуратору и право изменять конфигурацию.
Чаще всего задача возникает в типовых конфигурациях «1С:Бухгалтерия 8» и «1С:Управление торговлей»: бухгалтеру нужно вывести на счет условия оплаты, реквизиты для перечисления, фразу о сроке действия счета или благодарность клиенту. Ниже разобраны рабочие варианты для каждого сценария — от простого, не требующего программирования, до полноценной доработки макета.
Важно понимать разницу между «текстом в документе» и «текстом в печатной форме». Первый хранится в базе данных и выводится автоматически, второй зашит в макет и одинаков для всех печатаемых счетов. Смешение этих подходов — самая частая причина того, что текст «не появляется» при печати.
Определите, какой именно текст нужен и где он должен храниться
Прежде чем что-то менять, ответьте на три вопроса. Первый: текст одинаковый для всех счетов (например, «Оплатить в течение 5 банковских дней») или разный для каждого документа (комментарий к конкретной сделке)? Второй: кто должен его редактировать — пользователь в режиме «1С:Предприятие» или разработчик? Третий: должна ли сохраниться возможность обновлять конфигурацию без доработок?
Если текст разный для каждого счета, его нужно хранить в базе — в реквизите документа или в дополнительных сведениях. Если текст одинаковый, разумнее вшить его в макет: тогда он не будет зависеть от того, забыл ли менеджер заполнить поле. Смешанный вариант тоже возможен: в макете выводится область, а её содержимое подставляется из реквизита документа.
Как выбрать способ
Способ 1: поле «Дополнительная информация» в документе счета
В типовой «1С:Бухгалтерия 8» (редакция 3.0) в документе «Счет на оплату покупателю» есть вкладка «Дополнительно» с полем «Дополнительная информация». Всё, что введено в это поле, выводится в нижней части печатной формы счета автоматически — никакой доработки не требуется. Это самый быстрый способ добавить текст, если он должен отличаться от счета к счету.
Порядок действий: откройте документ «Счет на оплату покупателю», перейдите на вкладку «Дополнительно», введите текст в поле «Дополнительная информация», запишите документ и нажмите «Печать» → «Счет на оплату». Текст появится внизу формы, под табличной частью и итогами.
Ограничение способа: текст нужно вводить в каждый документ вручную. Если фраза стандартная, её можно копировать, но при большом количестве счетов это неудобно и чревато ошибками. Кроме того, форматирование текста ограничено — поле выводится как обычная строка без настраиваемого оформления.
- 1Откройте документ «Счет на оплату покупателю»
- 2Перейдите на вкладку «Дополнительно»
- 3Введите текст в поле «Дополнительная информация»
- 4Запишите документ
- 5Нажмите «Печать» → «Счет на оплату» и проверьте, что текст выведен внизу формы
Способ 2: дополнительные реквизиты и сведения
Если типового поля недостаточно — например, нужно несколько разных текстовых блоков или текст должен выводиться в конкретном месте формы — используйте механизм «Дополнительные реквизиты и сведения». Он доступен в режиме «1С:Предприятие» без конфигуратора, но требует прав администратора для первоначальной настройки.
Откройте «Администрирование» → «Общие настройки» и включите опцию «Дополнительные реквизиты и сведения». Затем перейдите в раздел «Дополнительные реквизиты» (или «Дополнительные сведения»), выберите объект «Счет на оплату покупателю» и создайте новый реквизит с типом «Строка» — например, «Условия оплаты». После этого поле появится в карточке документа на вкладке «Дополнительно».
Важный нюанс: само по себе дополнительное сведение в печатную форму не попадет — типовой макет его не выводит. Чтобы текст появился при печати, понадобится либо доработка макета, либо внешняя печатная форма, которая обращается к этому сведению программно. Поэтому способ стоит рассматривать как «хранилище текста», а вывод настраивать отдельно.
Способ 3: редактирование макета печатной формы в конфигураторе
Если текст должен быть на всех счетах без исключения, правильное место для него — макет печатной формы. В «1С:Бухгалтерия 8» макет счета хранится в менеджере документа «СчетНаОплатуПокупателю» и обычно называется «МакетСчетЗаказ» или похожим образом; точное имя можно увидеть в модуле менеджера, в процедуре печати.
Общий порядок такой. Откройте конфигуратор, найдите документ «СчетНаОплатуПокупателю», откройте его макеты (или макеты менеджера печати). Добавьте в табличный макет новую область — например, строку под итогами — и введите нужный текст в ячейку. Если текст статичный, оставьте тип ячейки «Текст»; если текст должен подставляться из данных документа, задайте тип «Параметр» и имя параметра, а затем в модуле печати заполните этот параметр при формировании табличного документа.
Пример кода в модуле печати для вывода параметра:
ОбластьДопТекст = Макет.ПолучитьОбласть("ДополнительныйТекст");
ОбластьДопТекст.Параметры.ТекстУсловий = "Оплатить в течение 5 банковских дней";
ТабличныйДокумент.Вывести(ОбластьДопТекст);Главный риск этого способа — конфигурация снимается с полной поддержки, и при каждом обновлении доработанный макет придется сравнивать с типовым. Если обновления происходят регулярно, лучше сразу делать внешнюю печатную форму.
Способ 4: внешняя печатная форма
Внешняя печатная форма — это файл с расширением .epf, который подключается к базе через «Администрирование» → «Печатные формы, отчеты и обработки» → «Дополнительные отчеты и обработки». Она заменяет или дополняет типовую кнопку печати, не затрагивая саму конфигурацию, поэтому обновления проходят штатно.
Чтобы сделать такую форму, нужен конфигуратор и базовые навыки разработки: создается внешняя обработка, в ней — макет табличного документа (копия типового с добавленной областью текста) и экспортные функции «СведенияОВнешнейОбработке» и «Печать» по стандартам Библиотеки стандартных подсистем. Проще всего взять за основу типовую процедуру печати счета из конфигурации, скопировать её в обработку и добавить вывод своей области.
После подключения внешней формы в списке печати документа появится новый пункт — например, «Счет на оплату (с условиями)». Типовая кнопка при этом никуда не исчезает, и пользователи могут выбирать нужный вариант. Это удобно и при тестировании: новую форму можно проверять параллельно со старой, ничего не ломая.
Сравнение способов
Подходит для разового текста в конкретном счете; не требует настройки, но вводится вручную в каждый документ
Гибкое хранение текста без конфигуратора; для вывода на печать всё равно нужна доработка формы
Полный контроль над формой; усложняет обновления и требует прав разработчика
Не мешает обновлениям и легко откатывается; требует навыков разработки на встроенном языке
Проверка результата и типичные ошибки
После любого способа проверьте печатную форму на нескольких документах: на счете с длинным текстом, на счете без текста (если поле не заполнено) и на счете с большой табличной частью. Обратите внимание, не «уехал» ли текст на вторую страницу, не обрезался ли он по ширине и не перекрывает ли подписи и печать.
Если текст не выводится, проверьте по порядку: записан ли документ после ввода текста; тот ли это макет, который реально используется при печати (в некоторых конфигурациях макетов счета несколько — для разных вариантов поставки); заполнен ли параметр в модуле печати; не выводится ли область внутри условия, которое не выполняется.
Как проверить результат
Текст виден в предпросмотре печати в нужном месте
Текст отсутствует — проверить макет, параметр или заполнение поля
Пустая область не выводится или выводится без лишних пустых строк
На форме пустой блок или слово «Неопределено»
Текст переносится по строкам и не обрезается
Текст обрезан по правому краю или наезжает на соседние области
Типовая печать остальных документов работает как раньше
После доработки сломались другие формы — откатить изменения
Ограничения и когда привлекать разработчика
Без конфигуратора реально решить только задачу «разный текст в каждом счете» через типовое поле. Всё остальное — внешние печатные формы, вывод дополнительных сведений, условная логика (например, разный текст для разных организаций или договоров) — требует разработки на встроенном языке 1С. Если в штате нет специалиста, эту работу разумно поручить внедренцу: объем небольшой, обычно это несколько часов работы.
Также учитывайте, что в некоторых отраслевых и сильно доработанных конфигурациях печать счета может быть переопределена, и типовые названия макетов и процедур не совпадут с описанными здесь. В этом случае точную точку входа ищите по кнопке «Печать» документа в конфигураторе.
Что важно запомнить
Разовый текст добавляйте через поле «Дополнительная информация» документа — это работает без доработок. Постоянный текст выводите через макет: в идеале — через внешнюю печатную форму, чтобы не мешать обновлениям. Перед изменениями делайте копию базы и проверяйте форму на нескольких документах.
Частые вопросы
Можно ли добавить текст на счет без конфигуратора?
Да, если текст разный для каждого счета — используйте поле «Дополнительная информация» на вкладке «Дополнительно» документа, оно выводится в типовой печатной форме. Для постоянного текста на всех счетах без конфигуратора обойтись не получится: потребуется внешняя печатная форма или изменение макета.
Почему текст, введенный в документ, не появляется при печати?
Чаще всего документ не был записан после ввода текста — печатная форма строится по сохраненным данным. Реже причина в том, что используется другой макет или внешняя печатная форма, которая не выводит это поле.
Пропадет ли доработанный макет при обновлении конфигурации?
Если изменен типовой макет, при обновлении 1С предложит сравнить и объединить изменения — доработку придется переносить вручную. Внешняя печатная форма (.epf) обновлениям не мешает и сохраняется полностью.
Как вывести разный текст для разных организаций или договоров?
Это решается программно: в модуле печати или во внешней форме добавляется условие, которое проверяет организацию или договор документа и подставляет соответствующий текст в параметр области макета. Без доработки кода такое условие настроить нельзя.
Можно ли вставить на счет многострочный текст с переносами строк?
Да. В поле «Дополнительная информация» переносы строк сохраняются и выводятся на печать. В макете для многострочного текста у ячейки должна быть достаточная высота строки и настройка переноса, иначе текст обрежется.
Где найти, какой именно макет используется при печати счета?
Откройте в конфигураторе модуль менеджера документа «СчетНаОплатуПокупателю» и найдите процедуру печати — в ней указано, из какого макета получаются области. Если печать переопределена внешней формой, смотрите список подключенных обработок в разделе «Дополнительные отчеты и обработки».