Загрузка данных


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