4
SleepyHead
гуру
29.01.18
✎
10:35
|
Вот скелет модуля внешней обработки, выцепил из одной из своих.
Функция СведенияОВнешнейОбработке() Экспорт
Наименование = ПолучитьНаименование();
Идентификатор = ПолучитьИдентификатор();
Команды = Получить Таблицу Команд();
ДобавитьКоманду(Команды, Наименование, Идентификатор, "ВызовСерверногоМетода", Ложь, Идентификатор);
ПараметрыРегистрации = Новый Структура;
ПараметрыРегистрации.Вставить("Вид", "ПечатнаяФорма");
ПараметрыРегистрации.Вставить("Назначение", ПолучитьНазначения());
ПараметрыРегистрации.Вставить("Наименование", Наименование);
ПараметрыРегистрации.Вставить("Версия", "1.0");
ПараметрыРегистрации.Вставить("Информация", Наименование);
ПараметрыРегистрации.Вставить("БезопасныйРежим", Ложь);
ПараметрыРегистрации.Вставить("Команды", Команды);
Возврат ПараметрыРегистрации;
КонецФункции
Функция ПолучитьНазначения() Экспорт
Перем Имена, МассивИмен, МассивТипов,Имя;
Имена = "Отпуск,Увольнение,УвольнениеСписком,Командировка";
МассивИмен = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Имена,",");
МассивТипов = Новый Массив;
Для Каждого Имя из МассивИмен Цикл
Если МетаДанные.Документы.Найти(Имя)=Неопределено Тогда
Продолжить
КонецЕсли;
МассивТипов.Добавить(Тип("ДокументСсылка."+Имя));
КонецЦикла;
Возврат МассивТипов;
КонецФункции
Функция Получить Таблицу Команд()
Команды = Новый ТаблицаЗначений;
Команды.Колонки.Добавить("Представление", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Идентификатор", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("Использование", Новый ОписаниеТипов("Строка"));
Команды.Колонки.Добавить("ПоказыватьОповещение", Новый ОписаниеТипов("Булево"));
Команды.Колонки.Добавить("Модификатор", Новый ОписаниеТипов("Строка"));
Возврат Команды;
КонецФункции
Функция ДобавитьКоманду(ТаблицаКоманд, Представление, Идентификатор, Использование, ПоказыватьОповещение, Модификатор)
НК = ТаблицаКоманд.Добавить();
НК.Представление = Представление;
НК.Идентификатор = Идентификатор;
НК.Использование = Использование;
НК.ПоказыватьОповещение = ПоказыватьОповещение;
НК.Модификатор = Модификатор;
Возврат НК;
КонецФункции
/////////////////////////////////////////////////////////////////////////////
// реализация печати
Функция ПолучитьИдентификатор() Экспорт
Возврат "ПечатьСреднегоОбщийПоСтатьям"
КонецФункции
Функция ПолучитьНаименование() Экспорт
Возврат "Расчет среднего по статьям финансирования"
КонецФункции
Процедура Печать(МассивОбъектов, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(КоллекцияПечатныхФорм, ПолучитьИдентификатор(), ПолучитьНаименование(), ПечатьСреднего(МассивОбъектов, ОбъектыПечати));
КонецПроцедуры
// печать формы Т-53 для ООО Магистр
Функция ПечатьСреднего(МассивОбъектов, ОбъектыПечати)
ТабличныйДокумент = Новый ТабличныйДокумент;
ТабличныйДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_"+ПолучитьИдентификатор();
Данные = ПолучитьДанные(МассивОбъектов[0]);
Схема = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
НастройкиСКД = Схема.НастройкиПоУмолчанию;
ВнешниеНаборыДанных = Новый Структура;
ВнешниеНаборыДанных.Вставить("ТЗаработок", Данные.ТЗаработок);
ВнешниеНаборыДанных.Вставить("ТПремииПолностью", Данные.ТПремииПолностью);
ВнешниеНаборыДанных.Вставить("ТПремииЧастично", Данные.ТПремииЧастично);
ВнешниеНаборыДанных.Вставить("ТВремя", Данные.ТВремя);
ВнешниеНаборыДанных.Вставить("ТИВ", Данные.ТИВ);
ВнешниеНаборыДанных.Вставить("ТЗ", Данные.ТЗ);
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
МакетКомпоновки = КомпоновщикМакета.Выполнить(Схема, НастройкиСКД);
ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, ВнешниеНаборыДанных);
ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабличныйДокумент);
ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
Возврат ТабличныйДокумент;
КонецФункции
|
|