Запрос

Renat11111

Well-known member
20.04.2008
123
0
#1
Не могу разобраться с запросом в справочнике по запросу ничего нет. Кому не трудно плиз объясните следующие участки кода.
МАКСИМУМ(Док.КоличествоУчет - Док.Количество) КАК КоличествоОтклонение,
| ВЫБОР
| КОГДА СУММА(ВложенныйЗапрос.Количество) ЕСТЬ NULL ТОГДА
| 0
| ИНАЧЕ
| СУММА(ВложенныйЗапрос.Количество)
| КОНЕЦ КАК КоличествоСписанное,

и

| ГДЕ
| ДокОтчетККМ.Ссылка.Проведен
| И ДокОтчетККМ.Ссылка.ИнвентаризацияТоваровНаСкладе = &ДокументОснованиеСсылка) КАК ВложенныйЗапрос

P.S кто сможет скинуть на мэйл справочник по языку запросов 1с, буду благодарен вдвойне.

вот весь запрос:


запрос = Новый Запрос;

Запрос.УстановитьПараметр("ДокументСсылка", Ссылка);
Запрос.УстановитьПараметр("ДокументОснованиеСсылка", ДокументОснование);

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

РезультатЗапроса = Запрос.Выполнить();

Склад = ДокументОснование.Склад;

Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.Следующий() Цикл

КоличествоСписать = Выборка.КоличествоОтклонение - Выборка.КоличествоСписанное;

Если КоличествоСписать <= 0 Тогда
Продолжить;
КонецЕсли;

СтрокаТабличнойЧасти = Товары.Добавить();

СтрокаТабличнойЧасти.Номенклатура = Выборка.Номенклатура;
СтрокаТабличнойЧасти.ЕдиницаИзмерения = Выборка.ЕдиницаИзмерения;
СтрокаТабличнойЧасти.ЕдиницаИзмеренияМест = Выборка.ЕдиницаИзмеренияМест;
СтрокаТабличнойЧасти.Коэффициент = Выборка.ЕдиницаИзмерения.Коэффициент;
СтрокаТабличнойЧасти.Качество = Выборка.Качество;
СтрокаТабличнойЧасти.Количество = КоличествоСписать;
СтрокаТабличнойЧасти.ХарактеристикаНоменклатуры = Выборка.ХарактеристикаНоменклатуры;
СтрокаТабличнойЧасти.СерияНоменклатуры = Выборка.СерияНоменклатуры;

РассчитатьКоличествоМестТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

Если Склад.ВидСклада = Перечисления.ВидыСкладов.НеавтоматизированнаяТорговаяТочка Тогда

СтрокаТабличнойЧасти.Цена = Выборка.Цена;
РассчитатьСуммуТабЧасти(СтрокаТабличнойЧасти, ЭтотОбъект);

КонецЕсли;

КонецЦикла;