Для работы с внешними обработками (а внешняя печатная форма тоже является внешней обработкой) существует объект ВнешниеОбработки.
Рассмотрим два возможных случая:
Внешняя обработка хранится на диске отдельно от информационной базы
Для программного открытия внешней обработки в 1С нужно знать адрес ее файла. Зная его, можно либо открыть форму обработки, либо получить объект обработки для проведения с ним дальнейших действий (например, для вызова экспортных функций из модуля объекта).
Открытие формы внешней обработки
Для программного открытия формы внешней обработки в 1С используется функция ПолучитьФорму() объекта ВнешниеОбработки. Функция имеет несколько параметров. Рассмотрим простое открытие основной формы обработки:
Форма=ВнешниеОбработки.ПолучитьФорму(АдресФайла);
Форма.Открыть();
Для открытия неосновной формы внешней обработки необходимо указать ее имя.
Форма=ВнешниеОбработки.ПолучитьФорму(АдресФайла, "НеосновнаяФорма");
Форма.Открыть();
Открытие внешней обработки как объекта
Для того чтобы получить внешнюю обработку как объект используется функция Создать() объекта ВнешниеОбработки.
ОбъектОбработки=ВнешниеОбработки.Создать(АдресФайла);
По умолчанию все обработки открываются в безопасном режиме. Чтобы его отключить, используются следующие параметры:
ОбъектОбработки=ВнешниеОбработки.Создать(АдресФайла, Ложь);
Внешняя обработка или печатная форма сохранена в информационной базе
Во многих конфигурациях существует возможность сохранять внешние печатные формы и обработки непосредственно в информационной базе. Для этого используется справочник ВнешниеОбработки. Сама внешняя обработка хранится в виде двоичных данных либо в реквизите ХранилищеВнешнейОбработки, либо в табличной части Принадлежность в реквизите ХранилищеВнешнейОбработки.
Для открытия внешней обработки нужно:
- Получить ее из хранилища.
- Сохранить файл с обработкой на диск.
- Открыть форму или получить объект обработки.
- Если мы имеем дело с внешней печатной формой, то можно заполнить стандартный реквизит СсылкаНаОбъект и вызвать экспортную функцию Печать.
ДвДанные=СпрСсылка.ХранилищеВнешнейОбработки.Получить();
АдресФайла=ПолучитьИмяВременногоФайла();
ДвДанные.Записать(АдресФайла);
ОбъектОбработки=ВнешниеОбработки.Создать(АдресФайла, Ложь);
//Для внешней печатной формы. СсылкаНаОбъект содержит ссылку на элемент, которому принадлежит печатная форма
ОбъектОбработки.СсылкаНаОбъект=СсылкаНаОбъект;
ТабДок=ОбъектОбработки.Печать();
Вот спасибо огромное!