Почему не отображаются изменения в макете документа Реализация товаров и услуг в УТ 10.3?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

При работе с конфигурацией «1С:Управление торговлей 10.3» программисты часто сталкиваются с ситуацией: в конфигураторе открывается макет документа (например, «Накладная» для «Реализации товаров и услуг»), в него вносятся изменения или добавляется новый текст, но при запуске печати в режиме «Предприятие» макет остается прежним. Это может вызвать замешательство, особенно если визуально в конфигураторе всё выглядит правильно.

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

Разберем механизм работы именованных областей

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

Если вы просто написали текст внизу макета, но не включили эти строки в границы существующей именованной области, 1С просто «не знает», что эти строки нужно печатать. Проанализируем, как это исправить:

  1. Откроем макет в конфигураторе.
  2. Включим отображение именованных областей через меню «Таблица — Имена — Отображать именованные строки/колонки» (или соответствующую кнопку на панели).
  3. Посмотрим на левую панель макета. Мы увидим вертикальные скобки с названиями, такими как Заголовок, ШапкаТаблицы, Подвал.
  4. Если ваш новый текст находится ниже всех скобок — он никогда не попадет в печать.
  5. Решение: выделим строки с вашим текстом и строки существующей области (например, Подвал или Подписи), затем через меню «Таблица — Имена — Назначить имя» переназначим старое имя на новый, расширенный диапазон строк.

Проанализируем программный вывод областей в модуле

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

Найдем процедуру Печать или функцию, которая формирует табличный документ (часто это ПечатьРеализации). Посмотрим на пример кода, который управляет выводом:


// Получаем макет документа
Макет = ПолучитьМакет("Накладная");

// Получаем область подвала
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
// Заполняем параметры, если они есть
ОбластьПодвал.Параметры.ФИОМенеджера = Менеджер;
// Выводим в итоговый табличный документ
ТабДок.Вывести(ОбластьПодвал);

// ВАЖНО: Если мы создали свою область, ее нужно вывести аналогично:
ОбластьМойТекст = Макет.ПолучитьОбласть("ДополнительнаяИнформация");
ТабДок.Вывести(ОбластьМойТекст);

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

Выясним, не используется ли внешняя печатная форма

В «Управлении торговлей 10.3» крайне популярно использование внешних печатных форм (файлы с расширением .epf). Если для документа зарегистрирована внешняя форма, то как бы вы ни правили макет внутри самой конфигурации, система будет использовать макет из внешнего файла.

Проверим это по шагам:

  1. Перейдем в меню «Сервис — Дополнительные отчеты и обработки — Дополнительные внешние печатные формы».
  2. Найдем в списке документ «Реализация товаров и услуг».
  3. Если там есть запись, соответствующая вашей печатной форме (например, «Накладная»), значит, система берет макет оттуда.
  4. Вам нужно либо нажать кнопку «Изменить» и выгрузить файл .epf на диск для редактирования, либо внести изменения прямо в этот файл и загрузить его обратно.

Проверим приоритет макетов и пользовательские настройки

В некоторых случаях (особенно если конфигурация дорабатывалась) может работать механизм управления макетами печатных форм. Хотя это более характерно для управляемых форм (УТ 11, ERP), в поздних релизах платформы 8.2/8.3 для обычных форм тоже могли быть внедрены подобные механизмы БСП (Библиотеки стандартных подсистем).

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

Технические нюансы: Кэш и Параметры страницы

Если вы абсолютно уверены, что области настроены верно, код их выводит, а внешних форм нет, но текста всё равно нет — рассмотрим более экзотические причины:

Подводя итог, в большинстве случаев проблема решается либо расширением границ именованной области в макете, либо добавлением команды ТабДок.Вывести() в соответствующую процедуру печати. Всегда начинайте проверку с того, попадает ли ваш текст в «синие скобки» имен областей в левой части редактора макета.

← На главную