В конфигурациях 1С, использующих традиционный партионный учет (таких как «Управление торговлей 10.3», «Управление производственным предприятием 1.3» или «Комплексная автоматизация 1.1»), пользователи часто сталкиваются с неприятной ситуацией. При оформлении документов перемещения или возвратов по регистру складского учета ТоварыНаСкладах товар успешно списывается и уходит в ноль, а вот по регистру стоимостного учета ПартииТоваровНаСкладах зависает остаток по так называемому «пустому складу» (отображается как пустая строка, неопределенное значение или знаки <...>).
В рамках этой статьи мы подробно разберем, почему возникает эта техническая коллизия, как проанализировать движения регистров, выявить первопричину сбоя и исправить зависшие остатки без вреда для исторической отчетности предприятия.
Для начала проанализируем архитектуру хранения данных в решениях 1С. Учет запасов разделен на два параллельных и независимых потока:
ТоварыНаСкладах. Его задача — быстро ответить на вопрос, сколько физических единиц товара сейчас лежит на конкретном складе.ПартииТоваровНаСкладах. Его задача — определить себестоимость товаров, рассчитать прибыль и зафиксировать конкретный документ поступления (партию), по которому пришел товар.Если в количественном учете склад является обязательным измерением, то в партионном учете заполнение этого измерения напрямую зависит от настроек системы. Рассмотрим основные причины возникновения «пустого склада» в партиях.
Это наиболее распространенная причина расхождений. В настройках параметров учета или учетной политики присутствует флаг «Вести партионный учет по складам» (в некоторых редакциях — «Вести учет по складам в разрезе партий»).
ПартииТоваровНаСкладах, оставляя измерение Склад абсолютно пустым.Если в процессе ведения учета (например, между прошлыми периодами и текущим днем) эту галочку временно снимали, перепроводили документы, а затем снова возвращали на место, в базе неизбежно возникнет перекос. Старые партии зависнут на пустом складе, а новые документы перемещения будут пытаться списать их с конкретного склада, порождая отрицательные остатки или зависшие суммовые хвосты.
Рассмотрим ситуацию: товар был перемещен со склада А на склад Б, часть товара продали, а остаток вернули обратно спустя длительное время. Если за этот промежуток времени в системе менялись настройки партионного учета, нарушалась последовательность проведения документов или очищались ключевые реквизиты в карточках складов, документ перемещения назад спишет партию «по среднему» или возьмет первую попавшуюся партию без указания склада-отправителя по регистру партий.
Если склад, по которому совершались движения, впоследствии был помечен на удаление или физически удален («грохнут» непосредственным удалением без контроля ссылочной целостности), система заменит ссылку на него на «Битую ссылку» либо на пустое значение. При перепроведении исторических документов движения по партиям запишутся на пустой склад, тогда как по количественному регистру движения могут вообще не сформироваться или записаться некорректно.
---
Прежде чем приступать к исправлениям, нам необходимо провести детальную диагностику и понять, откуда именно в регистре партий появился приход по пустому складу. Для этого выполним несколько последовательных шагов.
Воспользуемся отчетом «Ведомость по партиям товаров на складах». Настроим его структуру следующим образом:
В сформированном отчете мы увидим строку, где в колонке «Склад» будет пустота (или значение <...>), а напротив нее будет числиться конечный остаток (например, 2 штуки) и конкретный документ-источник. Этот документ — ключевая зацепка.
Если отчет по партиям не дает полной картины, проанализируем движения регистров напрямую с помощью консоли запросов или «Универсального отчета» по регистру накопления ПартииТоваровНаСкладах. Напишем простой запрос для локализации записей с пустым складом:
ВЫБРАТЬ
Партии.Номенклатура КАК Номенклатура,
Партии.ДокументОприходования КАК ДокументОприходования,
Партии.КоличествоОстаток КАК КоличествоОстаток,
Партии.СтоимостьОстаток КАК СтоимостьОстаток
ИЗ
РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&, Склад = ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка)) КАК Партии
Этот запрос мгновенно покажет все зависшие «бесскладские» партии в вашей системе, которые мешают корректному закрытию периодов.
---
Поскольку ошибки чаще всего обнаруживаются в закрытых периодах (давностью в несколько лет), категорически запрещено просто так менять настройки учетной политики или массово перепроводить документы прошлых лет. Это приведет к полному искажению себестоимости, изменению финансового результата прошлых периодов и, как следствие, к необходимости сдавать корректирующую налоговую отчетность.
Рассмотрим два безопасных сценария исправления ситуации.
Если периоды прошлых лет закрыты для редактирования, мы должны выровнять остатки регистров «в моменте» (текущим числом) или на дату обнаружения ошибки, используя специальный инструмент — документ КорректировкаЗаписейРегистров.
Рассмотрим пошагово, как правильно заполнить этот документ:
РасходПриходЕсли период еще не закрыт для редактирования и сдачи отчетности, мы можем исправить первопричину непосредственно в документах. Проанализируем цепочку действий:
---
Чтобы избежать подобных системных расхождений в дальнейшем, рекомендуем придерживаться нескольких простых правил ведения учета в 1С:
Применяя данные подходы, мы сможем гарантировать абсолютную идентичность складских остатков и стоимостной оценки партий, что позволит безболезненно рассчитывать себестоимость и формировать корректную финансовую отчетность компании.