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

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

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

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

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

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

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

Как устроена печатная форма в 1С 7.7

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

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

Подготовка: копия базы и права доступа

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

Порядок подготовки:

Что сделать до изменения
  1. 1
    Завершите работу всех пользователей и сделайте архивную копию каталога базы
  2. 2
    Войдите в конфигуратор под учётной записью с правами на изменение
  3. 3
    Проверьте, не заблокирован ли объект: в дереве конфигурации у закрытых объектов стоит значок замка
  4. 4
    Сохраните исходный макет: откройте его и выгрузите как MXL-файл через «Файл → Сохранить как»
  5. 5
    Запомните имя процедуры печати — оно понадобится для правки модуля

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

Изменение макета печатной формы в конфигураторе

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

Типовые правки макета:

  • Изменить текст — щёлкните ячейку и отредактируйте содержимое в строке формул. Текст в квадратных скобках — это выражение, которое подставляет данные, например [Организация.Наименование].
  • Добавить колонку — вставьте столбец в секции «Шапка» и «Строка», задайте ширину, добавьте заголовок и выражение для данных.
  • Изменить шрифт и рамки — выделите ячейки и настройте оформление через панель инструментов или свойства ячейки.
  • Поправить шапку — замените название организации, добавьте строки с адресом и ИНН, если они не выводятся автоматически.

Именованные секции видны слева от таблицы как серые области с именами. Не переименовывайте и не удаляйте секции, если не правите модуль: код обращается к ним по имени, и после переименования печать упадёт с ошибкой «Секция не найдена».

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

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

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

Процедура Печать()

Таб = СоздатьОбъект("Таблица");

Таб.ИсходнаяТаблица("Печать");

Таб.ВывестиСекцию("Шапка");

ВыбратьСтроки();

Пока ПолучитьСтроку() = 1 Цикл

Таб.ВывестиСекцию("Строка");

КонецЦикла;

Таб.ВывестиСекцию("Подвал");

Таб.Показать("Печать накладной");

КонецПроцедуры

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

Внешняя печатная форма как безопасная альтернатива

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

Чтобы создать внешнюю форму, в конфигураторе выберите «Файл → Новый → Внешний отчёт (обработка)». В модуль поместите процедуру Сформировать(), которая получает контекст документа через параметр или через объект «Документ», и макет таблицы. Для удобства пользователей внешние формы регистрируют в справочнике дополнительных возможностей (в типовых конфигурациях — меню «Сервис → Дополнительные возможности»), тогда кнопка появляется в журнале или форме документа.

Встроенная правка или внешняя форма

Правка в конфигураторе

Подходит, когда конфигурация не обновляется автоматически и правка нужна всем пользователям постоянно. Минус — сложности при обновлении и риск сломать типовую печать.

Внешняя печатная форма (.ert)

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

Правка готовой таблицы перед печатью

Готовую MXL-таблицу можно отредактировать вручную прямо на экране и распечатать. Подходит для разового случая, изменения не сохраняются в шаблоне.

Проверка результата

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

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

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

Открытие формы
Норма

Таблица формируется без сообщений об ошибках

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

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

Данные в ячейках
Норма

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

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

Пустые квадратные скобки или нули — выражение в ячейке не соответствует контексту

Печать на бумаге
Норма

Все колонки помещаются на лист, подписи на месте

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

Колонки обрезаны — настройте ширину столбцов и параметры страницы таблицы

Документ с одной строкой и с множеством строк
Норма

Секция «Строка» выводится нужное число раз, подвал не разрывается

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

Строки дублируются или пропадают — ошибка в цикле модуля

Обязательно проверьте печать на документе с большим числом строк: именно там всплывают проблемы с переносом на вторую страницу, повторением шапки и разрывом секций.

Типичные ошибки и их устранение

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

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

Часто задаваемые вопросы

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

Да, двумя способами. Готовую таблицу можно отредактировать вручную прямо на экране перед печатью — но это разовая правка. Для постоянного решения без входа в конфигуратор используют внешнюю печатную форму (.ert), которую подключают через «Сервис → Дополнительные возможности» или открывают вручную.

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

Чаще всего конфигурацию сохранили без обновления конфигурации базы данных либо пользователи не перезашли в программу. Сохраните конфигурацию с обновлением и попросите всех завершить сеанс и войти заново.

Что делать, если при печати появляется ошибка «Секция не найдена»?

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

Сотрутся ли мои изменения при обновлении конфигурации?

Если объект снят с поддержки, при обновлении мастер предложит сравнить изменения, но типовая версия может заменить вашу правку. Надёжнее хранить копию изменённого макета (MXL) и текста модуля отдельно либо выносить доработки во внешнюю форму.

Как добавить в накладную колонку с артикулом товара?

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

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

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

Итог

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

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