|
два FIFO по двум измерениям одного регистра. | ☑ | ||
---|---|---|---|---|
0
и тут и там
02.10.16
✎
15:46
|
Имеем:регистр накопления "Товары"
Измерений три: -Сертификат (тип:Справочник.Сертификаты) -Документ поступления (тип:Документ) -Номенклатура(тип:справочник.номенклатура) ресурсы: количество (число(15,3)) проблема с расходом. На вход в запрос передаю ТЗ с двумя типизированными колонками "номенклатура" и "количество" которое нужно списать на выходе хотелось бы получить результат запроса в котором выбытие по было распределено по остальным двум измерениям по методу ФИФО. под моментом времени прихода фифо понимается ДАТА у документа поступления и реквизит ДатаПоступления у Сертификата. по одному дополнительному измерения могу построить списание по фифо, но вот по двум сразу - чтото никак. ухожу в минус то по одному то по другому измерению. Но верится мне что это возможно. Помогите плз как это сделать и вообще возможно ли это? Конфигурация - самописка учебная. |
|||
1
Aleksey
02.10.16
✎
15:50
|
Ну или запрос, или доп поле для сортировки
|
|||
2
и тут и там
02.10.16
✎
15:53
|
(1) то есть в одном запросе это реально сделать?
|
|||
3
KSergey1C
02.10.16
✎
15:54
|
(0) Возможно, но сложнно.
|
|||
4
KSergey1C
02.10.16
✎
15:55
|
(2) не в запросе на пордок проще.
|
|||
5
Serginio1
02.10.16
✎
18:44
|
||||
6
Лефмихалыч
02.10.16
✎
18:48
|
(0) не вижу проблемы - в запросе сортируешь сначала по Сертификат.ДатаПоступления, потом по ДокументПостулпение.ПоЧёмТамНадоПостулпенияСортировать
или проблема в том, что в задании не сказано, что делать, если по одному сертификату более одного докумета поступления и ты просто не знаешь, по чём документы сортировать? |
|||
7
Злопчинский
02.10.16
✎
18:51
|
Очевидно, что имея две НЕЗАВИСИМЫЕ даты, в общем случае обеспечить одновременное фифо не удастся
??? |
|||
8
KSergey1C
02.10.16
✎
18:54
|
(6) Сортировать ты можешь только в выборке даных, тут тоньше надо.
|
|||
9
KSergey1C
02.10.16
✎
18:55
|
(7) Почему? Сначала выбирается самый первый документ, а потом самый первый сертификат поэтому документу.
|
|||
10
Лефмихалыч
02.10.16
✎
18:57
|
(8) Какие так, например, могут быть тоньше? Все просто, как апельсин. Если по одному сертификату может быть более одного документа поступления, то проблема сводится к тому, чтобы определить порядок сортировки документов внутри сертификата.
|
|||
11
Злопчинский
02.10.16
✎
18:59
|
(9) в условии задачи нигде не увидел явного указания что дата поступления сертификата как-то привязана к дате документа
Что конкретно понимает автор под датой поступления сертификата - нам неведомо |
|||
12
Злопчинский
02.10.16
✎
19:01
|
Задача решаема тогда, когда например даты поступления сертификатов не позже дат документов
|
|||
13
Злопчинский
02.10.16
✎
19:03
|
Пункт 12 относится к парам документы сертификат, которые есть в записях приходов
|
|||
14
KSergey1C
02.10.16
✎
19:05
|
(10) Ну и что? Это две не связанные сортировки.
Единсвенное не написан приоритет сначала делаем сортировку по дает документа а потом по сретификату или наоборот. |
|||
15
KSergey1C
02.10.16
✎
19:06
|
(11) Ну и что? Это две не связанные сортировки.
Единсвенное не написан приоритет сначала делаем сортировку по дает документа а потом по сретификату или наоборот. |
|||
16
KSergey1C
02.10.16
✎
19:08
|
(10) НАдо сначала отсортировать, а потом сделать ФИФО, а сортировку ты можешь сделать только для результата запроса.
Как ты ФИФО сделашь? |
|||
17
Лефмихалыч
02.10.16
✎
19:10
|
(16) что за муть ты понимаешь под "сделать ФИФО"? В моем понимании списание по ФИФО осуществляется как раз при обходе выборки и с той точки зрения все сводится тупо к сортировке.
|
|||
18
Злопчинский
02.10.16
✎
19:11
|
(15) с точки зрения минимизации потерь товара первой по фифо следует делать по сертификата
Дабы в итоге не остался товар с окончившимся сроком сертификата |
|||
19
KSergey1C
02.10.16
✎
19:12
|
(17) В моем понимании результатом запроса должны быть выборка которую можно сразу выгрузить в регистр накоплений.
|
|||
20
Злопчинский
02.10.16
✎
19:14
|
Пока автор явно не скажет что такое дата поступления сертификата - дальнейшее бесполезно
Ибо я например под датой поступления сертификата понимаю дату начала действия\выдачи сертификата, потому как это критично для продаж |
|||
21
KSergey1C
02.10.16
✎
19:17
|
(18) Это явно учебная задача. ТУт точек зрения быть не может.
Собсвенно как могут приходить товары по одному документу по разным сертификатам. Я такое только на пивзаводе встречал, в котором на каждый розлив свой сертификат и при отгрузке могут быть товары по разным сертификатам. Соотсвенно у покупателей для ЕГАИС такое может потребоваться, а вот у организаций которые снабжают всякие школы, больницы, сертификаты меняются редко, онии их вообще текстом в номенклатуру прописывают. |
|||
22
Злопчинский
02.10.16
✎
19:21
|
(21) фармация
Пришло сколько то аспириновой. Разные даты изготовления, разные серии, разные сертификаты |
|||
23
Злопчинский
02.10.16
✎
19:24
|
Пока автор не напишет что такое дата поступления сертификата - все полная фигня
Автора вообще надо забанить за неуважение к сообществв |
|||
24
Злопчинский
02.10.16
✎
19:26
|
Например по разным бокам пришёл товар с одинаковым сертификатом
В этом случае дата поступления сертификата может быть дата первого появления сертификата в приходе |
|||
25
Лефмихалыч
02.10.16
✎
19:26
|
(19) может - напрасно? Да даже и в этом случае это вопрос сортировки и условия, отсеивающего лишние записи. При этом условие обязано опираться на эту сортировку.
|
|||
26
Злопчинский
02.10.16
✎
19:27
|
Итого на данный момент я могу назвать как минимум ТРИ разных варианта определения что такое дата поступления сертифтката
|
|||
27
Лефмихалыч
02.10.16
✎
19:28
|
(23) узбагойзя. Что тебе мешает понимать дату поступления сертификата как тупо значение реквизита Сертификат.ДатаПоступления? Какая разница, что там за физический смысл этой даты?
|
|||
28
Злопчинский
02.10.16
✎
19:28
|
Итого пока в адрес автора можно сказать лишь одно
Кг\ам |
|||
29
Злопчинский
02.10.16
✎
19:30
|
(27) в общем случае ничего не мешает, но тогда задача в общем случае не имеет решения удовлетворяющего одновременность фифо
|
|||
30
KSergey1C
02.10.16
✎
19:31
|
(22) Не спорю, так может быть. Как быть если товар с сертификатом который позже - пришел раньше.
С точки зрения упр. желательно списать тот товар у которого срок годности быстрее заканчивается, а сточки зрения налогового учета надо списать более раннюю партию. Тут как постановщик задачи скажт, так и делать. |
|||
31
KSergey1C
02.10.16
✎
19:33
|
(25) Еще раз: какую сортировку? Сортировать ты можешь лишь результат запроса. А тебе в запросе надо получить конечный результат.
|
|||
32
и тут и там
02.10.16
✎
19:37
|
(11) Действительно не привязано. дата сертификата может быть и до поступления а может быть и позже.
|
|||
33
KSergey1C
02.10.16
✎
19:40
|
(32) Вот и определись с приоритетеом.
Сначала выбираем самый первый сертификат, а потом самый первый документ связанный с этим сертификатом или сначала самый первый документ и по нему самый первый сертификат. |
|||
34
и тут и там
02.10.16
✎
20:05
|
(23) За что? (28) Давайте не будем торопится с обзываниями. я сейчас все поясню что нужно.
даты друг к другу не привязаны. может быть раньше может позже. дата сертификата = дата начала действия сертификата и она всегда равна дате выдачи. (для примера) на один сертификат может существовать несколько документов прихода (партий) и наоборот в одном документе прихода могут быть одинаковые номенклатуры по разным сертификатам. то есть еще проще говоря: имеем три абсолютно независимых измерения. одно - материальное (номенклатура), два других измерения (сертификат и документ прихода) нематериальны, но упорядочены по дате. (Документ по Дате Документа, сертификат по ДатеСертификата) Документ прихода осуществляет делает движения по по измерениям. Партия = ссылка на сам документ прихода Номенклатура = реквизит ТЧ документа Приход Сертификат = реквизит ТЧ документа Приход Если на момент прихода сертификат не получен, то элемент создается с пустой датой. после поступления сертификата в элементе справочника Сертификаты ставится дата. если один товар пришел в одном доукменте поступления но позже выяснилось что сертификатов два и больше - то документ прихода корерктируется. в запросе расхода сертификаты с пустой даты не учавствуют ни в каких отборах первые наброски на бумаге показывают что решений может быть несколько - тогда достаточно получить одно решение и приоритетом в скорейшем списании выступает сертификат. |
|||
35
KSergey1C
02.10.16
✎
20:12
|
(34) Ты лучше расскажи где такие задачи.
Для практики тебе проще сделать простую выборку по остаткам, и распределение по ФИФО сделать кодом, - тогда это элементарная задача. |
|||
36
Лефмихалыч
02.10.16
✎
20:12
|
(31) "в запросе надо получить конечный результат"
кто сказал? |
|||
37
KSergey1C
02.10.16
✎
20:14
|
(36) САБЖ: результат запроса в котором выбытие по было распределено по остальным двум измерениям по методу ФИФО.
|
|||
38
Лефмихалыч
02.10.16
✎
20:15
|
(29) мне кажется, ты слишком близко к сердцу принимаешь слово "одновременно" в данном случае
|
|||
39
Лефмихалыч
02.10.16
✎
20:16
|
(34) если не пудрить себе мозг магическим запросом, который сам всё вернет, то задача тривиальная. Такая же, как обычное партионное списание, только цикла два, а не один
|
|||
40
Лефмихалыч
02.10.16
✎
20:17
|
(37) из этого не следует, что в этом результате должны быть только те партии, которые надо списать.
|
|||
41
KSergey1C
02.10.16
✎
20:21
|
(39) Два циклу будет все равно, один по товарам к списанию, другой по остаткам.
А для порядка достаточно сделать сортировку в запросе. |
|||
42
и тут и там
02.10.16
✎
20:28
|
(35) нуу я встречал подобные задачи у пищевиков, у фармацевтов, у таможенных декларантов. выходил из ситуации по разному и не всегда красивым решением. то есть подобный пример (два партионных учета на одном регистре) у меня давно созрела, и потребность в решении до сих пор есть (иначе я бы и забил и не парил мозг форумчанам) - но вот решить я ее не мог. потому и спросил мнение
|
|||
43
и тут и там
02.10.16
✎
20:30
|
(41) (39) Спасибо всем, буду подумать еще немного. Если запросом победу не одержу - буду делать кодом.
положительный итог в ветке отпишу. если вдруг у кого нибудь было чтото подобное прошу делится. У остальных прошу извинения за беспокойство. |
|||
44
KSergey1C
02.10.16
✎
20:36
|
(43) Ты это серьезно? Кодом у тебя будет десять строк на запрос и 15-20 на код. И все будет четко и понятно.
Запрос у тебя будет на сотню строк минимум и будет неочевидным тем кто попытается его прочитать. Запрос может быть интересн только в качество проверки твоих знаний. Еще раз: запрос написать можно но будет сложный. Не скажу что самый сложный из тех с каким я сталкивался, но и писать такое за бесплатно не интересно. |
|||
45
Злопчинский
02.10.16
✎
21:48
|
(32) отвечаю: в таких условиях обеспечить одновременное списание по фифо и сертификатов и по документам поступления - невозможно
|
|||
46
KSergey1C
02.10.16
✎
21:51
|
(45) в (34) написано: тогда достаточно получить одно решение и приоритетом в скорейшем списании выступает сертификат.
|
|||
47
Злопчинский
02.10.16
✎
22:01
|
(34) автор, ты - дятел
В регистре накопления с несколькими измерениями не может быть независимых измерений Остаток (как и движение) ВСЕГДА описывается совокупностью всех измерений, а не каким-то одним измерением Если ты из рн с 3 измерениями выдергиваешь остаток по двум или одному измерению - это по сути уже не твой рН, а другой + с меньшим количеством измерений (схлопывагие измерения) это как трехмерный куб в проекции на плоскость - ТВ теряешь инфу про третее измерение. Поэтому у тебя и прут минуса потому что ты пытаещься остаток получить по меньшему количеству измерентй , а потом суешь получившуюся инфу в ьои измерения, не согласовав их друг с другом И пусть там Левмихалыч хоть обсортируется хоть в запросе, хоть в цикле - одновременно фифо по приходам и сертификата ты не получишь, или получишь, но регистр будет не закрыт с минусами как у тебя и есть |
|||
48
Злопчинский
02.10.16
✎
22:05
|
(46) я сказал что автор дятел. В (0) - требование одновременности фифо, в (34) - приоритет серьиыиката . если делать приоритет сертификата что логично и я это выше указал - то можно сделать только фифо по сертификатам, по приходам не будет никакого фифо
Итого : 34 противоречит 0, автор дятел |
|||
49
Злопчинский
02.10.16
✎
22:06
|
Дятел это не унизить, а просто констатации текущей ситуации
|
|||
50
DrShad
02.10.16
✎
22:09
|
(49) какие люди на снеговика зашли
сколько лет, сколько зим |
|||
51
DrShad
02.10.16
✎
22:10
|
(48) возможно сделать и по серийнику и по документу одновременно, но придется помучаться
автор нормальный |
|||
52
Злопчинский
02.10.16
✎
22:13
|
Для одновременности фифо можно вывернуться, но это требует определённых свойств товара
Если товар разных сертификатов и разных приходов неотличим физически, то делаем два рН: сертификат-товар и приход-товар И теперь когда измерения приход и сертификат действительно являются независимыми, так как принадлежат разным рН - теперь по каждому рН можно одновременно делать фифо - фифо и по сертификата и фифо по приходу Понятно что если из этих двух рН попытаться получить остаток склеиванием для сертификат-приход-товар - то ничего путного не выйдет |
|||
53
Злопчинский
02.10.16
✎
22:13
|
(51) и как?
|
|||
54
DrShad
02.10.16
✎
22:15
|
(53) ну как сделать ФИФО в запросе ты уже знаешь?
|
|||
55
Злопчинский
02.10.16
✎
22:19
|
(51) не получится
Достаточно вместо виртуальност сертификатов и приходов использовать осязаемые физические величины, например Если товар красный - то он угловатый, а если товар зелёный - то он гладко сферический И ты тут хоть укакайся, но ты никак не сможешь взять со склада товар который зелёный и угловатый |
|||
56
Злопчинский
02.10.16
✎
22:20
|
(54) да по барабану в запросе ли, выборкой, иди как-то иначе
|
|||
57
KSergey1C
02.10.16
✎
22:30
|
(48) ПОчему нельзя натий первый сертификат и потом перебирать документы по этому сертификату?
|
|||
58
и тут и там
02.10.16
✎
22:41
|
(47) Сергей, Прошу быть корректным в развешивании ярлыков. я в топикстарте спросил "А возможно ли вообще?" зачем обзываться.
высказывание "независимость трех измерений" имел в виду что состояние в наборе записей из состояния одного не возможно предположить состояние другого. т.е. то что остатки и движения хранится уже совместно со всеми измерениями мне известно. |
|||
59
и тут и там
02.10.16
✎
23:15
|
(48) сергей, ну почему не возможно?
таблица остатков представляет собой в моем случае трехмерный куб. (номенклтура+Документ поступления + сертификат) и моя задача и представляет собой то самое "СУДОКУ" где зная количество по горизонтали количество по вертикали и количество по глубине - получить требуемое количество с нормальным распределением, чтобы показатся более понятным - иначе объяснсю - в городе есть улицы, дома и квартиры. создаем остаточный регистр накопления. измерения:улица, дом, квартира. селим туда разное количество людей. и того допустим у нас 100 людей на и того у нас получилось 10 улиц, домов всего 10. квартир в домах количество разное. потом нам нужно выбрать людей. нам нужно получить с улицы Х 10 обезличеных человек с приоритетом от наименьшего номера дома и наименьшего номера квартиры. результатом будет так: с улицы такой то: 1 человек из дома №1 кв №1 3 чел из дома №1 кв 20 5 чел из дома №1 кв 30 1 чел из дома №2 кв 1 математически мне кажется эта задача разрешимой. я б даже сказал что в любой ситуации всегда можно будет найти как минимум одно решение. чтобы нигде в минус не ушло. вот это распределение в запросе и хочу получить. |
|||
60
Злопчинский
02.10.16
✎
23:24
|
(57) можно, но это не будет фифо по документам, так как по другому сертификату на этот же товар будут болеирангие документы прихода
|
|||
61
Злопчинский
02.10.16
✎
23:27
|
(59) потому что гладиолус ;-)
Что непонятного в (55) ? |
|||
62
Злопчинский
02.10.16
✎
23:32
|
(59) обращаются внимание
Что мы ещё все решаемых задачу одновременности фифо В твоём примере условие одновременности фифо для дома и для квартиры не выполнено, квартиры не выбраны по фифо |
|||
63
DrShad
02.10.16
✎
23:33
|
(61) извини, но в (55) бред клюшечника
|
|||
64
и тут и там
02.10.16
✎
23:40
|
(55) вот вот вот!! начинает таки доходить моя мысль.
нам потребно конкретного товара просто число! например Нам говорят - нам надо 10 томатов. а мы должны мудрой адинэской сказать "ИХ ЕСТЬ У НАС !" и уже в расходдный ордер писать: взять 3 томата красных и угловатых и 7 томатов зеленых и круглых |
|||
65
Злопчинский
02.10.16
✎
23:43
|
(63) возможно
Давай уточним, решаем задачу обеспечения одновременности фифо по измерению сертификат и по измерению документ прихода при списании товара по рн сертификат-документприхода-товар ? |
|||
66
Злопчинский
02.10.16
✎
23:47
|
(64) неверно
10 томатов мы всегда сможем набрать, но мы не сможем их набрать с соблюдением требований потому что ..см мой следующий пост |
|||
67
Злопчинский
02.10.16
✎
23:52
|
... Потому что по исходным данным
Красные раньше зеленых Гладкосферические раньше угловатых Поэтому требуемое количество Ты должен набрать из КрасныхГладкосферических и ЗеленыхУгловатых А таких на остатках нет |
|||
68
Злопчинский
02.10.16
✎
23:54
|
В частных случаях решение есть,
В общем случае - нет |
|||
69
Torquader
03.10.16
✎
00:13
|
Граждане!
Вопрос "одновременности" нескольких измерений сводится к необходимости введения оператора сравнения на множестве, состоящем из нескольких чисел (в вашем случае - два). Как вы хорошо понимаете, без проекции (или отображения) этого множества на упорядоченное (то есть взаимнооднозначное отображение многомерного пространства на прямую) это выполнить невозможно. И, в итоге, у вас должен получиться один ФИФО, а не несколько. |
|||
70
Злопчинский
03.10.16
✎
00:21
|
(69) понимаешь, они это не понимают... по крайней мере ТС
|
|||
71
Злопчинский
03.10.16
✎
00:27
|
Конкретный пример для совсем уж ...
РН, Товар-Сертификат(ДатаВыдачи)-Документ(ДатаПрихода) При списании товара необходимо обеспечить ФИФО сертификатов(по дате выдачи) и ФИФО Документов(по дате прихода) 9 число, на остатках - ничего нет. 10 число: Приход от 10числа, Товар1, Сертификат от 4числа, +4шт 12 число: Приход от 12числа, Товар1, Сертификат от 1числа, +10шт 13 число: заявка на Расход, Товар1, -6шт. Напишите движения по списанию товара. |
|||
72
Злопчинский
03.10.16
✎
00:29
|
||||
73
Torquader
03.10.16
✎
01:16
|
Вопрос - а два одинаковых поступления одной и той же даты и одного и того же сертификата мы как списываем ? Поровну, или наугад ?
|
|||
74
Злопчинский
03.10.16
✎
01:22
|
(73) ты такие сложные вопросы не мути, а то бросятся тебе объяснять, а на вышетривиальное - сделают вид что не заметили...
|
|||
75
Torquader
03.10.16
✎
01:27
|
(74) Просто, если допускаются совпадения - то нужно ЧУМ (частично упорядоченное множество) - это намного проще, чем полное отношение порядка.
То есть, мы вводим коэффициенты по значимости измерений и определяем расстояние с учётом данных коэффициентов - полученное значение можно использовать как частичный порядок. Конечно, в реальности - фигня получится, но в теории всё будет также красиво как "сферонь". |
|||
76
KSergey1C
03.10.16
✎
03:04
|
(60) Ну и что? Будет и будет. Просто определяется приоритете документы или сертификаты и вперед. Автор определился.
|
|||
77
KSergey1C
03.10.16
✎
03:09
|
(71)
Опираясь на слова в (34) "приоритетом в скорейшем списании выступает сертификат." Берем самый первый сертификат, т.е. Сертификат от 1числа, Ищим в остатках документы связанные сэотим сертификатом Приход от 12числа Поэтой аналитике есть 10 штук - списываем 6 штук. |
|||
78
Злопчинский
03.10.16
✎
03:09
|
(76)(76) может я и пропустил, но что-то я не узрел, что автор "определился", (0) и (34) противоречат, уточнений не поступало. Если нет требования одновременности фифо для разных измерений - то и проблемы вообще нет.
|
|||
79
KSergey1C
03.10.16
✎
03:10
|
(72) Векторную графику надо использовать, а не маяться ерундой.
|
|||
80
Злопчинский
03.10.16
✎
03:11
|
(77) "приоритет" противоречит "одновременному фифо". (34) нельзя имхо принимать как УТОЧНЕНИЕ (0) - ибо это в принципе разные задачи получаются, а о смене задачи - надо уведомлять явно - как отмена старой задачи, новая задача вот она - а в новой задаче уже "приоритетность" сертификата играет
|
|||
81
Злопчинский
03.10.16
✎
03:15
|
и таможенников и фармацевтов и прочая хрень - наш внутренний учет (сертификат+приход) нахрен не будет интересовать.
упомянутых будет интересовать фармацевтов: а сколько по такому-то сертификату поступило и скольо отпущено? таможня - аналогично по ГТД и нет никакой необходимости ни одновременного фифо, ни приоритет ов. ТС выбирает для своего РН - нужную схему списания - ФИФО по какому-то измерению например (остальные - ведомые по приоритетам). Для получения ответов для фармацевтов/nfvj;yz - все что надо - собрать движения по нужному измерени и все. |
|||
82
KSergey1C
03.10.16
✎
03:16
|
(80) Давай начнем с того, что термин "одновременное фифо" - ввел ты, а не автор. И это не какой-то академический термин, однозначно определяемый, что он значит понимаешь только ыт сам, вополне возмжно что оты опд ним имеешь ввиду: "клоуны хохотуны в цирке на бульваре".
|
|||
83
Злопчинский
03.10.16
✎
03:21
|
(82) "в котором выбытие по было распределено по остальным двум измерениям по методу ФИФО. "
- возможно что я страый маразматик, но вот это я понимаю как хотелку "одновременного фифо по двум измерениям", а так как в выбытии два измерения всегда связаны - ну никак не получится по "остальным двум измерениям по методу ФИФО". скорее всего большая простыня этой ветки совершенно лишняя, и все что хотел автор это "фифо по одному измерению, а по второму фифо в рамках первого измерения". |
|||
84
KSergey1C
03.10.16
✎
04:34
|
(83) ДОстаточно ввести приоритете одного измерения и все становится в порядке.
|
|||
85
Torquader
03.10.16
✎
14:41
|
Одновременное FIFO можно рассматривать только в том случае, если в одном регистре мы ведём учёт по одному параметру (скажем, документ поступления), а в другом - по другому (дата сертификата), тогда у нас в разных регистрах будет различное списание партий согласно установленному приоритету - но это допустимо только тогда, когда для раной отчётности нам нужен совершенно различный виртуальный учёт.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |