|
Реализация метода ФИФО в отчете СКД Ø (Волшебник 04.03.2024 11:50) | ☑ | ||
---|---|---|---|---|
0
nodrama
01.03.24
✎
15:49
|
Добрый день. Есть не особо сложный отчет на СКД которые выводит данные из двух (ТЧ1 и ТЧ2) документов, к Основной ТЧ1 подставляет нужные данные из ТЧ2 второго документа. Но есть Нюансы
Так как выводим мы их построчно как есть, без группировок, сложений и т.д. ТЧ1 имеет допустим Товар1 - 10 штук Товар1 - 5 штук Товар1 - 15 штук ТЧ2 имеет допустим Товар1- 15 штук Товар1 - 15 штук В данном случаи он делает дубли строк в отчете. Так как не понимает как эти 15 и 15 штук, раскидать на 10 5 15 строки. А нужно прикрутить метод ФИФО грубо говоря То есть ТЧ2 Товар1 - 15 штук, хватает на Товар1 10 штук + 5 штук. следовательно в этих строках он берет данные из ТЧ2 товар1 - 15 штук Далее ТЧ2 товар 15 штук хватает на ТЧ1 товар 15 штук, он должен понимать что ТЧ2 Товар 15 штук, первая строка уже израсходована на 10+15. И осталось только вторая строка 15 штук. Надеюсь понятно объяснил, как это реализовать в СКД или где посмотреть где это реализовано, так и не допер еще. |
|||
1
mikecool
01.03.24
✎
15:51
|
не делай это в запросе
|
|||
2
mikecool
01.03.24
✎
15:52
|
циклы и рекурсии в запросы не подвезли еще
|
|||
3
Волшебник
01.03.24
✎
16:00
|
(1) А тут даже не запросом, а СКД. Хотят без программирования, мышкой.
|
|||
4
nodrama
01.03.24
✎
16:05
|
(1) Так я и говорю, что в СКД самолет не взлетает) и как это реализовать пока не допер.
Отчет уже на СКД он рабочий, таких ситуаций как выше не много они единичны. но они есть. |
|||
5
mikecool
01.03.24
✎
16:06
|
(4) вот и порешай фифо в ПриКомпоновке
|
|||
6
nodrama
01.03.24
✎
16:07
|
(4) сейчас при таких ситуациях он делает дубли строк и т.д. криво в общем в этих случаях ибо они ранее не встречались и не предполагались.
|
|||
7
Волшебник
01.03.24
✎
16:18
|
(4) Это не надо делать в СКД
|
|||
8
nodrama
01.03.24
✎
16:30
|
(7) я понимаю, хотя я нашел статью как реализовывают ФИФО в СКД, создают отдельную колонку, там считают и т.д. статья там на инфостарте, но там криво то же все.
Я не понимаю как в отчете СКД, ПриКомпоновкеРезультата запилить ФиФо.. при этом важно это или нет. таких случаев за 1 календарный год.. допустим 2-3.. из 1000. Проверять же надо будет все 1000 строк, ты же изначально не знаешь где там по фифо а где все норм и так |
|||
9
Волшебник
01.03.24
✎
16:31
|
(8) Вообще непонятно, зачем ФИФО в отчёте...
|
|||
10
nodrama
01.03.24
✎
16:57
|
(9) А как реализовать эту ситуацию без "фифо".
Если у тебя в отчете строки товар1 - 5 товар1 - 10 товар1- 20 А в ТЧ2 которое добавляется к этой строке (причем документа Два.. в одном 15 в другом 20) то есть не в одном документе ТЧ) в отчете Товар1 - 15 Товар1- 20 Надо же как то объяснить что первые 15 идут на 5+10 А вторые 20 идут на - 20 |
|||
11
nodrama
01.03.24
✎
16:58
|
Первый пришел.. 15.. распределился на 5+10..
второй пришел 20 распределился на 20. ФИФО |
|||
12
Волшебник
01.03.24
✎
17:00
|
Всё распределение надо делать в документах, отражать в регистрах путём их проведения.
В отчётах показывать уже готовый факт из регистров. |
|||
13
NcSteel
01.03.24
✎
17:10
|
(5) +100500
|
|||
14
АгентБезопасной Нацио
01.03.24
✎
17:15
|
(8) считай не ПриКомпоновке, а прямо в запросе.
|
|||
15
Ботаник Гарден Меран
01.03.24
✎
17:17
|
Из интереса.
Если не в одном запросе, то нужно таблицу запросом получить, потом распределить, распределить округление, обработанную таблицу снова в запрос и т.д. А когда это всё в одном запросе в схеме СКД - проще. Сам отчет выполнялся раз в месяц, особых требований по производительности не было. Отчетов было много одинаковых, только схема СКД в них различалась, очень удобно было копипастить. |
|||
16
nodrama
01.03.24
✎
17:21
|
(12) Какое распределение делать в документах? Вы в идеальном мире живете? мы нет. Мы об упр. учете, а не бухгалтерском.
Есть Заказ Клиента. с разными сроками Отгрузки по каждой строке. Там Товар1- 5 штук, срок отгрузки допустим 3 дня Далее Товар1 - 10 штук, срок отгрузки через 3 недели Далее товар1 - 15 штук, срок отгрузки через 2 месяца.. Далее Заказ Поставщику один поставщик готов завтра привести 15 штук но цена на 20% дороже. Но все это заложено в цену продажи само собой)) Второй поставщик готов привести еще 15 штук но цена на 20% дешевле но сроки 3 недели. а не завтра. Логично что ты делаешь 2 заказа поставщику, зачем переплачивать 20% и заказывать все у одного если сроки позволяют. Заказываем 15 у первого поставщика и 15 у второго. Получаем 2 документа Заказа Поставщика 15 и 15. А в Заказе клиента 3 строки. Это образный пример. В идеальном варианта менеджер типо должен разбить первый заказ поставщика на 5 + 10 .. две строки. Но он делает 1 строку 15 штук. Почему? потому что менеджеры по продажам не видят чужие документы ему приходит что надо заказать 15 штук он заказывает. он не разбивает свой заказ единственный на 5+10 у одного поставщика. он не знает что там 5+10. надо 15 и надо. опять же образно И отсюда проблема и растет. В этих единичных случаев. когда строки из заказа клиента не сходятся со стороками из заказа поставщику (то есть по общему количеству сходится, а построчно нет)... |
|||
17
nodrama
01.03.24
✎
17:23
|
(16) *менеджеры по закупкам
|
|||
18
АгентБезопасной Нацио
01.03.24
✎
17:23
|
(16) а что получить-то в итоге хочешь? ты ж уже заказ и принял от клиента, и поставщикам сделал? Хочешь разбивку по срокам, чтоль?
|
|||
19
Волшебник
01.03.24
✎
17:24
|
(16) бессмыслица какая-то
|
|||
20
nodrama
01.03.24
✎
17:24
|
(14) так вот прям в запросе и не получается. есть пример?
|
|||
21
nodrama
01.03.24
✎
17:30
|
(18) строки из ТЧ2 (Заказ поставщику). в отчете выводят данные срок поставки от поставщика, номер заказа поставщику, сам поставщик и т.д.
ТЧ1 это основная заказыКлиента. Товар1-5 Товар1 - 10 К ним добавляются строки заказаПоставщику но там Товар1-15 (количетсво) В итоге в отчете появляется Товар1-5.. срок отгрузки по договору 10.10.10, срок поставки от поставщика 9.10.10 допустим. Поставщик тот-то. То есть общии данные.. что строки из заказа клиента обработаны и срок не сорван. Группировка стоит "Заказ клиента" Далее выводит строки товара из заказа клиента. и к ним должны присоеденится строки из ЗаказаПоставщика с их данными И когда строки из заказа поставщика не сходятся по количеству из заказа клиента построчно. то получаются дубли. |
|||
22
nodrama
01.03.24
✎
17:31
|
Только строк из заказа клиента с одним и тем же товаром может быть 10.. с разным количеством..
А строк из Заказа поставщику.. может быть 1-2-3 с другим количеством... Но общее количетсво одинаковое. |
|||
23
nodrama
01.03.24
✎
17:36
|
(18) мне в отчете нужно соеденить строки заказа клиента со стороками заказа поставщика.
Но они не сходятся.. В заказе клиента может быть 3 строки.. а в заказе поставщика 2 две товар1-5 товар1-10 товар1- 20 А в заказе поставщика товар1 - 15 товар1 - 20. и в отчете он должен понять что товар1-15 штук идет на 5+10 а втовар1 -20 идет на 20. что бы в эти строки отчета. подставить нормер заказа поставщика, срок поставки от поставщика и т.д. |
|||
24
АгентБезопасной Нацио
01.03.24
✎
17:38
|
(21) Ну так и пиши:
ТЧ1, колонки Товар, срок отгрузки, количество отгрузки ТЧ2, колонки Товар, срок поставки, количество поставки |
|||
25
nodrama
01.03.24
✎
17:43
|
(24) где куда?
Сейчас все выводит как надо. если количество ТЧ1 = количеству Тч2 и товар ТЧ1 = товару Тч2. Но при таком раскладе он не заполняет ячейки заказа поставщику где количество не сходится. Если убрать тч1 количетсво = тч2 количетсва. и он попадает на сютуацию как я описал Он делает дубли строк из серии Това1 - 5 штук - Номер ЗаказаПоставщику 10 Товар1- 5 штук Номер ЗаказаПоставщику 11 Това1 - 10 штук - Номер ЗаказаПоставщику 10 Товар1- 10 штук Номер ЗаказаПоставщику 11 Товар1- 15 штук - Номер Заказа Поставщику 11 Так как в обоих заказов поставщику по 15 штук он не учитывает что ЗаказПоставщику номер 10.. где 15 штук. тратиться на 5+10 строки из Заказа Клиента. А заказ поставщику 11 штук тратится на заказ клиента товар1 - 15 штук. |
|||
26
nodrama
01.03.24
✎
17:46
|
А должен
Това1 5 штук - Номер заказаПоставщику 10 Това1 10 штук - Номер заказапоставщику 10 Ибо в этом ЗаказеПоставщику 15 штук Товар1 15 штук - Номер ЗаказаПоставщику 11 ибо в этом ЗаказеПоставщику 15 штук |
|||
27
nodrama
01.03.24
✎
17:53
|
То есть Заказ Клиента 1 документ . Заказа Поставщика 2-а документа Тч1 получается - 1 ТЧ2 получается 2 штуки.
Между ними разное количество строк с одной и той же номенклатурой и разными количествами. Так как ТЧ1 основная, то в ТЧ2 надо считать по ФИФО первое пришло, первое присоединилось в отчете к строке ТЧ1, если количество по строке из ТЧ2 закончено он переходит к другой стороке ТЧ2 |
|||
28
nodrama
01.03.24
✎
17:54
|
обе ТЧ связаны основанием ЗаказКлиента
|
|||
29
mikecool
01.03.24
✎
17:58
|
в ПриКомпоновке получил результат
пробежался, посчитат фифу засунул в компоновку программно и вывел |
|||
30
nodrama
01.03.24
✎
18:29
|
(29) А есть где то пример для тупых на подобии?
|
|||
31
Волшебник
01.03.24
✎
19:08
|
(30) Ну пример сведётся к тому, что программным кодом будет сформирована ТаблицаЗначений, которая будет закинута в запрос как источник данных для предложения ИЗ.
Ваша СКД будет нервно курить в сторонке, пока ей готовят готовую таблицу, извините за тавтологию |
|||
32
RomanYS
01.03.24
✎
20:59
|
(0) задача в принципе решаемая запросом. Если партий/списаний будет не тысячи по одному товару, то даже без потерь производительности.
Для прод всё равно так делать не стоит. А так: 1. считаем нарастающий итог в обеих таблицах 2. соединяем по пересечению отрезков |
|||
33
Волшебник
01.03.24
✎
21:23
|
(32) Фу
|
|||
34
Волшебник
01.03.24
✎
21:54
|
Перестаньте ограничивать себя СКД и языком запросов
|
|||
35
nodrama
01.03.24
✎
22:44
|
(34) так это не интересно. я могу из двух ТЧ, собрать данные как надо по итогу для вывода.. и вывести их. тупо в отчет, у нас там нет ни каких группировок даже, раскрасок и т.д. чуть ли не эксель по факту. Но тогда и СКД не нужно получается в данном случаи..
Просто отчет изначально был на СКД и он работает и все к нему привыкли. просто раньше не было таких ситуаций. а сейчас они аля.. 2 раза в год. из 1000 других строк. поэтому и думал изначально как то в СКД прикрутить. |
|||
36
Волшебник
01.03.24
✎
23:07
|
(35) Перестаньте бредить
|
|||
37
RomanYS
01.03.24
✎
23:57
|
(33) ага, на вкус фломастеры разные.
Однозначно так делать не стоит, задавая такие вопросы на форумах. |
|||
38
RomanYS
01.03.24
✎
23:58
|
(35) Если настройки СКД никто не крутит, то перепиши на тупую выборку и забудь.
|
|||
39
nodrama
02.03.24
✎
10:26
|
Ну ок. ПриКомпоновкеРезультата
создал ТЗ новое, заполнил это ТЗ результатом, отредактировал ТЗ как мне надо, в этих проблемных строках. А как теперь эту верную ТЗ подсунуть обратно и вывести эти данные в отчет. |
|||
40
nodrama
02.03.24
✎
10:29
|
а все, вопрос снят
|
|||
41
RomanYS
02.03.24
✎
10:35
|
(40) так поделись для последователей. Хоть какая-то польза от ветки будет.
|
|||
42
nodrama
02.03.24
✎
10:47
|
(41) доделаю сейчас поделюсь.
Но таким методом решения данной проблемы, получается почти х2 по времени формирования отчета Пока получить результат в ТЗ, пока этот результат обработал, пока засунул правильное обратно, вывел. |
|||
44
Волшебник
03.03.24
✎
22:31
|
(43) Покажите постановку Вашей задачи
|
|||
45
GANR
04.03.24
✎
10:45
|
(0) Внешние наборы данных в помощь. Формируем кодом таблицу ФИФО/ЛИФО, а уж потом в СКД работаем с ней.
|
|||
47
Волшебник
04.03.24
✎
11:50
|
(46) Бессмыслица
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |