Вопрос по запросу к регистра накопления.

1. user606894_schana1w3 21.08.17 15:39 Сейчас в теме
Здравствуйте, подскажите пожалуйста как модифицировать запрос или как лучше по уму доделать.
(пустая конфигурация с нуля)
Есть документ Наряд заказ, на основании его создается Акт диагностики, который содержит табличную часть с номенклатурой. (допустим - Пила 1шт, Цепь 1шт)
Сделал таблицу значений Остаток материалов на форме, которая заполняется при наведении на Наряд заказ, показывая номенклатуру указанную в Акте диагностики.
Проблема в том что, если я создам какой либо другой документ на основании Наряд заказа, допустим Передача заказа, то ТЗ не заполняется, я думаю потому-что он смотрит регистр накопления(последнюю запись), а это Передача заказа(которая не содержит табличную часть с номенклатурой). Так как если будет только Акт, то все формируется или Передачу заказа сформирую ранней датой. Тоесть Акт в 12ч, а Передача в 11.

Запрос вот.
Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	ВнутренниеЗаказыОстатки.Номенклатура,
	               |	ВнутренниеЗаказыОстатки.КоличествоОстаток,
	               |	ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе,
	               |	ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) КАК РезервНаСкладе
	               |ИЗ
	               |	РегистрНакопления.ВнутренниеЗаказы.Остатки(&Дата, ВнутреннийЗаказ = &ВнутреннийЗаказ) КАК ВнутренниеЗаказыОстатки";
				   
				Если ЭлементыФормы.НарядЗаказы.ТекущаяСтрока.Склад.ВидСклада = Перечисления.ВидыСкладов.НТТ Тогда
					Запрос.Текст = Запрос.Текст + "
					|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВНТТ.Остатки(&Дата, Склад = &Склад) КАК ТоварыНаСкладахОстатки   ";
				Иначе
					Запрос.Текст = Запрос.Текст + "
					|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&Дата, Склад = &Склад) КАК ТоварыНаСкладахОстатки";
				КонецЕсли;
				Запрос.Текст = Запрос.Текст + "
	               |		ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура
	               |		ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(
	               |				&Дата,
	               |				Склад = &Склад
	               |					И ДокументРезерва = &ВнутреннийЗаказ) КАК ТоварыВРезервеНаСкладахОстатки
	               |		ПО ВнутренниеЗаказыОстатки.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура";
				   
	Запрос.УстановитьПараметр("ВнутреннийЗаказ", ЭлементыФормы.НарядЗаказы.ТекущаяСтрока.Ссылка);
	Запрос.УстановитьПараметр("Склад", ЭлементыФормы.НарядЗаказы.ТекущаяСтрока.Склад);
	Запрос.УстановитьПараметр("Дата", КонецДня(РабочаяДата));
		ТЗ = Запрос.Выполнить().Выгрузить();
	
	Для каждого стр из ТЗ Цикл
		стрТаб = Материалы.Добавить();
		СтрТаб.Номенклатура = Стр.Номенклатура;
		СтрТаб.Требуется = Стр.КоличествоОстаток;
		СтрТаб.ВНаличии = Стр.ОстатокНаСкладе;
		СтрТаб.Нехватает = Макс(СтрТаб.Требуется - СтрТаб.ВНаличии, 0);
		СтрТаб.РезервНаСкладе = Стр.РезервНаСкладе;
	КонецЦикла;
	
	ЭлементыФормы.Материалы.Значение = Материалы;
	ЭлементыФормы.Материалы.СоздатьКолонки();
Показать

Догадка в этом Запрос.УстановитьПараметр("Дата", КонецДня(РабочаяДата)); он последнюю запись смотрит...
Подскажите как по уму сделать?)
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 31 21.08.17 21:22 Сейчас в теме
а так?
Запрос.УстановитьПараметр("Дата", ЭлементыФормы.НарядЗаказы.ТекущаяСтрока.Ссылка.Дата);
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот