Вход | Регистрация


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 человек.
Рекламное место пустует