Как восстановить встроенную печатную форму счета-фактуры в 1С:УПП 1.3, если её заменили внешней обработкой

Пользователь 1С v8.3 (Обычные формы) Бухгалтерский учет
← На главную

При работе в программных продуктах 1С на обычных формах (таких как 1С:Управление производственным предприятием, редакция 1.3) пользователи часто сталкиваются с необходимостью кастомизации печатных форм. Для этого разработчики создают внешние печатные формы (ВПФ), которые загружаются в базу данных через пользовательский режим. Однако иногда возникает ситуация, когда после загрузки новой внешней обработки из списка доступных вариантов печати полностью пропадает типовой встроенный макет (например, встроенный счет-фактура). Вместо него отображается только внешняя печатная форма, а стандартный вариант становится недоступен.

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

Выясним причину: как работает механизм автоподмены в обычных формах

Для начала проанализируем ситуацию и поймем, как внешняя печатная форма может «стереть» или скрыть встроенную форму из интерфейса документа. В конфигурациях на обычных формах (УПП 1.3, УТ 10.3, КА 1.1, БП 2.0) за хранение и подключение внешних печатных форм отвечает справочник «Дополнительные внешние отчеты и обработки».

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

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

Таким образом, если у вас пропала встроенная форма счета-фактуры, это означает, что при регистрации внешней печатной формы в справочнике была случайно или намеренно указана заменяемая встроенная форма. Никакого физического удаления программного кода в конфигурации при этом не происходит.

Рассмотрим подробнее три практических способа решения этой проблемы в пользовательском режиме 1С:Предприятие.

Способ 1. Очистка поля автоподмены (сохранение обеих печатных форм)

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

  1. Перейдем в главное меню программы 1С:УПП 1.3.
  2. Откроем раздел Сервис, затем выберем пункт Дополнительные внешние отчеты и обработки и перейдем в подраздел Внешние печатные формы.
  3. В открывшемся списке найдем ту самую внешнюю обработку, которая заменяет наш счет-фактуру, и откроем ее карточку двойным щелчком мыши.
  4. Обратим внимание на нижнюю часть формы — там расположена табличная часть «Принадлежность печатной формы». В ней будет указана строка с документом «Счет-фактура выданный» (или аналогичным).
  5. Найдем колонку «Заменяемая печатная форма». В ней будет выбрано значение встроенной формы (например, «Счет-фактура» или конкретное постановление).
  6. Очистим это поле. Для этого выделим ячейку и нажмем клавишу Del (Delete) на клавиатуре или нажмем на кнопку с крестиком внутри ячейки. Поле должно стать пустым.
  7. Нажмем кнопку «Записать и закрыть» (или «ОК») для сохранения настроек карточки.
  8. Перейдем в документ «Счет-фактура» и откроем меню печати. Теперь в списке будут доступны оба варианта: и стандартный встроенный счет-фактура, и загруженная внешняя печатная форма.

Способ 2. Полное удаление привязки внешней формы к документу

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

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

После этого внешняя форма полностью исчезнет из меню печати документа «Счет-фактура», а управление печатью целиком вернется к стандартным встроенным алгоритмам конфигурации.

Способ 3. Пометка на удаление всей внешней обработки

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

  1. Перейдем в список внешних печатных форм (Сервис — Дополнительные внешние отчеты и обработки — Внешние печатные формы).
  2. Найдем в списке нужную внешнюю обработку.
  3. Нажмем на ней правой кнопкой мыши и выберем команду «Установить пометку на удаление» (или просто нажмем клавишу Del в списке).

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

Проанализируем программную логику: что происходит «под капотом»

Давайте заглянем в программный код, чтобы лучше понять техническую сторону вопроса. Как разработчики 1С реализовали этот функционал? В модуле менеджера или модуле объекта документа «Счет-фактура» всегда присутствует функция, которая формирует список доступных печатных форм. Посмотрим на пример кода, который возвращает структуру встроенных макетов в зависимости от даты документа:


Функция ПолучитьСтруктуруПечатныхФорм() Экспорт
    
    СтруктураМакетов = Новый Структура;
    Если НЕ ЗначениеЗаполнено(Дата) Тогда
        СтруктураМакетов.Вставить("СчетФактура283", "Счет-фактура 283");
        СтруктураМакетов.Вставить("СчетФактура575", "Счет-фактура 575");
        СтруктураМакетов.Вставить("СчетФактура84" , "Счет-фактура 84");
        СтруктураМакетов.Вставить("УниверсальныйПередаточныйДокумент", "Универсальный передаточный документ (УПД)");
    Иначе
        Если Дата < '20040216' Тогда
            СтруктураМакетов.Вставить("СчетФактура575", "Счет-фактура");
        ИначеЕсли Дата < '20060530' Тогда
            СтруктураМакетов.Вставить("СчетФактура84",  "Счет-фактура");
        ИначеЕсли Дата < '20130101' Тогда
            СтруктураМакетов.Вставить("СчетФактура283", "Счет-фактура");
        Иначе
            СтруктураМакетов.Вставить("СчетФактура283", "Счет-фактура");
            СтруктураМакетов.Вставить("УниверсальныйПередаточныйДокумент", "Универсальный передаточный документ (УПД)");
            СтруктураМакетов.Вставить("УниверсальныйКорректировочныйДокумент", "Универсальный корректировочный документ (УКД)");
        КонецЕсли;
    КонецЕсли;
    
    Возврат СтруктураМакетов;
    
КонецФункции

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

Разберем отличия: как это устроено в управляемых формах (БСП)

Для полноты картины и расширения кругозора сравним поведение обычных форм с современными управляемыми формами на платформе 1С v8.3 (в таких конфигурациях, как 1С:Бухгалтерия 3.0, 1С:ERP, 1С:КА 2 и 1С:ЗУП 3.1). В этих конфигурациях используется Библиотека стандартных подсистем (БСП), и механизмы работы с печатными формами здесь существенно отличаются:

Резюме

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

← На главную