Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

два FIFO по двум измерениям одного регистра.

два FIFO по двум измерениям одного регистра.
Я
   и тут и там
 
02.10.16 - 15:46
Имеем:регистр накопления "Товары"
Измерений три:
-Сертификат (тип:Справочник.Сертификаты)
-Документ поступления (тип:Документ)
-Номенклатура(тип:справочник.номенклатура)

ресурсы: количество (число(15,3))

проблема с расходом. На вход в запрос передаю ТЗ с двумя типизированными колонками "номенклатура" и "количество" которое нужно списать
на выходе хотелось бы получить результат запроса в котором выбытие по было распределено по остальным двум измерениям по методу ФИФО. под моментом времени прихода фифо понимается ДАТА у документа поступления и реквизит ДатаПоступления у Сертификата.

по одному дополнительному измерения могу построить списание по фифо, но вот по двум сразу - чтото никак. ухожу в минус то по одному то по другому измерению. Но верится мне что это возможно.

Помогите плз как это сделать и вообще возможно ли это?

Конфигурация - самописка учебная.
 
 
   Aleksey
 
1 - 02.10.16 - 15:50
Ну или запрос, или доп поле для сортировки
   и тут и там
 
2 - 02.10.16 - 15:53
(1) то есть в одном запросе это реально сделать?
   KSergey1C
 
3 - 02.10.16 - 15:54
(0) Возможно, но сложнно.
   KSergey1C
 
4 - 02.10.16 - 15:55
(2) не в запросе на пордок проще.
   Serginio1
 
5 - 02.10.16 - 18:44
   Лефмихалыч
 
6 - 02.10.16 - 18:48
(0) не вижу проблемы - в запросе сортируешь сначала по Сертификат.ДатаПоступления, потом по ДокументПостулпение.ПоЧёмТамНадоПостулпенияСортировать

или проблема в том, что в задании не сказано, что делать, если по одному сертификату более одного докумета поступления и ты просто не знаешь, по чём документы сортировать?
   Злопчинский
 
7 - 02.10.16 - 18:51
Очевидно, что имея две НЕЗАВИСИМЫЕ даты, в общем случае обеспечить одновременное фифо не удастся
???
   KSergey1C
 
8 - 02.10.16 - 18:54
(6) Сортировать ты можешь только в выборке даных, тут тоньше надо.
   KSergey1C
 
9 - 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 относится к парам документы сертификат, которые есть в записях приходов
   KSergey1C
 
14 - 02.10.16 - 19:05
(10) Ну и что? Это две не связанные сортировки.

Единсвенное не написан приоритет сначала делаем сортировку по дает документа а потом по сретификату или наоборот.
   KSergey1C
 
15 - 02.10.16 - 19:06
(11) Ну и что? Это две не связанные сортировки.

Единсвенное не написан приоритет сначала делаем сортировку по дает документа а потом по сретификату или наоборот.
   KSergey1C
 
16 - 02.10.16 - 19:08
(10) НАдо сначала отсортировать, а потом сделать ФИФО, а сортировку ты можешь сделать только для результата запроса.

Как ты ФИФО сделашь?
   Лефмихалыч
 
17 - 02.10.16 - 19:10
(16) что за муть ты понимаешь под "сделать ФИФО"? В моем понимании списание по ФИФО осуществляется как раз при обходе выборки и с той точки зрения все сводится тупо к сортировке.
   Злопчинский
 
18 - 02.10.16 - 19:11
(15) с точки зрения минимизации потерь товара первой по фифо следует делать по сертификата

Дабы в итоге не остался товар с окончившимся сроком сертификата
   KSergey1C
 
19 - 02.10.16 - 19:12
(17) В моем понимании результатом запроса должны быть выборка которую можно сразу выгрузить в регистр накоплений.
   Злопчинский
 
20 - 02.10.16 - 19:14
Пока автор явно не скажет что такое дата поступления сертификата - дальнейшее бесполезно

Ибо я например под датой поступления сертификата понимаю дату начала действия\выдачи сертификата, потому как это критично для продаж
   KSergey1C
 
21 - 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)  в общем случае ничего не мешает, но тогда задача в общем случае не имеет решения удовлетворяющего одновременность фифо
   KSergey1C
 
30 - 02.10.16 - 19:31
(22) Не спорю, так может быть. Как быть если товар с сертификатом который позже - пришел раньше.

С точки зрения упр. желательно списать тот товар у которого срок годности быстрее заканчивается, а сточки зрения налогового учета надо списать более раннюю партию.

Тут как постановщик задачи скажт, так и делать.
 
 
   KSergey1C
 
31 - 02.10.16 - 19:33
(25) Еще раз: какую сортировку? Сортировать ты можешь лишь результат запроса. А тебе в запросе надо получить конечный результат.
   и тут и там
 
32 - 02.10.16 - 19:37
(11) Действительно не привязано. дата сертификата может быть и до поступления а может быть и позже.
   KSergey1C
 
33 - 02.10.16 - 19:40
(32) Вот и определись с приоритетеом.

