Передача менеджера временных таблиц в СКД

ChOP 229 3 8 7

Для того, чтобы компоновщик настроек мог понять, с каким типами данных из временной таблицы он имеет дело, желательно прописать это в тексте запроса, используя выражения языка запросов ВЫРАЗИТЬ(ВТ.ЗначениеПоля КАК <Описание типа>) или ЕСТЬNULL(ВТ.ЗначениеПоля, <Пустое значение такого же типа>). Для составных типов можно будет использовать выражение ВЫБОР КОГДА с последовательным описанием типов.

ВЫБОР КОГДА Ложь Тогда ЗНАЧЕНИЕ(Справочник.Валюты.ПустаяСсылка)
    КОГДА Ложь ТОГДА ЗНАЧЕНИЕ(Справочник.МестаХранения.ПустаяСсылка)
ИНАЧЕ вт.пп
ВЫБРАТЬ РАЗРЕШЕННЫЕ
	Начисления.Сотрудник КАК Сотрудник,
	Начисления.НачислениеУдержание КАК ВидРасчета,
	Начисления.Сумма КАК Сумма,
	ЕСТЬNULL(КадровыеДанные.Подразделение, ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)) КАК Подразделение,
	ЕСТЬNULL(КадровыеДанные.Должность, ЗНАЧЕНИЕ(Справочник.Должности.ПустаяСсылка)) КАК Должность,
	ЕСТЬNULL(КадровыеДанные.ГрафикРаботы, ЗНАЧЕНИЕ(Справочник.ГрафикиРаботы.ПустаяСсылка)) КАК ГрафикРаботы,
	ЕСТЬNULL(КадровыеДанные.ВидЗанятости, ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка)) КАК ВидЗанятости
ИЗ
	РегистрНакопления.НачисленияУдержанияПоСотрудникам КАК Начисления
		ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанные
		ПО Начисления.Сотрудник = КадровыеДанные.Сотрудник
			И Начисления.Период = КадровыеДанные.Период
ГДЕ
	Начисления.Период = &МесяцНачисления

Затем в предопределенной процедуре ПриКомпоновкеРезультата модуля отчета, инициализируем менеджер временных таблиц с требуемыми данными. В результате инициализации в МВТ должа быть сформирована временная таблица с именем, идентичным объявленному в наборе данных.

Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
    
    СтандартнаяОбработка = Ложь;
		Настройки = КомпоновщикНастроек.ПолучитьНастройки();
    МесяцНачисления = Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("МесяцНачисления")).Значение;
    
    // Создаем МВТ
    МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
    
    // Здесь наполняем МВТ данными
    КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина,, "Подразделение, Должность, ГрафикРаботы, ВидЗанятости", МесяцНачисления);
    ЗарплатаКадры.СоздатьВТПоТаблицеЗначений(МенеджерВременныхТаблиц, КадровыеДанные, "ВТКадровыеДанныеСотрудников", Истина);
    
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновкиДанных = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, КомпоновщикНастроек.ПолучитьНастройки(), ДанныеРасшифровки,, Тип("ГенераторМакетаКомпоновкиДанных"));
    
    // Здесь его используем
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновкиДанных,, ДанныеРасшифровки, Истина,, МенеджерВременныхТаблиц);
    
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    
КонецПроцедуры

Источник

0

См. также

Добавить таблицу в менеджер временных таблиц

ПриОпределенииГруппИсполнителей (БСП)

Ищет по имени временную таблицу в менеджере

СоздатьВТРасписанияРаботыНаПериод (БСП)

Просмотр временной таблицы

Получить даты за период в запросе

Уничтожение временной таблицы

Создает временную таблицу по набору записей

Модератору