Использование таблицы в качестве параметра

Vitor 14 1 1
ТЗЦеныТиповРабот = Новый ТаблицаЗначений;
ТЗЦеныТиповРабот.Колонки.Добавить("ТипРабот", Новый ОписаниеТипов("Строка",КвалификаторСтроки)); 
ТЗЦеныТиповРабот.Колонки.Добавить("Цена", Новый ОписаниеТипов("Число",КвалификаторЧисла));
Для Каждого СтрокаТЗ Из ЦеныТиповРабот Цикл
	НоваяСтрока = ТЗЦеныТиповРабот.Добавить();
	ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ); 
	НоваяСтрока.ТипРабот = СокрЛП(СтрокаТЗ.ТипРабот);
КонецЦикла;
	
Запрос = Новый Запрос; 
Запрос.УстановитьПараметр("ТрудозатратыСотрудника", ТЗТрудозатратыСотрудника);
Запрос.УстановитьПараметр("СтоимостьРабот", ТЗЦеныТиповРабот);
Запрос.УстановитьПараметр("СуммаРаспределить", СуммаЗаработнойПлатыСотрудника);
Запрос.Текст = "ВЫБРАТЬ
	               |	ТрудозатратыСотрудника.ВидРабот КАК ВидРабот,
	               |	ТрудозатратыСотрудника.ТипРабот КАК ТипРабот,
	               |	ТрудозатратыСотрудника.ЗатраченоЧасов КАК ЗатраченоЧасов
	               |ПОМЕСТИТЬ ВТ_ТрудозатратыСотрудника
	               |ИЗ
	               |	&ТрудозатратыСотрудника КАК ТрудозатратыСотрудника
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	СтоимостьРабот.ТипРабот КАК ТипРабот,
	               |	СтоимостьРабот.Цена КАК Цена
	               |ПОМЕСТИТЬ ВТ_СтоимостьРабот
	               |ИЗ
	               |	&СтоимостьРабот КАК СтоимостьРабот
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ ПЕРВЫЕ 5
	               |	ВТ_ТрудозатратыСотрудника.ВидРабот КАК ВидРабот,
	               |	ВТ_ТрудозатратыСотрудника.ТипРабот КАК ТипРабот,
	               |	ВТ_ТрудозатратыСотрудника.ЗатраченоЧасов КАК ЗатраченоЧасов,
	               |	ЕСТЬNULL(ВТ_СтоимостьРабот.Цена, 0) КАК Цена,
	               |	ВТ_ТрудозатратыСотрудника.ЗатраченоЧасов * ЕСТЬNULL(ВТ_СтоимостьРабот.Цена, 0) КАК Стоимость
	               |ПОМЕСТИТЬ ВТ_5Записей
	               |ИЗ
	               |	ВТ_ТрудозатратыСотрудника КАК ВТ_ТрудозатратыСотрудника
	               |		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_СтоимостьРабот КАК ВТ_СтоимостьРабот
	               |		ПО ВТ_ТрудозатратыСотрудника.ТипРабот = ВТ_СтоимостьРабот.ТипРабот
	               |
	               |УПОРЯДОЧИТЬ ПО
	               |	Стоимость УБЫВ
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	СУММА(ВТ_5Записей.Стоимость) КАК Стоимость
	               |ПОМЕСТИТЬ ИтогоСтоимость
	               |ИЗ
	               |	ВТ_5Записей КАК ВТ_5Записей
	               |;
	               |
	               |////////////////////////////////////////////////////////////////////////////////
	               |ВЫБРАТЬ
	               |	ВТ_5Записей.ВидРабот КАК ВидРабот,
	               |	ВТ_5Записей.ТипРабот КАК ТипРабот,
	               |	ВТ_5Записей.ЗатраченоЧасов КАК ЗатраченоЧасов,
	               |	ВТ_5Записей.Цена КАК Цена,
	               |	ВТ_5Записей.Стоимость КАК Стоимость,
	               |	ВТ_5Записей.Стоимость * 100 / ИтогоСтоимость.Стоимость КАК ПроцентРаспределения,
	               |	ВТ_5Записей.Стоимость * 100 / ИтогоСтоимость.Стоимость * &СуммаРаспределить / 100 КАК СуммаЗП
	               |ИЗ
	               |	ВТ_5Записей КАК ВТ_5Записей
	               |		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ИтогоСтоимость КАК ИтогоСтоимость
	               |		ПО (ИСТИНА)";
	
Результат = Запрос.Выполнить().Выгрузить();  
ДЛя каждого СтрокаТЗ из Результат Цикл
	НоваяСтрока = РезультатОтчет.Добавить();
	ЗаполнитьЗначенияСвойств(НоваяСтрока, СтрокаТЗ);	
КонецЦикла;
0
Орфографическая ошибка в ТрудозатратыСотрудника (найдено 6): Трудозатраты
Орфографическая ошибка в ТЗТрудозатратыСотрудника: Трудозатраты
Орфографическая ошибка в ВТ_ТрудозатратыСотрудника (найдено 8): Трудозатраты

См. также

Найти документ, состав табличной части которого соответствует параметру - таблице значений

СформироватьСтрокуДляПоискаВЗапросе (БСП)

ЗаблокироватьРеквизиты (БСП)

"Использовать в качестве значения поле" программно

Передача таблицы значений в запрос

УстановитьПараметрыЗапросаИменаПредопределенныеПапки (БСП)

ПолучитьТаблицуПараметровИБ (БСП)

ТаблицаПараметров (БСП)

ДобавитьКонстантуВТаблицуПараметровИБ (БСП)

Модератору