Особенности внешних отчетов и обработок
Внешняя обработка
Для правильной регистрации с помощью БСП в модуле внешней обработки требуется наличие экспортной функции «СведенияОВнешнейОбработке()», возвращающей структуру с параметрами регистрации внешней обработки.
#Область Сведения Функция СведенияОВнешнейОбработке() Экспорт ПараметрыРегистрации = Новый Структура; ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка"); // возможные значения «ДополнительныйОтчет», «ЗаполнениеОбъекта», // «ДополнительнаяОбработка», «Отчет», «ПечатнаяФорма» // или «СозданиеСвязанныхОбъектов» //НазначениеОбработки = Новый Массив; // Массив названий объектов, для которого предназначается // данных отчет или обработка. Например — «Документ.РеализацияТоваровУслуг». //НазначениеОбработки.Добавить("Документ.АвансовыйОтчет"); //ПараметрыРегистрации.Вставить("Назначение", НазначениеОбработки); ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Внешняя обработка'")); // Пользовательское имя обработки //ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4"); // Номер версии БСП для Совместимости ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); // БезопасныйРежим — булево, отображает режим запуска обработка — безопасный или нет. // В безопасном режиме недоступен привилегированный режим, // COM-соединение, загрузка dll, доступ к файловой системе и интернету ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Информация отсутствует'")); // Информация — строка, комментарий, который характеризует обработку. ПараметрыРегистрации.Вставить("Версия", "1.0"); // Версия — строка, версия обработки ТаблицаКоманд = ПолучитьТаблицуКоманд(); // Команда открытия обработки ДобавитьКоманду(ТаблицаКоманд, НСтр("ru = 'Открытие внешней обработки'"), "ОткрытиеВнешнейОбработки", "ОткрытиеФормы", Истина, ""); ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); Возврат ПараметрыРегистрации; КонецФункции // СведенияОВнешнейОбработке() Функция ПолучитьТаблицуКоманд() Команды = Новый ТаблицаЗначений; Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); Возврат Команды; КонецФункции Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") НоваяКоманда = ТаблицаКоманд.Добавить(); НоваяКоманда.Представление = Представление; НоваяКоманда.Идентификатор = Идентификатор; НоваяКоманда.Использование = Использование; НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; НоваяКоманда.Модификатор = Модификатор; КонецПроцедуры #КонецОбласти
Внешняя печатная форма
В модуле внешней печатной формы должна содержаться экспортная процедура «Печать».
// // Параметры: // МассивОбъектов - Массив - ссылки на объекты // КоллекцияПечатныхФорм - ТаблицаЗначений - уже сформированные документы // ОбъектыПечати - СписокЗначений - значение это ссылка на объект, а представление это имя области в которой был введен объект // ПараметрыВывода - произвольные параметры для печати. Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт ТабДокумент = СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати); КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДокумент; УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Макет1", "Макет 1", ТабДокумент); КонецПроцедуры Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати) ТабличныйДокумент = Новый ТабличныйДокумент; ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечФорма"; Макет = ПолучитьМакет("Макет1"); ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары Цикл ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ТекущаяСтрока); ТабличныйДокумент.Вывести(ОбластьСтрока); КонецЦикла; ТабличныйДокумент.АвтоМасштаб = Истина; Возврат ТабличныйДокумент; КонецФункции