В конфигурациях 1С, работающих на традиционном партионном учете (в частности, 1С:Комплексная автоматизация 1.1), типовой отчет «Товары на складах» строится на базе одноименного регистра накопления ТоварыНаСкладах. Данный регистр хранит исключительно количественные движения и остатки номенклатуры. Денежная же оценка выбытия и перемещения товаров рассчитывается в регистре ПартииТоваровНаСкладах.
Если в системе нарушена последовательность партионного учета (например, из-за проведения документов «задним числом», появления отрицательных остатков или некорректных ручных правок), получить достоверную себестоимость штатными средствами становится невозможно. Разберем по шагам, какими способами можно выгрузить суммовое движение товаров (в частности, по внутренним заказам и перемещениям с оптового склада на розничные точки) без полного восстановительного перепроведения базы данных за прошлые годы.
Проанализируем механику работы партионного учета в 1С:КА 1.1. При списании или перемещении номенклатуры алгоритм ищет поступления (партии) по выбранному методу оценки (FIFO, LIFO или по средней). Если на момент проведения документа образовался количественный «минус» (товар списывается раньше, чем проведено ПоступлениеТоваровУслуг), система не может привязать себестоимость. В результате списывается только количество, а финансовая составляющая партии «ломается».
Поскольку полная перепроведение базы за несколько лет может быть нецелесообразным или занять слишком много времени, рассмотрим альтернативные методы получения стоимостной оценки выбытия.
Если задача заключается в получении суммы перемещений по плановым или фиксированным закупочным ценам, сформируем специальный запрос или отчет на базе Схемы компоновки данных (СКД). Мы свяжем фактические движения перемещения товаров с действующими ценами номенклатуры на дату каждого конкретного документа.
Разберем логику построения такого запроса:
ТоварыНаСкладах (или таблицы документов ПеремещениеТоваров) по нужному складу за указанный период.ЦеныНоменклатуры на дату документа перемещения.Посмотрим на пример структуры запроса, реализующего данный механизм:
ВЫБРАТЬ
Перемещение.Ссылка КАК Документ,
Перемещение.Дата КАК Дата,
ПеремещениеТовары.Номенклатура КАК Номенклатура,
ПеремещениеТовары.Количество КАК Количество,
ЕСТЬНУЛЛ(Цены.Цена, 0) КАК ЦенаЗакупочная,
ПеремещениеТовары.Количество * ЕСТЬНУЛЛ(Цены.Цена, 0) КАК Сумма
ИЗ
Документ.ПеремещениеТоваров.Товары КАК ПеремещениеТовары
ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ПеремещениеТоваров КАК Перемещение
ПО ПеремещениеТовары.Ссылка = Перемещение.Ссылка
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(&Период, ТипЦен = &ТипЦенЗакупочная) КАК Цены
ПО ПеремещениеТовары.Номенклатура = Цены.Номенклатура
ГДЕ
Перемещение.Проведен = ИСТИНА
И Перемещение.Дата МЕЖДУ &НачалоПериода И &КонецПериода
И Перемещение.СкладИсточник = &СкладОпт
Важное замечание: При соединении среза последних на конкретную дату документа рекомендуется использовать подзапрос с максимальной датой установки цены, меньшей или равной дате проводимого перемещения, чтобы избежать завышения или отсутствия цен по историческим позициям.
Если в организации регулярно меняются закупочные цены, подтягивание разовой цены на дату документа может дать погрешность. В таком случае рассчитаем средневзвешенную цену закупки по каждой номенклатурной позиции за выбранный интервал времени.
Формула расчета средней цены поступления выглядит следующим образом:
Средняя цена = (Общая сумма поступлений номенклатуры за период) / (Общее количество поступившей номенклатуры за период)
Проанализируем этапы реализации этого метода:
Закупки или документов ПоступлениеТоваровУслуг выбираем данные об объемах и суммах закупленного товара за период.ТоварыНаСкладах за этот же период.Если восстановление партий с 2011 года невозможно, но требуется нормализовать работу отчетов с текущей даты, выполним локальное «причесывание» партий. Это позволит использовать стандартные отчеты 1С для текущих периодов.
Разберем алгоритм локального восстановления:
Корректировка записей регистров обнуляем накопленные некорректные и отрицательные остатки в регистре накопления ПартииТоваровНаСкладах (Управленческий учет).Если архитектура учетной системы регулярно сбоит из-за хронологических нарушений при вводе документов, рассмотрим переход с традиционного партионного учета на режим РАУЗ.
При использовании РАУЗ списывание себестоимости не зависит от времени проведения отдельных документов внутри месяца. Расчет себестоимости списания и перемещения производится суммарно в конце периода регламентным документом Расчет себестоимости. Это полностью снимает проблему «сломанных партий» при проведении документов задним числом.