1CLenta.ru  

Сделать внешнюю печатную форму для управляемого приложения

Программирование системы     22.04.2016 09:08     9228

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

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


Параметры регистрации печатной формы
  • Вид - ПечатнаяФорма
  • Назначение - массив объектов для которых предназначена обработка
  • Наименование - имя для регистрации в справочнике внешних обработок
  • Версия - для удобства версирования обработок (1.0, 1.1, и т.д.)
  • БезопасныйРежим - в безопасном режиме не доступна COM технология, загрузка внешних компонент, доступ к файловой системе, доступ к Интернету.
  • Информация - описание внешней обработки
  • Команды - таблица значений содержит команды

Параметры команд
  • Представление - имя кнопки в меню печати
  • Идентификатор - уникальный идентификатор команды
  • Использование - ВызовСерверногоМетода или ВызовКлиентскогоМетода
  • ПоказыватьОповещение - вывод оповещения при печати
  • Модификатор - для печатных форм задаётся значение "ПечатьMXL"

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

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

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

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

ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд);

Возврат ПараметрыРегистрации;

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

Экспортная функция "Печать()"


Если параметр "Использование" установлен в значение "ВызовСерверногоМетода", то обязательная экспортная функция Печать() должна располагаться в модуле обработки и выполняться на стороне сервера.

Если параметр "Использование" установлен в значение "ВызовКлиентскогоМетода", то обязательная экспортная функция Печать() должна располагаться в модуле основной формы обработки и выполняться на стороне клиента.

Параметры:
  • МассивОбъектов - массив ссылок на объекты печати
  • КоллекцияПечатныхФорм - таблица значений сформированных документов для печати
  • ОбъектыПечати - список значений, значение содержит ссылку на объект, а представление содержит имя области печати объекта
  • ПараметрыВывода - дополнительные параметры для печати

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

ТабДокумент = Новый ТабличныйДокумент();
//Заполнение ТабДокумента
//...
//...
//...
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм,
"ИдентификаторКоманды",
"Наименование",
ТабДокумент);
КонецФункции

Внешние обработки и отчеты в типовых конфигурациях подключаются в режиме 1С:Предприятие. Подключение печатных форм в управляемом приложении для различных типовых конфигурациях похоже.

Комментарии (0)