Различия
Здесь показаны различия между двумя версиями данной страницы.
— |
common_all:osobennostyvneshnihotchotoviobrabotok [2015/06/30 14:12] (текущий) |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
+ | {{ :common_pics:1c_128.png?nolink&128|}} | ||
+ | ====== Особенности внешних отчетов и обработок ====== | ||
+ | |||
+ | [[common_all:managedforms|назад]] | ||
+ | |||
+ | ---- | ||
+ | ===== Внешняя обработка ===== | ||
+ | |||
+ | Для правильной регистрации с помощью БСП в модуле внешней обработки требуется наличие экспортной функции "СведенияОВнешнейОбработке()", возвращающей структуру с параметрами регистрации внешней обработки. | ||
+ | |||
+ | <code>#Область Сведения | ||
+ | |||
+ | Функция СведенияОВнешнейОбработке() Экспорт | ||
+ | |||
+ | ПараметрыРегистрации = Новый Структура; | ||
+ | |||
+ | ПараметрыРегистрации.Вставить("Вид", "ДополнительнаяОбработка"); | ||
+ | // возможные значения «ДополнительныйОтчет», «ЗаполнениеОбъекта», | ||
+ | // «ДополнительнаяОбработка», «Отчет», «ПечатнаяФорма» | ||
+ | // или «СозданиеСвязанныхОбъектов» | ||
+ | |||
+ | //НазначениеОбработки = Новый Массив; | ||
+ | // Массив названий объектов, для которого предназначается | ||
+ | // данных отчет или обработка. Например — «Документ.РеализацияТоваровУслуг». | ||
+ | //НазначениеОбработки.Добавить("Документ.АвансовыйОтчет"); | ||
+ | //ПараметрыРегистрации.Вставить("Назначение", НазначениеОбработки); | ||
+ | |||
+ | ПараметрыРегистрации.Вставить("Наименование", НСтр("ru = 'Внешняя обработка'")); | ||
+ | // Пользовательское имя обработки | ||
+ | |||
+ | //ПараметрыРегистрации.Вставить("ВерсияБСП", "1.2.1.4"); | ||
+ | // Номер версии БСП для Совместимости | ||
+ | |||
+ | ПараметрыРегистрации.Вставить("БезопасныйРежим", Истина); | ||
+ | // БезопасныйРежим — булево, отображает режим запуска обработка — безопасный или нет. | ||
+ | // В безопасном режиме недоступен привилегированный режим, | ||
+ | // COM-соединение, загрузка dll, доступ к файловой системе и интернету | ||
+ | |||
+ | ПараметрыРегистрации.Вставить("Информация", НСтр("ru = 'Информация отсутствует'")); | ||
+ | // Информация — строка, комментарий, который характеризует обработку. | ||
+ | |||
+ | ПараметрыРегистрации.Вставить("Версия", "1.0"); | ||
+ | // Версия — строка, версия обработки | ||
+ | |||
+ | ТаблицаКоманд = ПолучитьТаблицуКоманд(); | ||
+ | // Команда открытия обработки | ||
+ | ДобавитьКоманду(ТаблицаКоманд, | ||
+ | НСтр("ru = 'Открытие внешней обработки'"), | ||
+ | "ОткрытиеВнешнейОбработки", | ||
+ | "ОткрытиеФормы", | ||
+ | Истина, | ||
+ | ""); | ||
+ | ПараметрыРегистрации.Вставить("Команды", ТаблицаКоманд); | ||
+ | |||
+ | Возврат ПараметрыРегистрации; | ||
+ | |||
+ | КонецФункции // СведенияОВнешнейОбработке() | ||
+ | |||
+ | Функция ПолучитьТаблицуКоманд() | ||
+ | |||
+ | Команды = Новый ТаблицаЗначений; | ||
+ | Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка")); | ||
+ | Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка")); | ||
+ | Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка")); | ||
+ | Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево")); | ||
+ | Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка")); | ||
+ | Возврат Команды; | ||
+ | |||
+ | КонецФункции | ||
+ | |||
+ | Процедура ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение = Ложь, Модификатор = "") | ||
+ | |||
+ | НоваяКоманда = ТаблицаКоманд.Добавить(); | ||
+ | НоваяКоманда.Представление = Представление; | ||
+ | НоваяКоманда.Идентификатор = Идентификатор; | ||
+ | НоваяКоманда.Использование = Использование; | ||
+ | НоваяКоманда.ПоказыватьОповещение = ПоказыватьОповещение; | ||
+ | НоваяКоманда.Модификатор = Модификатор; | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | #КонецОбласти</code> | ||
+ | |||
+ | ===== Внешняя печатная форма ===== | ||
+ | |||
+ | {{:common_all:processings:mf_printform_templ.epf|Шаблон}} | ||
+ | |||
+ | В модуле внешней печатной формы должна содержаться экспортная процедура "Печать". | ||
+ | |||
+ | <code>// | ||
+ | // Параметры: | ||
+ | // МассивОбъектов - Массив - ссылки на объекты | ||
+ | // КоллекцияПечатныхФорм - ТаблицаЗначений - уже сформированные документы | ||
+ | // ОбъектыПечати - СписокЗначений - значение это ссылка на объект, а представление это имя области в которой был введен объект | ||
+ | // ПараметрыВывода - произвольные параметры для печати. | ||
+ | Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт | ||
+ | |||
+ | ТабДокумент = СформироватьПечатнуюФорму(МассивОбъектов[0], ОбъектыПечати); | ||
+ | КоллекцияПечатныхФорм[0].ТабличныйДокумент = ТабДокумент; | ||
+ | УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, "Макет1", "Макет 1", ТабДокумент); | ||
+ | |||
+ | КонецПроцедуры | ||
+ | |||
+ | Функция СформироватьПечатнуюФорму(СсылкаНаДокумент, ОбъектыПечати) | ||
+ | |||
+ | ТабличныйДокумент = Новый ТабличныйДокумент; | ||
+ | ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПечФорма"; | ||
+ | |||
+ | Макет = ПолучитьМакет("Макет1"); | ||
+ | |||
+ | ОбластьСтрока = Макет.ПолучитьОбласть("Строка"); | ||
+ | |||
+ | Для Каждого ТекущаяСтрока Из СсылкаНаДокумент.Товары Цикл | ||
+ | ЗаполнитьЗначенияСвойств(ОбластьСтрока.Параметры, ТекущаяСтрока); | ||
+ | ТабличныйДокумент.Вывести(ОбластьСтрока); | ||
+ | КонецЦикла; | ||
+ | |||
+ | ТабличныйДокумент.АвтоМасштаб = Истина; | ||
+ | |||
+ | Возврат ТабличныйДокумент; | ||
+ | |||
+ | КонецФункции</code> | ||
+ | |||