При работе с крупными программными продуктами на платформе 1С, такими как «1С:Комплексная автоматизация 2» (КА 2) или «1С:ERP», пользователи часто сталкиваются с необходимостью восстановить расчет себестоимости после длительного перерыва. Типичная ситуация: в базе велся учет, затем был перерыв в несколько лет (например, с 2016 по 2019 год), и теперь необходимо получить корректные цифры за текущий период, минуя прошлые «забытые» года. Разберемся подробно, позволяет ли архитектура системы такие манипуляции и к каким последствиям это приведет.
Для начала проанализируем, как система 1С:КА 2 воспринимает данные о себестоимости. В отличие от простых учетных систем, здесь расчет строится по принципу непрерывной цепочки. Каждое последующее звено (месяц) опирается на входящие остатки предыдущего. Рассмотрим это на примере работы регистров.
Основными «держателями» информации о стоимости товаров являются регистры накопления: Партии товаров организаций и Выручка и себестоимость продаж. Когда мы пытаемся рассчитать себестоимость за декабрь 2019 года, программа в первую очередь обращается к остаткам на 01.12.2019. Если расчет за ноябрь 2019 года не выполнен, система не «знает» точную стоимость остатков, так как она складывается из:
Поскольку эта цепочка тянется до самого первого документа в базе, пропуск даже одного месяца разрывает логику расчета. Попытка закрыть 2019 год без закрытия 2017 и 2018 годов приведет к тому, что система либо выдаст ошибку о нарушении последовательности партионного учета, либо рассчитает себестоимость только для тех товаров, которые поступили и были проданы внутри 2019 года, полностью проигнорировав стоимость «старых» остатков. Это сделает отчеты по валовой прибыли абсолютно недостоверными.
Если перед нами демо-база или рабочая база, где за пропущенные годы движений было немного, самым правильным и безопасным решением будет последовательный запуск процедуры закрытия месяца. Рассмотрим пошаговый алгоритм действий:
Важный нюанс: в настройках системы может быть включена разная версия партионного учета. Проверим это в разделе НСИ и администрирование — Финансовый результат и контроллинг — Учет товаров. В современных редакциях используется версия 2.2, которая поддерживает механизм Фонового расчета партий. Это может ускорить процесс, но не отменяет необходимости последовательности.
Если данных за пропущенные три года слишком много, и их расчет занимает недели машинного времени, или если данные за те периоды заведомо неверны, мы можем воспользоваться методом «отсечения прошлого». Выясним, как это сделать правильно.
Для того чтобы система начала считать себестоимость «с чистого листа» в 2019 году, нам необходимо зафиксировать входящую стоимость товаров на дату начала учета. Для этого используется документ Ввод начальных остатков.
Алгоритм действий:
Этот метод трудозатратен, так как требует ручного сбора данных о стоимости, но он позволяет легально пропустить процедуру закрытия прошлых лет.
Рассмотрим ситуацию, описанную в теме: в базе реализована дописка, позволяющая видеть себестоимость сразу, без закрытия месяца. Проанализируем риски совместной работы такого кода и штатного закрытия 1С.
Обычно такие доработки принудительно записывают данные в регистр Стоимость товаров в момент проведения документа (например, Реализация товаров и услуг). Однако штатный механизм «Закрытия месяца» работает иначе: он сначала очищает движения, сделанные документами по этим регистрам, и записывает свои, рассчитанные по алгоритмам ФИФО или средней за месяц.
Проанализируем последствия:
Партии товаров организаций, то штатный расчет может просто «зависнуть» или выдать ошибку из-за дублирования ключей записей.Поэтому перед запуском закрытия за 2019 год крайне важно выяснить, какие именно объекты были изменены. Если программист добавил свой собственный регистр для оперативной оценки, то штатное закрытие на него не повлияет. Если же менялась логика типовых регистров, рекомендуется сначала сделать резервную копию базы.
Подводя итог, ответим на вопрос: можно ли просто нажать кнопку и закрыть 2019 год, пропустив три года? Нет, технически это невозможно без потери качества данных.
Мы рекомендуем следующий план действий:
1С:Комплексная автоматизация.Себестоимость запасов и убедитесь, что в колонке «Стоимость» нет пустых значений или странных цифр, возникших из-за разрыва партионной цепочки.