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

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

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

Причины возникновения ошибки при загрузке

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

Основные причины ошибки:

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

Обязательная структура модуля объекта

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

Реализация функции СведенияОВнешнейОбработке

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


Функция СведенияОВнешнейОбработке() Экспорт

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

КонецФункции

Реализация процедуры Печать

Для выполнения печати в модуле объекта должна быть реализована экспортная процедура Печать(). Проанализируем её сигнатуру и пример вызова:


Процедура Печать(МассивОбъектовНазначения, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт

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

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

Важные нюансы отладки и подключения

Разберем практические рекомендации по отладке и подключению внешней печатной формы:

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