Как разработать внешнюю печатную форму в конфигурации на базе БСП?

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

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

Основы работы с механизмом БСП

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

Шаг 1: Оформление модуля объекта

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

Рассмотрим пример шаблона функции, который обеспечит корректную регистрацию:


#Область РегистрацияОбъекта
Функция СведенияОВнешнейОбработке() Экспорт
    ПараметрыРегистрации = ДополнительныеОтчетыИОбработки.СведенияОВнешнейОбработке("2.2.2.1");
    ПараметрыРегистрации.Вид = ДополнительныеОтчетыИОбработкиКлиентСервер.ВидОбработкиПечатнаяФорма;
    ПараметрыРегистрации.Наименование = "Заявка на отгрузку Внешняя";
    ПараметрыРегистрации.Версия = "1.0.0.0";
    ПараметрыРегистрации.БезопасныйРежим = Ложь;
    
    МассивНазначения = Новый Массив;
    МассивНазначения.Добавить("Документ.ЗаказКлиента");
    ПараметрыРегистрации.Назначение = МассивНазначения;
    
    Команды = ПолучитьТаблицуКоманд();
    ЗаполнитьТаблицуКоманд(Команды, "Заявка на отгрузку", "ЗаявкаНаОтгрузкуВнешняя", "ВызовСерверногоМетода", Ложь, "ПечатьMXL");
    ПараметрыРегистрации.Вставить("Команды", Команды);
    
    Возврат ПараметрыРегистрации;
КонецФункции
#КонецОбласти

Шаг 2: Настройка команд печати

В функции ПолучитьТаблицуКоманд мы определяем параметры вызова нашей формы. Важным моментом является использование Модификатора — для табличных макетов это значение ПечатьMXL. Это говорит БСП, что обработка должна формировать табличный документ.


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

Шаг 3: Реализация логики печати

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


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

Рекомендации по разработке

  1. Используйте готовые шаблоны. Не пытайтесь писать все с нуля. Возьмите любую типовую внешнюю печатную форму из демо-конфигурации БСП или существующую форму в вашей конфигурации в качестве основы.
  2. Анализируйте чужой код. Открыв любую типовую печатную форму через конфигуратор, вы увидите, как разработчики 1С используют общие модули для получения данных и заполнения макетов. Это лучший способ обучения.
  3. Безопасный режим. По умолчанию БСП подключает внешние обработки в безопасном режиме. Если ваша форма требует обращения к файловой системе или другим внешним ресурсам, убедитесь, что вы осознанно управляете параметром БезопасныйРежим и соответствующими разрешениями.
  4. Именование объектов. Следите за тем, чтобы идентификаторы в СведенияОВнешнейОбработке совпадали с идентификаторами, которые вы проверяете в процедуре Печать. Ошибки в именах — самая частая причина, почему форма не «подхватывается» системой.

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

← На главную