![]() |
|
Небольшой вопрос по реализации списания партий. 🠗 (Лефмихалыч 15.03.2013 12:05) |
☑ | ||
---|---|---|---|---|
0
SeiOkami
15.03.13
✎
10:52
|
Здравствуйте все!
Это простенькая самописка. У меня вопросик по реализации списания партий. Мне интересно, как это сделать лучше и оптимальней. Так сказать "по правильному" =) Имеется учетная политика (ФИФО или ЛИФО). Имеются документы Приходники. Это и есть документы партий. Имеются документы Расходники, которые эти партии и списывают. В расходниках можно указать в ТЧ документ партии (приходник) и тогда списание должно быть сначала по этой партии, а затем уже (если не хватает) по другим партиям с учетом учетной политики, установленной на текущий период. Как это правильно организовать? Загвоздка именно в списании сначала по партиям с документов в ТЧ, а потом других. P.S.: Не надо сразу тупыми комментами закидывать. Как попало я бы уже это сделал. Мне интересно метод, который был бы "истинно верным" =) |
|||
1
Лефмихалыч
15.03.13
✎
10:56
|
А с допрасходами вопросов не возникло что ли?
|
|||
2
SeiOkami
15.03.13
✎
10:56
|
(1), Что?
|
|||
3
Лефмихалыч
15.03.13
✎
10:58
|
(2) вероятно я обознался
|
|||
4
Defender aka LINN
15.03.13
✎
10:58
|
(1) Он еще не дочитал :)
|
|||
5
SeiOkami
15.03.13
✎
11:12
|
Есть какие нибудь предложения?
Понятно, мне чистый код не нужен) Просто знать сам "алгоритм" =) |
|||
6
Лефмихалыч
15.03.13
✎
11:14
|
(5) правильно - одним запросом
|
|||
7
SeiOkami
15.03.13
✎
11:22
|
(6) тоже так подумал, но не вникну, как в этом запросе учитывать уже списанную номенклатуру из партий в ТЧ (
|
|||
8
Лефмихалыч
15.03.13
✎
11:25
|
(7) а не надо это учитывать. Это оычный почти запрос для получения партий, просто партии должны быть отсортированы сначала по приоритету, а уже потом по учетной политике. Процедура списания такая же, как по простому фифо/либо в том порядке, в котором партии отсортировались в запросе
|
|||
9
SeiOkami
15.03.13
✎
11:29
|
(8), а что выйдет, если мы сначала списали номенклатуру из партии, которая в ТЧ, а затем, в попытке "добора" не достающего количества спишем из этой же партии повторно?
|
|||
10
Лефмихалыч
15.03.13
✎
11:32
|
(9) такого быть не должно и не может. В выборке партий у тебя одна партия должна встречаться один и только один раз.
|
|||
11
SeiOkami
15.03.13
✎
11:38
|
Т.е. что-то вроде этого?
ВЫБРАТЬ РасходнаяНакладнаяТовары.Номенклатура, СУММА(РасходнаяНакладнаяТовары.Количество) КАК Количество, РасходнаяНакладнаяТовары.ДокументПартии ПОМЕСТИТЬ ТоварыКСписанию ИЗ Документ.РасходнаяНакладная.Товары КАК РасходнаяНакладнаяТовары ГДЕ РасходнаяНакладнаяТовары.Ссылка = &Ссылка И НЕ РасходнаяНакладнаяТовары.Номенклатура.Услуга СГРУППИРОВАТЬ ПО РасходнаяНакладнаяТовары.Номенклатура, РасходнаяНакладнаяТовары.ДокументПартии ; //////////////////////////////////////////////////////////////////////////////// ВЫБРАТЬ ТоварыКСписанию.Номенклатура КАК Номенклатура, ТоварыКСписанию.Количество КАК КоличествоСписать, ОстаткиНоменклатурыОстатки.ДокументПартии, ЕСТЬNULL(ОстаткиНоменклатурыОстатки.КоличествоОстаток, 0) КАК КоличествоОстатокПартии, ВЫБОР КОГДА ТоварыКСписанию.ДокументПартии = ОстаткиНоменклатурыОстатки.ДокументПартии ТОГДА ИСТИНА ИНАЧЕ ЛОЖЬ КОНЕЦ КАК ПартияИзТЧ ИЗ ТоварыКСписанию КАК ТоварыКСписанию ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ОстаткиНоменклатуры.Остатки( &ДатаДокумента, Номенклатура В (ВЫБРАТЬ ТоварыКСписанию.Номенклатура ИЗ ТоварыКСписанию КАК ТоварыКСписанию)) КАК ОстаткиНоменклатурыОстатки ПО ТоварыКСписанию.Номенклатура = ОстаткиНоменклатурыОстатки.Номенклатура УПОРЯДОЧИТЬ ПО ПартияИзТЧ УБЫВ, ОстаткиНоменклатурыОстатки.ДокументПартии.Дата ИТОГИ ПО Номенклатура |
|||
12
Лефмихалыч
15.03.13
✎
11:39
|
(11) что-то вроде, только работающее
|
|||
13
SeiOkami
15.03.13
✎
11:41
|
Понятно, буду пробовать. Спасибо =)
|
|||
14
Лефмихалыч
15.03.13
✎
11:51
|
Кстати, смысл этого задания в его самостоятельном решении
|
|||
15
SeiOkami
15.03.13
✎
11:56
|
(14), конечно, я не спорю. Я и не хотел, чтобы мне написали решение. Просто просил совета. А то я бы тут запрос сейчас нагромоздил... =)
|
|||
16
Defender aka LINN
15.03.13
✎
11:57
|
(15) Ты бы посмотрел, у кого ты его спросил :)))
|
|||
17
SeiOkami
15.03.13
✎
11:59
|
Упс, тогда всё ясно)
|
|||
18
Baracus
15.03.13
✎
12:00
|
(17), как думаешь, перезвонят?:)
|
|||
19
SeiOkami
15.03.13
✎
12:02
|
(18), ну дело не в этом. Мне то самому интересно как эту задачку наикрасивейши решить. А остальное уже на втором плане)
|
|||
20
TarasKa
15.03.13
✎
12:03
|
(18) Почему бы и нет, если решит хорошо =)
P.S. Какое-то Тандер-пати получилось))) |
|||
21
Baracus
15.03.13
✎
12:03
|
(19) Волчья мудрость :)
|
|||
22
Poysoner
15.03.13
✎
12:04
|
(20) Карпаратиффка)
|
|||
23
Лефмихалыч
15.03.13
✎
12:04
|
(20) ага, не хватает только представителей сопровождения
|
|||
24
Джинн
15.03.13
✎
12:29
|
(0) Добавить в набор списываемых партий реквизит Приоритет. Для указанной партии приоритет 0. Для остальных 1. Сортировка Приоритет-ДатаПартии. Списываем последовательно.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |