|
Помогите с запросом | ☑ | ||
---|---|---|---|---|
0
Lis2007
06.10.11
✎
17:39
|
Привет всем!
В слегка измененной УТ есть некий регистр "ТоварыОжидающиеРезервированияНаСкладах" в котором собирается информация о товарах в разрезе контрагентов, которые потом нужно будет зарезервировать документом "Заказ покупателя" когда товар на складе появится. Все происходит всегда на одном и том же складе. Есть запрос, на основании которого затем формируются документы "Заказ покупателя": Код ВЫБРАТЬ ТоварыОжидающиеРезервирования.ДокументРезерва.Контрагент КАК Контрагент, ТоварыОжидающиеРезервирования.Номенклатура КАК Номенклатура, ТоварыОжидающиеРезервирования.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры, ТоварыОжидающиеРезервирования.СерияНоменклатуры КАК СерияНоменклатуры, ТоварыОжидающиеРезервирования.ДокументРезерва КАК ДокументРезерва, МАКСИМУМ(ТоварыОжидающиеРезервирования.КоличествоОстаток) КАК ОстатокКРезервированию, МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0)) КАК ОстатокНаСкладеОбщий, МАКСИМУМ(ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК ОстатокВРезерве, МАКСИМУМ(ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0)) КАК ОстатокНаСкладе ИЗ РегистрНакопления.ТоварыОжидающиеРезервированияНаСкладах.Остатки( &;ПоДату, Склад = &;CкладРезервирования И (ДокументРезерва.Дата МЕЖДУ &;CДаты И &;ПоДату)) КАК ТоварыОжидающиеРезервирования ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.Остатки(&;ПоДату, Склад = &;CкладРезервирования) КАК ТоварыНаСкладахОстатки ПО ТоварыОжидающиеРезервирования.Склад = ТоварыНаСкладахОстатки.Склад И ТоварыОжидающиеРезервирования.Номенклатура = ТоварыНаСкладахОстатки.Номенклатура И ТоварыОжидающиеРезервирования.ХарактеристикаНоменклатуры = ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры И ТоварыОжидающиеРезервирования.СерияНоменклатуры = ТоварыНаСкладахОстатки.СерияНоменклатуры ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки(&;ПоДату, Склад = &;CкладРезервирования) КАК ТоварыВРезервеНаСкладахОстатки ПО ТоварыОжидающиеРезервирования.Склад = ТоварыВРезервеНаСкладахОстатки.Склад И ТоварыОжидающиеРезервирования.Номенклатура = ТоварыВРезервеНаСкладахОстатки.Номенклатура И ТоварыОжидающиеРезервирования.ХарактеристикаНоменклатуры = ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры И ТоварыОжидающиеРезервирования.СерияНоменклатуры = ТоварыВРезервеНаСкладахОстатки.СерияНоменклатуры ГДЕ ЕСТЬNULL(ТоварыНаСкладахОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток, 0) > 0 СГРУППИРОВАТЬ ПО ТоварыОжидающиеРезервирования.Номенклатура, ТоварыОжидающиеРезервирования.СерияНоменклатуры, ТоварыОжидающиеРезервирования.ХарактеристикаНоменклатуры, ТоварыОжидающиеРезервирования.ДокументРезерва, ТоварыОжидающиеРезервирования.ДокументРезерва.Контрагент УПОРЯДОЧИТЬ ПО ТоварыОжидающиеРезервирования.ДокументРезерва.Дата ИТОГИ СУММА(ОстатокКРезервированию), МАКСИМУМ(ОстатокНаСкладеОбщий), МАКСИМУМ(ОстатокВРезерве), МАКСИМУМ(ОстатокНаСкладе) ПО Контрагент, Номенклатура, ХарактеристикаНоменклатуры, СерияНоменклатуры, ДокументРезерва Результат запроса: Контрагент Номенклатура ОстатокКРезервированию ОстатокНаСкладе Контрагент1 Товар1 8шт 8шт Контрагент2 Товар1 8шт 8шт Когда в процедуре начинают формироаться "Заказы", в итоге свободный остаток по товару выходит в минус. Как с помощью запроса распределить свободные складские остатки между контрагентами, помотите плиз. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |