|
Контроль остатков товаров на складах по массиву документов. | ☑ | ||
---|---|---|---|---|
0
breezee
10.06.19
✎
08:30
|
Коллеги, добрый день. УПП 1.3. Есть самописный механизм контроля отрицательных остатках при закрытии смен. Механизм получает документы требования-накладные и в цикле на дату документа смотрит остатки по товарам на складах. Документов много, смотрит долго, нагрузку создает серьезную.
Я решил перенести контроль остатков сразу по массиву документов. Написал запрос к остаткам и оборотам. И увидел что количество конечный остаток, который который получается после движения тн не совпадает с остаткам из таблицы остатков. Если я в остатках и оборотах указываю дату явно, то остатки совпадают, т.е. вот запрос без указания дат: ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( , , , , Номенклатура = &Номенклатура И СерияНоменклатуры = &СерияНоменклатуры) КАК ТоварыНаСкладахОстаткиИОбороты результат: Номенклатура КоличествоКонечныйОстаток КоличествоОборот КоличествоНачальныйОстаток Сосиска -28,300 -28,300 Вот запрос с указанием дат: ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.Номенклатура, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоОборот, ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток ИЗ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( &ДатаДокумента, &ДатаДокумента, , , Номенклатура = &Номенклатура И СерияНоменклатуры = &СерияНоменклатуры) КАК ТоварыНаСкладахОстаткиИОбороты вот результат с указанием дат Номенклатура КоличествоКонечныйОстаток КоличествоОборот КоличествоНачальныйОстаток сосиска 124,670 124,670 Из таблицы остатков остаток равен 124,670 В принципе всё логично, на разные даты - разные остатки. Сам запрос, в котором из остатков и оборотов получаются данные выглядит так: ВЫБРАТЬ ТребованиеНакладнаяМатериалы.Ссылка КАК ДокументТребованиеНакладная, ТребованиеНакладнаяМатериалы.Номенклатура КАК Номенклатура, ТребованиеНакладнаяМатериалы.Ссылка.Склад КАК Склад, ТребованиеНакладнаяМатериалы.Ссылка.Дата ПОМЕСТИТЬ ВТ_ТребованийНакладных ИЗ Документ.ТребованиеНакладная.Материалы КАК ТребованиеНакладнаяМатериалы ГДЕ ТребованиеНакладнаяМатериалы.Ссылка В(&МассивТН) ИНДЕКСИРОВАТЬ ПО Номенклатура, Склад ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыНаСкладахОстаткиИОбороты.КоличествоНачальныйОстаток, ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток, ТоварыНаСкладахОстаткиИОбороты.Номенклатура КАК Номенклатура, ТоварыНаСкладахОстаткиИОбороты.СерияНоменклатуры КАК СерияНоменклатуры ИЗ ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНаСкладах.ОстаткиИОбороты( , , Регистратор, , (Склад, Номенклатура) В (ВЫБРАТЬ ВТ_ТребованийНакладных.Склад, ВТ_ТребованийНакладных.Номенклатура ИЗ ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных)) КАК ТоварыНаСкладахОстаткиИОбороты ПО ВТ_ТребованийНакладных.Номенклатура = ТоварыНаСкладахОстаткиИОбороты.Номенклатура И ВТ_ТребованийНакладных.Склад = ТоварыНаСкладахОстаткиИОбороты.Склад И ВТ_ТребованийНакладных.ДокументТребованиеНакладная = ТоварыНаСкладахОстаткиИОбороты.Регистратор И ВТ_ТребованийНакладных.Дата = ТоварыНаСкладахОстаткиИОбороты.Период ГДЕ ТоварыНаСкладахОстаткиИОбороты.Регистратор ССЫЛКА Документ.ТребованиеНакладная И ТоварыНаСкладахОстаткиИОбороты.КоличествоКонечныйОстаток < 0 И ТоварыНаСкладахОстаткиИОбороты.Регистратор В (ВЫБРАТЬ ВТ_ТребованийНакладных.ДокументТребованиеНакладная ИЗ ВТ_ТребованийНакладных КАК ВТ_ТребованийНакладных) и результат у него такой: КоличествоНачальныйОстаток КоличествоКонечныйОстаток Номенклатура СерияНоменклатуры 1,400 -1,930 Сосиска Вопрос, можно ли как-то получить остатки одним запросом по регистратору из остатков и оборотов так, чтобы они совпадали с остатками таблицы остатков товаров на складах? Спасибо заранее, что как минимум прочли моё полотно |
|||
1
butterbean
10.06.19
✎
08:36
|
(0) >> можно ли как-то получить остатки одним запросом по регистратору из остатков и оборотов так, чтобы они совпадали с остатками таблицы остатков товаров на складах?
неправильная постановка вопроса, ибо отчет всегда покажет остатки на конец или начало какой-то даты, а для документа нужны остатки на момент его проведения |
|||
2
d4rkmesa
10.06.19
✎
08:37
|
(0) Ха-ха, какой шустрый. Нельзя так.
|
|||
3
breezee
10.06.19
✎
09:30
|
(1) (2) Вообще ни как?(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |