Партионный учет
В организациях, осуществляющих закуп и продажу продукции, возникает необходимость учета партий продукции, приобретенных и реализованных по разным ценам, для учета оборота по каждой партии. В этом случае необходимо вводить партионную систему учета. Когда учет партии ведется по одному показателю (на языке 1С - ресурсу), например, в килограммах, проблем не возникает. Но в случае, когда необходимо вести учет по двум количественным показателям, например, в килограммах и в штуках одновременно, начинают возникать вопросы.
Мы столкнулись с проблемой в организации, торгующей мясной продукцией. Изначально учет велся без партий. При этом вес, количество и себестоимость были в одном регистре. Пока не ввели партионную систему, проблем не возникало. После введения партионной системы для учета себестоимости, пришлось учитывать в одном регистре три показателя в разрезе партий. В системе работали со следующими документами: поступление, реализация и изменение остатков. Также были документы, в которых одновременно проходил расход и приход: производство (из одной номенклатуры создавалась другая) и перемещение, но мы их в данной статье не рассматриваем. Далее будет представлен алгоритм работы партионной системы по 2 количественным показателям (назовем его Алгоритм ПС) и анализ его пригодности.
Алгоритм ПС
Рассмотрим такую ситуацию. Торговое предприятие, которое ведет учет мяса в полутушах и в кг, закупило партию товара 10 шт. общим весом 400 кг. При этом 5 шт. по 38 кг, 5 шт. по 42 кг. Потом закупило еще одну партию 10 шт., общим весом 380 кг. (10 шт. по 38 кг каждая). Учет товара ведется по системе FIFO. Также на предприятии не ведется поштучный учет веса номенклатуры. Далее со склада ушло покупателям 10 шт. общим весом 380 кг (клиент попросил выбрать ему более легкие штуки). В итоге от первой партии осталось количество 0 шт. и вес 20 кг (т.к. на предприятии не ведется поштучный учет).
Далее рассмотрим еще один расход. Например, будет реализация 5 шт. с общим весом 200 кг. Партия 1 списывается только по весу, партия 2 по оставшемуся весу расхода (180 кг) и всему количеству расхода 5шт. Партия 1 выходит из регистра (закрывается), на партии 2 остается 5 шт. общим весом 200 кг. На всех рассмотренных этапах отчет по складу без учета партий показывает правильные количественные показатели.
Как видно алгоритм списывает по частям и количество и вес.
Таким образом первая партия списалась в ноль, а соотношение общий вес и общее количество по двум партиям такое же, как если бы была непартионная система. Себестоимость при этом считается по каждой партии пропорционально весу.
Еще одной проблемой стали отрицательные партии (Заказчик вносил расход раньше прихода). Алгоритм ПС усложнили, первым делом анализируются партии, которые противоположны по виду движения, "по принципу магнита: минус первым делом расходует плюс и наоборот".
Если проводится документ прихода, то он сначала закрывает отрицательные партии, а потом уже идет приход новой партии, если что-то осталось для прихода.
Рассмотрим расходование партий. Если проводится документ расхода, то он закрывает положительные партии, которые он может списать. Если после этого осталось что списать, то в данном документе мы видим необеспеченный расход номенклатуры. Необеспеченный расход будет отражен новой партией с регистратором в качестве документа партии.
Отдельный вопрос: какую себестоимость ставить при необеспеченном расходе, это решается по усмотрению заказчика. Например, можно сделать по закупочным ценам или по себестоимости последнего прихода перед текущим документом.
Рассмотрим учет себестоимости. В Алгоритме ПС себестоимость привязана к одному из количественных показателей (весу или количеству). Один из показателей назначается основным (например, вес для весового товара и количество для остальных). Списание себестоимости происходит пропорционально основного показателя партии. При списании всего объема основного показателя, списывается и весь остаток себестоимости, чтобы не оставались незакрытые копейки в базе. Документы прихода определяют себестоимость продукции по своим партиям, и она остается неизменной при расходовании.
Несмотря на абсурдность данного метода, все три показателя (вес, количество и себестоимость) учитываются в системе. Партии при полном закрытии выходят из регистра (из виртуальных таблиц остаточного регистра). Отчеты по регистру показывают корректные данные по остаткам и оборотам, если не смотреть их в разрезе партий. Себестоимость корректна по принципу FIFO даже в разрезе партий. Один из плюсов данного алгоритма - оптимальное использование ресурсов, т.к. для работы используется только 1 остаточный регистр (экономия времени исполнения и места в базе данных).
Восстановление последовательности документов
При изменении документов по закрытым партиям последовательность документов может быть нарушена. Такой проблемы не возникает, если документы вводятся в хронологическом порядке без изменений, но это идеальная система. В реальности часто возникает необходимость восстановления последовательности документов. Это стандартная ситуация в патрионном учете.
Инструменты
При реализации Алгоритма ПС пришлось создавать инструменты для удобной отладки системы и восстановления последовательности документов.
1. Отображение статуса закрытия партии в форме списка регистра.
Перейти в список регистра можно двумя способами: через основное меню Операции⇒Регистр накоплений, либо из документа, нажав кнопку Перейти⇒Товары на складах. При переходе из документа сразу показывается выборка из регистра, по товарам, включенным в документ (устанавливается отбор по регистратору).
В форме регистра были добавлены колонки со статусом закрытия партий по Количеству,Весу и Сумме ("К", "В" и "С").
Каждая колонка подсвечивается своим цветом для удобства отслеживания текущего состояния партии и наглядности.
Белый - нулевая партия, то есть показатель полностью израсходован в данной партии.
Зеленый - общий приход=общий расход в пределах партии.
Все остальные цвета означают, что партия еще не закрыта, и имеется недобор или перебор в партии.
Также добавлена колонка "Цена", которая рассчитывается динамически делением стоимости на основной показатель количества номенклатуры (Вес или Количество).
2. Исправление движений документа по одному регистру без перепроведения всего документа.
Реализована функция переформирования движений только по регистру "Товары на складах". Программно запускается алгоритм проведения документов по регистру, далее сформированные движения записываются вместо старых движений. Остальные движения и сам документ остаются без изменений. Реализовано через общую функцию проведения по данному регистру.
В отдельной обработке можно запустить последовательное исправление движений регистра без перепроведения документов. Данная процедура очень удобна, т.к. исправление документов в прошлых периодах обычно сопровождается организационными проблемами с бухгалтерами и руководителями.
В форме списка регистра добавлена кнопка Дополнительно⇒Обновить движения. При нажатии запускается исправление движений по документу-регистратору из текущей строки списка. Если при этом нажата кнопке Анализ партий, появляется служебное сообщение, в котором можно посмотреть из каких партий происходит списание.
3. Дата движения документов.
Для документов поступления был добавлен отдельный реквизит "Дата движения", чтобы движения документов можно было сдвигать по времени (и дате). Реквизит "Дата движения" подстраивается под дату документа с начала дня.
Также столкнулись с проблемой получения остатков на временную точку документа, соответственно пришлось делать уникальность "Даты движения" распределением по секундам.
4. Автоматическое исправление последовательности в фоновом режиме.
При модификации документов система сохраняет данные об изменениях в разрезе складов и номенклатуры. Реализовано регламентное задание, которое с небольшим периодом восстанавливает последовательность документов, ограничивая поиск по складам и номенклатурам, начиная с самого раннего изменения.
Реализация алгоритма
Алгоритм ПС реализован в самостоятельной конфигурации "Система учета торгового предприятия", описание здесь infostart.ru/public/1209880/.
Система успешно прошла испытание в торговой организации (8 филиалов, более 20 документов реализации в день).