Сначала выбираем самый первый сертификат, а потом самый первый документ связанный с этим сертификатом или сначала самый первый документ и по нему самый первый сертификат.
   и тут и там
 
34 - 02.10.16 - 20:05
(23) За что? (28) Давайте не будем торопится с обзываниями. я сейчас все поясню что нужно.

даты друг к другу не привязаны. может быть раньше может позже.

дата сертификата = дата начала действия сертификата и она всегда равна дате выдачи. (для примера)

на один сертификат может существовать несколько документов прихода (партий)
и наоборот в одном документе прихода могут быть одинаковые номенклатуры по разным сертификатам.

то есть еще проще говоря: имеем три абсолютно независимых измерения. одно - материальное (номенклатура), два других измерения (сертификат и документ прихода) нематериальны, но упорядочены по дате. (Документ по Дате Документа, сертификат по ДатеСертификата)
Документ прихода осуществляет делает движения по по измерениям.
Партия = ссылка на сам документ прихода
Номенклатура = реквизит ТЧ документа Приход
Сертификат = реквизит ТЧ документа Приход
Если на момент прихода сертификат не получен, то элемент создается с пустой датой. после поступления сертификата в элементе справочника Сертификаты ставится дата. если один товар пришел в одном доукменте поступления но позже выяснилось что сертификатов два и больше - то документ прихода корерктируется.


в запросе расхода сертификаты с пустой даты не учавствуют ни в каких отборах

первые наброски на бумаге показывают что решений может быть несколько - тогда достаточно получить одно решение и приоритетом в скорейшем списании выступает сертификат.
   KSergey1C
 
35 - 02.10.16 - 20:12
(34) Ты лучше расскажи где такие задачи.

Для практики тебе проще сделать простую выборку по остаткам, и распределение по ФИФО сделать кодом, - тогда это элементарная задача.
   Лефмихалыч
 
36 - 02.10.16 - 20:12
(31) "в запросе надо получить конечный результат"
кто сказал?
   KSergey1C
 
37 - 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) из этого не следует, что в этом результате должны быть только те партии, которые надо списать.
   KSergey1C
 
41 - 02.10.16 - 20:21
(39) Два циклу будет все равно, один по товарам к списанию, другой по остаткам.

А для порядка достаточно сделать сортировку в запросе.
   и тут и там
 
42 - 02.10.16 - 20:28
(35) нуу я встречал подобные задачи у пищевиков, у фармацевтов, у таможенных декларантов. выходил из ситуации по разному и не всегда красивым решением. то есть подобный пример (два партионных учета на одном регистре) у меня давно созрела, и потребность в решении до сих пор есть (иначе я бы и забил и не парил мозг форумчанам) - но вот решить я ее не мог. потому и спросил мнение
   и тут и там
 
43 - 02.10.16 - 20:30
(41) (39) Спасибо всем, буду подумать еще немного. Если запросом победу не одержу - буду делать кодом.

положительный итог в ветке отпишу. если вдруг у кого нибудь было чтото подобное прошу делится. У остальных прошу извинения за беспокойство.
   KSergey1C
 
44 - 02.10.16 - 20:36
(43) Ты это серьезно? Кодом у тебя будет десять строк на запрос и 15-20 на код. И все будет четко и понятно.

Запрос у тебя будет на сотню строк минимум и будет неочевидным тем кто попытается его прочитать.

Запрос может быть интересн только в качество проверки твоих знаний.

Еще раз: запрос написать можно но будет сложный.

Не скажу что самый сложный из тех с каким я сталкивался, но и писать такое за бесплатно не интересно.
   Злопчинский
 
45 - 02.10.16 - 21:48
(32) отвечаю: в таких условиях обеспечить одновременное списание по фифо и сертификатов и по документам поступления - невозможно
   KSergey1C
 
46 - 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
Дятел это не унизить, а просто констатации текущей ситуации
   DrShad
 
50 - 02.10.16 - 22:09
(49) какие люди на снеговика зашли
сколько лет, сколько зим
   DrShad
 
51 - 02.10.16 - 22:10
(48) возможно сделать и по серийнику и по документу одновременно, но придется помучаться

автор нормальный
   Злопчинский
 
52 - 02.10.16 - 22:13
Для одновременности фифо можно вывернуться, но это требует определённых свойств товара
Если товар разных сертификатов и разных приходов неотличим физически, то делаем два рН: сертификат-товар и приход-товар
И теперь когда измерения приход и сертификат действительно являются независимыми, так как принадлежат разным рН - теперь по каждому рН можно одновременно делать фифо - фифо и по сертификата и фифо по приходу

Понятно что если из этих двух рН попытаться получить остаток склеиванием для сертификат-приход-товар - то ничего путного не выйдет
   Злопчинский
 
53 - 02.10.16 - 22:13
(51) и как?
   DrShad
 
54 - 02.10.16 - 22:15
(53) ну как сделать ФИФО в запросе ты уже знаешь?
   Злопчинский
 
