|
Запрос для списания товара со склада по партиям. | ☑ | ||
---|---|---|---|---|
0
PQT
20.03.12
✎
16:06
|
Запрос для списания товара со склада по партиям.
Проблемма в следущем: если товар отсутствует на всех складах, или присутствует на складе, с которого списываем, то все ОК, но если товар есть в наличии на другом складе, то он не попадает в таблицу вообще (я 7шник, в 8ке начинаю) Запрос=Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | Товары.Товар.Учетный КАК Товар, | СУММА(Товары.Количество) КАК Количество, | СУММА(Товары.Всего) КАК Всего |ПОМЕСТИТЬ ТабДока |ИЗ | Документ."+К.Метаданные().Имя+".Товары КАК Товары |ГДЕ | Товары.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | Товары.Товар.Учетный |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТабДока.Количество КАК Количество, | ТабДока.Всего КАК Всего, | ЕСТЬNULL(Остатки.Склад, &Склад) КАК Склад, | Остатки.Партия, | ЕСТЬNULL(Остатки.ОстатокОстаток, 0) КАК Остаток, | ЕСТЬNULL(Остатки.СуммаОстаток, 0) КАК Сумма, | ЕСТЬNULL(Остатки.РасходыОстаток, 0) КАК Расходы, | ТабДока.Товар КАК Товар |ИЗ | ТабДока КАК ТабДока | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиТоваров.Остатки( | &Дата, | Товар В | (ВЫБРАТЬ | ТабДока.Товар | ИЗ | ТабДока КАК ТабДока)) КАК Остатки | ПО ТабДока.Товар = Остатки.Товар |ГДЕ | ЕСТЬNULL(Остатки.Склад, &Склад) = &Склад | |УПОРЯДОЧИТЬ ПО | Остатки.Партия.Дата | |ИТОГИ | МАКСИМУМ(Количество), | МАКСИМУМ(Всего), | СУММА(Остаток) |ПО | Товар"; Запрос.УстановитьПараметр("Ссылка", К.Ссылка); Запрос.УстановитьПараметр("Склад", К.Склад); Запрос.УстановитьПараметр("Дата", К.МоментВремени()); |
|||
1
Господин ПЖ
20.03.12
✎
16:07
|
ГДЕ
| ЕСТЬNULL(Остатки.Склад, &Склад) = &Склад какой затейник... |
|||
2
zak555
20.03.12
✎
16:09
|
проверяй после списания нули
|
|||
3
PQT
20.03.12
✎
16:11
|
пройтись по движениям чтоли?
|
|||
4
FIXXXL
20.03.12
✎
16:17
|
склад засунь в параметры виртуальной таблицы
и нафига соединение нужно вообще? |
|||
5
ptiz
20.03.12
✎
16:23
|
(0) А сколько товара спишется, если в остатках 2 разных партии?
(я уж молчу про случай двух строк одного товара в накладной) |
|||
6
PQT
21.03.12
✎
03:57
|
убедили... переработаю
|
|||
7
PQT
21.03.12
✎
04:04
|
а мож кто порекомендует оптимальный способ?
С вашего позволения :) ставлю второй вопрос: каким методом лучше списывать партии по регистру? Как в 7.7: Запрос остатков с отбором по складу и группировкой по товарам и партиям. или используя возможности запросов 8ки: через левое соединение документа с остатками по условиям? или что еще порекомендуете? |
|||
8
PQT
21.03.12
✎
04:11
|
:) Комментну не по существу: за 12 лет с нуля накатал эффективную конфу на 7.7, все в ней нас устраивает, эффективность достаточная... но чтото слюна секретируется глядя на 8ку... решился таки между делом переписать свою конфу (ничего не меняя).. вот теперь весь в сомнениях - стоит ли игра свеч))
|
|||
9
ptiz
21.03.12
✎
09:27
|
(7) Лично я - за перебор таблицы документа (ну не самой ТЧ конечно, а выборки запроса по ней) и поиск в ТЗ остатков. При мало-мальски сложных алгоритмах списания (с учетом резервов, страховых запасов и пр.) это здорово облегчает отладку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |