Как отредактировать внешнюю печатную форму в 1С:Управление торговлей 10.3 и заставить изменения работать?

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

Работа с внешними печатными формами (ВПФ) в конфигурациях на базе обычных форм, таких как "Управление торговлей", редакция 10.3, имеет свои технические особенности. Часто пользователи и начинающие разработчики сталкиваются с ситуацией, когда изменения, внесенные в макет через Конфигуратор, упорно не желают отображаться при печати документа. Рассмотрим подробно, почему это происходит и как правильно настроить систему, чтобы ваши правки вступили в силу.

Разберем механизм регистрации внешних печатных форм

Первое, что нам необходимо понять: в 1С версии 8.3 (и 8.2) с обычными формами внешняя печатная форма — это не просто файл на диске. Это объект, который загружается в информационную базу и хранится в специальном справочнике. Если вы просто отредактировали файл .epf на компьютере, 1С об этом "не знает", пока вы не обновите данные в базе.

Проанализируем путь регистрации ВПФ в интерфейсе программы:

  1. Перейдем в меню Сервис.
  2. Выберем пункт Дополнительные отчеты и обработки.
  3. Далее перейдем в раздел Внешние печатные формы.

Именно здесь хранится список всех подключенных форм. Найдем в списке наш "Счет на оплату" и откроем его карточку. В этот момент мы можем обнаружить главную причину проблемы: несоответствие файла в шапке и в табличной части.

Решим проблему "залипания" старой формы через правильное обновление

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

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

Важный нюанс: иногда требуется обновить файл именно в этой строке таблицы. Для этого нужно нажать на кнопку выбора в колонке с файлом внутри табличной части и повторно указать путь к вашему .epf. После этого обязательно нажмем кнопку "ОК" или "Записать", чтобы изменения зафиксировались в базе данных.

Проанализируем программный код макета в Конфигураторе

Если визуальное обновление файла не помогло, нам стоит заглянуть "под капот" обработки в Конфигураторе. Рассмотрим ситуацию, когда код обработки написан некорректно для использования в качестве внешней формы. Часто разработчики копируют код из типовой конфигурации, забывая адаптировать его.

Посмотрим на пример кода в модуле обработки. Найдем функцию Печать(). Одной из критических ошибок является использование метода ПолучитьОбщийМакет вместо ПолучитьМакет. Разберем разницу:


// ОШИБОЧНЫЙ ВАРИАНТ
// Программа берет макет из самой конфигурации 1С, игнорируя ваши правки в файле
Макет = ПолучитьОбщийМакет("СчетЗаказ");

// ПРАВИЛЬНЫЙ ВАРИАНТ ДЛЯ ВПФ
// Программа обращается к макету, который находится внутри вашей внешней обработки
Макет = ПолучитьМакет("СчетЗаказ");

Если в коде указано ПолучитьОбщийМакет, то сколько бы вы ни правили макет внутри своей обработки, 1С всегда будет выводить стандартную системную форму. Проверьте все вхождения этого метода и замените их. Также убедитесь, что имя макета в кавычках (например, "СчетЗаказ") строго соответствует имени объекта Макет в дереве метаданных вашей внешней обработки.

Почему внешняя форма не появляется в списке печати?

Рассмотрим ситуацию, когда форма зарегистрирована, но при нажатии кнопки "Печать" в документе она не отображается. Выясним технические требования к структуре ВПФ:

  1. Наличие экспортной функции: В модуле внешней обработки обязательно должна быть функция Печать() с ключевым словом Экспорт. Она должна возвращать объект типа ТабличныйДокумент.
  2. Корректная регистрация: В справочнике "Внешние печатные формы" в таблице принадлежности должен быть выбран правильный тип объекта (Документ "Счет на оплату покупателю").
  3. Заменяемые формы: Если мы хотим, чтобы наша форма появилась в общем списке, в колонке "Заменяемая печатная форма" можно либо оставить пустое значение (тогда она появится в подменю "Дополнительные печатные формы"), либо выбрать конкретную стандартную форму, которую мы планируем вытеснить.

Очистка кэша и временных файлов

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

Чтобы исключить этот фактор, попробуем выполнить следующие действия:

  1. Закроем 1С полностью.
  2. Очистим папку временных файлов Windows (путь можно найти, введя %TEMP% в строке проводника).
  3. Перезапустим программу.

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

Как проверить работу формы без регистрации в базе

Для ускорения процесса отладки рассмотрим метод "Файл — Открыть". Вместо того чтобы каждый раз загружать форму в справочник, мы можем открыть файл .epf напрямую через меню 1С. Однако стоит помнить, что стандартная ВПФ обычно не имеет своей формы (окна), а содержит только модуль.

Чтобы этот метод сработал, профессиональные разработчики добавляют в обработку временную Форму объекта и кнопку, которая вызывает функцию Печать(), передавая в неё ссылку на какой-нибудь существующий документ. Это позволяет мгновенно видеть изменения макета в Конфигураторе без лишних манипуляций в пользовательском режиме.

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

← На главную