|
Отсечь в запросе повторные перемещения указанной партии на тот же склад | ☑ | ||
---|---|---|---|---|
0
Vladal
08.04.16
✎
15:24
|
Всем привет! Пятница, но все-же...
Производство продуктов. Есть отчет, основанный на движениях партий товаров. Общий принцип складских перемещений таков: 1. Вначале любой помещается на промежуточный склад "Карантин". 2. Далее с этого склада товар перемещается на склад продаж. 3. Со склада продаж этот товар отгружается покупателю. Туда же он и возвращался при возвратах от покупателя. До этого момента отчет работал нормально и показывал всё правильно. Но затем изменили работу этой схемы, связанной с возвратами: 4. От покупателя возврат приходуется на склад "Карантин", независимо от того, с какого склада он был отправлен покупателю. 5. Комиссия проверяет этот товар и либо его уничтожают (брак, порча и т.д.) либо перемещают на склад продаж. И вот здесь при втором перемещении появляется вторая запись с этой же партией и количеством, которые не надо учитывать. Правильно ли я понимаю, что мне надо сначала получить все перемещаемые партии со склада Карантин на Склад продаж, а потом в выборке остатков исключать эти регистраторы? Примерно так: |выбрать Различные | * |поместить | ВТ_Партии |из | РегистрНакопления.ПартииТоваров как Партии |где | истина | И Партии.Номенклатура = &Номенклатура | И Партии.Серия = &Серия | И партии.Склад = &Склад |; |выбрать | ... выборка остатков партий | внутреннее соединение ВТ_Партии | по ВТ_Партии.Номенклатура = ВыборкаОстатков.номенклатура | и ВТ_Партии.Серия = Выборкаостатков.Серия | и ВТ_Партии.Регистратор = ВыборкаОстатков.ДокументПартии | По идее, внутреннее соединение по "ВТ_Партии.Регистратор = ВыборкаОстатков.ДокументПартии" должно отсечь все последующие перемещения? Или надо еще по дате проверять, чтобы всегда брать более ранний документ оприходования партии? Подскажите, если есть ошибка в моих рассуждениях или как лучше сделать. |
|||
1
AceVi
08.04.16
✎
15:49
|
(0) Здесь это где? у тебя нет задвоенной записи.
Товар уходит со склада покупателю. ПРи возврате приходуеться на другой склад, потом перемещение межуд складами. где тут задвоенная запись? |
|||
2
Vladal
08.04.16
✎
16:51
|
(1) Запись не задваивается, а партия попадает второй раз в отчет при выполнении пунктов 4 и 5.
В движениях получается такое: |документ | склад | товар | партия | кол-во | остаток карантин | остаток склад продаж |-------------+-------------------------+--------+---------+--------+------------------+---------------------- |Перемещение 1| карантин - склад продаж | товар1 | партия1 | 10 шт | 0 шт | 10 шт |Продажа 1 | склад продаж | товар1 | партия1 | 10 шт | 0 шт | 0 шт |возврат 1 | карантин | товар1 | партия1 | 3 шт | 3 шт | 0 шт |перемещение 2| карантин - склад продаж | товар1 | партия1 | 3 шт | 0 шт | 3 шт Вот этот самый документ Перемещение 2 переносит товар из ранее выпущенной и проданной партии. А раз партия одна и та же, то её повторно считать не надо. Раньше была такая картина: |документ | склад | товар | партия | кол-во | остаток склад продаж |-------------+-------------------------+--------+---------+--------+---------------------- |Перемещение 1| карантин - склад продаж | товар1 | партия1 | 10 шт | 10 шт |Продажа 1 | склад продаж | товар1 | партия1 | 10 шт | 0 шт |возврат 1 | склад продаж | товар1 | партия1 | 3 шт | 3 шт |
|||
3
Ёпрст
08.04.16
✎
16:56
|
при возврате создавай новую партию и проблем не будет
|
|||
4
Ёпрст
08.04.16
✎
16:57
|
(0) у тя документ партии в останках всегда разный..
|
|||
5
Ёпрст
08.04.16
✎
16:57
|
у одной партии
|
|||
6
Ёпрст
08.04.16
✎
16:58
|
вот и "задвоение" перемещения
|
|||
7
Vladal
08.04.16
✎
16:58
|
(3) Нет, не надо при возврате её создавать. Она в типовых документах мигрирует себе да и пусть мигрирует.
Только в этом отчете она делает фиктивный оборот, поэтому все последующие перемещения не нужно учитывать. |
|||
8
Vladal
08.04.16
✎
16:59
|
(6) Это не задвоение. Нет никакого задвоения, потому как из производства партия в первый раз пришла как 10 штук, а с возврата 3 штуки.
Просто не надо отражать все последующие перемещения этой партии, кроме первого. |
|||
9
Vladal
08.04.16
✎
17:03
|
(4) Документ партии всегда один и тот же - отчет производства за смену. Это же и партия, это же и серия и товар идентифицируется по ним.
При возврате товар назад приходуется с тем же документом партии, с каким он был продан. Т.е. партия одна и та же. |
|||
10
AceVi
08.04.16
✎
17:25
|
(2) Тыкни пальцем что тут неверно? в обоих случая в конце вернгый остаток 3 на складе продаж по партии 1. В чем проблема?
|
|||
11
Карупян
08.04.16
✎
17:30
|
сделай групировку по перемещениям по партии и максимум количества
|
|||
12
Карупян
08.04.16
✎
17:32
|
хотя может быть ситуация когда разные перемещения в разных периодах
|
|||
13
Vladal
08.04.16
✎
18:11
|
(10) Надо отражать только первое перемещение, все последующие это повторное перемещение товара со склад Карантин на склад продаж.
|
|||
14
Vladal
08.04.16
✎
18:12
|
(11) и (12) нет, надо бы по дате отсечь - первое перемещение на склад продаж, остальные в отчет попадать не должны.
|
|||
15
ОчкарикСлава
08.04.16
✎
19:02
|
А что за инфу ты этим отчетом получаешь? Какая конечная задача?
|
|||
16
Vladal
11.04.16
✎
09:02
|
(15) Инфу получаю - выяснить количество проиозведенной продукции на складе.
Конечная задача - при подсчете остатков считать только первое преремещение из цеха на склад, не учитывая повторные перемещения этой партии между складами. |
|||
17
Serg_1960
11.04.16
✎
09:26
|
У автора в регистре есть измерение "Документ оприходования" (партияобразующий документ)? Если "да" - документ возврата там упоминается? Если "нет" - "ты сам себе Злобный Буратино"(цы)
|
|||
18
Vladal
11.04.16
✎
10:40
|
(17) Да. Такой реквизит есть, называется ДокументПартии, о нём я написал в (1). Документ возврата от покупателя не создаёт новую партию, он использует партию отгрузки.
Одна и та же партия проходит по цепочке: производство -> склад карантиин -> перемещение на склад отгрузки -> продажа. А при возврате на основании отгрузки покупателю создаётся возврат и та же самая партия идёт по цепочке: (пункты 4 и 5 в (1)) (продажа) -> возврат на склад карантина -> перемещение на склад отгрузки. Второе перемещение возвращенного товара увеличивает оборот товара, но мне нужно учитывать только количество партии, поступившее из производства. |
|||
19
Vladal
11.04.16
✎
11:21
|
Вроде что-то получилось.
В упрощенном виде это выглядит так: |выбрать вложенныйзапрос.регистратор поместить ПервоеПеремещение |из (выбрать минимум(партии.регистратор) как регистратор | из регистранакопления.партиитоваровнаскладах как партии | где товары.регистратор ссылка документ.перемещениетоваров | и товары.организация = &организация | и товары.номенклатура =&номенклатура | и товары.серияноменклатуры = &серия | и .... | ) как вложенныйзапрос | внутреннее соединение регистрнакопления.партиитоваровнаскладах как партитоваровнаскладах | по вложенныйзапрос.регистратор = партиитоваровнаскладах.регистратор |; и далее уже в выборке остатков склада применить фильтр по полученному документу из временной таблицы. |
|||
20
Serg_1960
11.04.16
✎
11:48
|
Даже если Вы получите все документы-регистраторы по одной единственной партии товара, где были возвраты, Вы не сможете с 100% гарантией отделить одно от другого в документе перемещения - партии не отличаются друг от друга (на то она и партия). Анализ прихода/расхода/оборотов регистра даст однозначный результат только в одном случае: когда вся партия товара была реализована на момент возврата, то последующие реализации - исключительно из возвращенного товара.
|
|||
21
Vladal
11.04.16
✎
12:09
|
(20) Задача упрощается за счет того, что один выпуск продукции - одна партия, один документ перемещения. Все остальные перемещения - "побочные" вследствие возвратов.
Нет такой ситуации, что часть товара из производства переместили на склад продаж одним перемещением, потом еще часть другим. > Анализ прихода/расхода/оборотов регистра даст однозначный результат только в одном случае: когда вся партия товара была реализована на момент возврата, то последующие реализации - исключительно из возвращенного товара. Не совсем так. У меня могут оставаться 100 единиц от первоначальной партии, еще 5 единиц вернулись. Но в остатке по этой партии мне надо показывать именно остаток партии из производства. Т.е. мой отчет покажет не 105 (это покажут типовые ведомость остатков товаров на складах и ведомость партий на складах), а 100 единиц. Задача решена. |
|||
22
Vladal
11.04.16
✎
12:11
|
+(21) А если весь товар продан на момент возврата, то отчет покажет остаток выпущенной из производства партии = 0.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |