gifts2017

Остатки товаров на складах по партиям по методу ФИФО, если партий нет (РАУЗ). СКД

Опубликовал Веселов Александр (aves) в раздел Отчеты - Анализ учета

В системах КА и УПП прогресс идет в сторону отказа от партионного учета и перехода на РАУЗ. При этом партий в чистом виде нету.
Данный отчет динамически восстанавливает партионный учет и показывает какие партии товара остаются на складах.

Если партионного учета нет, но очень хочется, то можно Laughing. Развитие систем 1с сейчас идет по пути отказа от партионного учета, но среди клиентов иногда встречаются ярые его сторонники. Таким бывает лучше сделать, чем объяснить, что это невозможно. Так появился данный отчет. Он показывает документы поступлений товаров, вычисленные с учетом всех перемещений товара между складами по методу ФИФО.

 

Отчет построен на регистрах ТоварыНаСкладах и ТоварыВРознице. От ТоваровОрганизаций пришлось отказаться по причине РЛС по организациям и доработок в проекте. Характиристики и серии номенклатуры не учитываются. Отчет основан на шаблоне типового отчета, входящего в состав КА и УПП. Основная СКД  формируется из таблицыЗначений, вычисляемой внутри отчета.

 

Алгоритм формирования отчета:

1. Берем специальную СКД для вычисления положительных остатков товаров на складах и скопировав туда отбор из настройки отчета получаем таблицу значений с остатками товара. На этом этапе отбрасываются минуса, поэтому отчет не сойдется со стандартными отчетами по остаткам на количество отрицательных остатков.

2. Вычисляется из каких приходных (увеличивающих количество) документов состоит данный остаток. Вычисляется одним запросом. Документы определяются по методу ФИФО. Методика распределения остатка на приходные документы есть на инфостарте. К исходной таблице добавляются колонки Документ и СкладОтправитель. Последняя заполняется в случае, если документ - перемещение товаров. Строк тоже, естественно, прибавляется.

3. Тут начинается ноу-хау

В цикле ограниченном 10 или полностью пустой колонкой СкладОтправитель надо вычислить из каких партий образовались остающиеся в таблице перемещения. Вычисляется это все одним запросом примерно так:

  • Отобрать по каким складам и номенклатурам требуется уточнение (перемещения одной номенклатуры могут придти с разных складов)
  • Построить ФИФО цепочку движений по документам данным складамОтправителям\номенклатурам с вычислением остатка на начало и окончания каждого документа
  • Соединив таблицы вычислить в основной таблице остаток на моменты перемещений на складе отправителе
  • Построив ФИФО для каждого перемещения вычислить из каких документов эти перемещения взяли свое количество
  • Уничтожить временные таблицы и соединить результат вычислений с данными, поданными на вход пп3 по которым вычислений не требуется. Полученную таблицу обозвать так же как и поданная на вход. В этом случае на любой итерации получаем унифицированные данные и запрос\код не изменяется.

4. Как и говорилось выход по достижении максимального числа итераций=10 или если вычислять уже нечего - перемещений нет.

5. К получившейся таблице цепляем цену из табличной части документа поступлениеТоваровУслуг дабы вычислить сумму. Ориентировочно. Прихоть клиента.

6. Результат подаем на вход основной компоновке данных и отчет формируется дальше уже сам.

 

Замечания:

В пп3 при получении цепочек надо учитывать, что остаток склада на дату отчета может быть не нулевым.

Для построения фифо используются таблицы с нарастающими итогами. Подобные вычисления обычно вгоняют сервера в штопор, но не в данном случае. Вычисления оптимизированы по периодам. Сначала вычисляется по месяцам, а затем уже по документам внутри месяца. Т.е. соединения каждый с каждым есть только внутри месяца.

В пп3 при вычислении документов из которых взялись перемещения ФИФО не строиться. Данные вычисляются  соединив таблицу с вычисленным остатком на момент перемещения и таблицу цепочек на отправителе за один проход. Для этого в цеопчках был вычислен хитрый показатель (тоже нарастающим итогом). Классическое ФИФО заняло бы 3-4 подзапроса.

 

 Демо версия с закрытым кодом и  ограничением на количество номенклатуры не более 3. Остальное отбрасывается на первом этапе.

Скачать файлы

Наименование Файл Версия Размер
Остатки по партиям на складах ДЕМО 65
.erf 44,84Kb
07.09.12
65
.erf 44,84Kb Бесплатно
Отчет остатки партий номенклатуры на складах СКД
23.05.2014
4000 руб.

Моментальная
доставка

См. также

Подписаться Добавить вознаграждение
Комментарии
1. Макас (makas) 07.09.12 16:49
Такая штука была бы полезна для Бухгалтерии. особенно когда некоторые бухи ведут учет "по-средней"
2. Веселов Александр (aves) 07.09.12 17:39
(1) РН остатков там нет. Данные можно взять из РБ.
Теоретически возможно. Будет ли спрос - вопрос?
+ там вроде нет шаблона универсального отчета - придется придумывать еще и оболочку.
3. Александр Капустин (kapustinag) 07.09.12 20:52
Если клиент, заказавший и получивший этот отчет, работает в реально использующейся производственной информационной базе - с десятками складов, тысячами позиций номенклатуры, интенсивным вводом документов движения ТМЦ - то он не сможет этот отчет реально использовать. Разве что ввести в алгоритм искусственные ограничения на количество складов и/или количество позиций номенклатуры и/или на период. И иметь СУПЕРкомпьютер в качестве сервера. Кроме того, если учитывать серии и характеристики - а их придется учитывать - количество цепочек резко возрастет. На большой базе ведомость по партиям товаров на складах может формироваться довольно долго, если указан большой период и много группировок. А ведь он формируется по уже записанным в регистр "Партии товаров на складах" данным. Данный отчет будет вычислять все "на лету", и серверу будет очень тяжело.
Поэтому "плюс" за алгоритм и его реализацию, а вот насчет практического применения - сомневаюсь.
Светлый ум; +1 Ответить 2
4. Веселов Александр (aves) 07.09.12 23:43
(3) Серии не ведем, а в качестве характеристик используем вид упаковки, так что для нас не актуально. Кроме того в данном случае алгоритм придется усложнять на 2 момента - большую детализацию и корректировки серий и характеристик,чтобы искать исходную номенклатуру+х+с после преобразования.
Попробую снять статистику на нашей базе - отпишусь.
5. Веселов Александр (aves) 08.09.12 00:15
(3) кроме того это остатки - период тут не применим, хотя общий объем имеет влияние, т.к. нарастающе итоги строятся целиком. Да и группировок много не сделать. Номенклатура\Склад и документ + все реквизиты.