55 - 02.10.16 - 22:19
(51) не получится
Достаточно вместо виртуальност сертификатов и приходов использовать осязаемые физические величины, например
Если товар красный - то он угловатый, а если товар зелёный - то он гладко сферический
И ты тут хоть укакайся, но ты никак не сможешь взять со склада товар который зелёный и угловатый
   Злопчинский
 
56 - 02.10.16 - 22:20
(54) да по барабану в запросе ли, выборкой, иди как-то иначе
   KSergey1C
 
57 - 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) обращаются внимание
Что мы ещё все решаемых задачу  одновременности фифо

В твоём примере условие одновременности фифо для дома и для квартиры не выполнено, квартиры не выбраны по фифо
   DrShad
 
63 - 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
В частных случаях решение есть,
В общем случае - нет
   Torquader
 
69 - 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
   Torquader
 
73 - 03.10.16 - 01:16
Вопрос - а два одинаковых поступления одной и той же даты и одного и того же сертификата мы как списываем ? Поровну, или наугад ?
   Злопчинский
 
74 - 03.10.16 - 01:22
(73) ты такие сложные вопросы не мути, а то бросятся тебе объяснять, а на вышетривиальное - сделают вид что не заметили...
   Torquader
 
75 - 03.10.16 - 01:27
(74) Просто, если допускаются совпадения - то нужно ЧУМ (частично упорядоченное множество) - это намного проще, чем полное отношение порядка.
То есть, мы вводим коэффициенты по значимости измерений и определяем расстояние с учётом данных коэффициентов - полученное значение можно использовать как частичный порядок.
Конечно, в реальности - фигня получится, но в теории всё будет также красиво как "сферонь".
   KSergey1C
 
76 - 03.10.16 - 03:04
(60) Ну и что? Будет и будет. Просто определяется приоритете документы или сертификаты и вперед. Автор определился.
   KSergey1C
 
77 - 03.10.16 - 03:09
(71)
Опираясь на слова в (34) "приоритетом в скорейшем списании выступает сертификат."

Берем самый первый сертификат, т.е.
Сертификат от 1числа,
Ищим в остатках документы связанные сэотим сертификатом
Приход от 12числа

Поэтой аналитике есть 10 штук  - списываем 6 штук.
   Злопчинский
 
78 - 03.10.16 - 03:09
(76)(76) может я и пропустил, но что-то я не узрел, что автор "определился", (0) и (34) противоречат, уточнений не поступало. Если нет требования одновременности фифо для разных измерений - то и проблемы вообще нет.
   KSergey1C
 
79 - 03.10.16 - 03:10
(72) Векторную графику надо использовать, а не маяться ерундой.
   Злопчинский
 
80 - 03.10.16 - 03:11
(77) "приоритет" противоречит "одновременному фифо". (34) нельзя имхо принимать как УТОЧНЕНИЕ (0) - ибо это в принципе разные задачи получаются, а о смене задачи - надо уведомлять явно - как отмена старой задачи, новая задача вот она - а в новой задаче уже "приоритетность" сертификата играет
   Злопчинский
 
81 - 03.10.16 - 03:15
и таможенников и фармацевтов и прочая хрень - наш внутренний учет (сертификат+приход) нахрен не будет интересовать.

упомянутых будет интересовать
фармацевтов: а сколько по такому-то сертификату поступило и скольо отпущено?
таможня - аналогично по ГТД
и нет никакой необходимости ни одновременного фифо, ни приоритет ов.

ТС выбирает для своего РН - нужную схему списания - ФИФО по какому-то измерению например (остальные - ведомые по приоритетам). Для получения ответов для фармацевтов/nfvj;yz - все что надо - собрать движения по нужному измерени и все.
   KSergey1C
 
82 - 03.10.16 - 03:16
(80) Давай начнем с того, что термин "одновременное фифо" - ввел ты, а не автор. И это не какой-то академический термин, однозначно определяемый, что он значит понимаешь только ыт сам, вополне возмжно что оты опд ним имеешь ввиду: "клоуны хохотуны в цирке на бульваре".
   Злопчинский
 
83 - 03.10.16 - 03:21
(82) "в котором выбытие по было распределено по остальным двум измерениям по методу ФИФО. "

- возможно что я страый маразматик, но вот это я понимаю как хотелку "одновременного фифо по двум измерениям", а так как в выбытии два измерения всегда связаны - ну никак не получится по "остальным двум измерениям по методу ФИФО".

скорее всего большая простыня этой ветки совершенно лишняя, и все что хотел автор это "фифо по одному измерению, а по второму фифо в рамках первого измерения".
   KSergey1C
 
84 - 03.10.16 - 04:34
(83) ДОстаточно ввести приоритете одного измерения и все становится в порядке.
   Torquader
 
85 - 03.10.16 - 14:41
Одновременное FIFO можно рассматривать только в том случае, если в одном регистре мы ведём учёт по одному параметру (скажем, документ поступления), а в другом - по другому (дата сертификата), тогда у нас в разных регистрах будет различное списание партий согласно установленному приоритету - но это допустимо только тогда, когда для раной отчётности нам нужен совершенно различный виртуальный учёт.


Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.