Как найти и исправить макет, если документ в 1С печатается по измененной внешней форме?

Программист 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

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

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

Выясняем причину: где может находиться «невидимый» макет?

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

  1. Пользовательские макеты печати. В современных конфигурациях пользователи могут редактировать макеты прямо в режиме 1С:Предприятие. В этом случае измененный макет сохраняется в специальном регистре сведений ПользовательскиеМакетыПечати и переопределяет типовой макет из конфигурации.
  2. Внешние печатные формы (ВПФ). Печатная форма может быть зарегистрирована в системе как дополнительная обработка. В этом случае сама печатная форма физически представляет собой файл *.epf, загруженный в базу данных, и перехватывает стандартную команду печати.
  3. Расширения конфигурации. Изменения могут быть зашиты в активном расширении, которое переопределяет процедуру формирования печатной формы или подменяет макет динамически.

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

Шаг 1. Проверяем наличие пользовательских макетов печати

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

Для этого выполним следующие действия:

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

Если в списке макетов чисто или нужного документа там нет, переходим к следующему шагу — поиску внешних печатных форм.

Шаг 2. Поиск макета во внешних печатных формах (ВПФ)

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

Выясним, где хранятся эти обработки и как их найти:

  1. В режиме 1С:Предприятие перейдем в раздел Администрирование — Печатные формы, отчеты и обработки.
  2. Откроем справочник Дополнительные отчеты и обработки (в дереве метаданных это справочник ДополнительныеОтчетыИОбработки).
  3. В списке найдем элемент, который отвечает за печать нашего документа. Обычно имя обработки совпадает с названием печатной формы в меню «Печать».

Физически этот макет находится внутри двоичного файла обработки, который хранится в базе данных в реквизите с типом ХранилищеЗначения. Именно поэтому мы не можем найти его поиском по конфигурации или расширению.

Шаг 3. Как отредактировать макет внешней печатной формы

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

1. Выгрузка обработки на диск:

В справочнике Дополнительные отчеты и обработки откроем карточку найденной печатной формы. Нажмем кнопку Выгрузить в файл... и сохраним файл с расширением *.epf на жесткий диск.

2. Редактирование макета в Конфигураторе:

Запустим Конфигуратор. Перейдем в меню Файл — Открыть и выберем сохраненный ранее файл *.epf. Перед нами откроется окно внешней обработки.

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

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


Процедура Печать(МассивОбъектовНазначения, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
    
    // Проверяем, нужна ли наша печатная форма
    ТабличныйДокумент = СформироватьПечатнуюФорму(МассивОбъектовНазначения, ОбъектыПечати);
    
    // Выводим сформированный документ в общую коллекцию БСП
    УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
        КоллекцияПечатныхФорм,
        "ИмяМакетаВнешнейФормы",
        "Наименование печатной формы",
        ТабличныйДокумент
    );
    
КонецПроцедуры

После завершения редактирования макета сохраним изменения во внешней обработке (сочетание клавиш Ctrl + S) и закроем Конфигуратор.

3. Обновление внешней обработки в базе данных:

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

Возможно ли редактировать макет внешней формы без Конфигуратора?

Да, это возможно, но с некоторыми важными ограничениями. Если разработчик внешней печатной формы спроектировал ее по стандартам БСП (используя функции общего модуля УправлениеПечатью для вывода табличных документов), то макет этой обработки появится в общем списке Макеты печатных форм (раздел Администрирование).

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

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

Резюме

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

← На главную