Ситуация, когда программа автоматически выбирает серию номенклатуры (например, номер ГТД или срок годности), которой по логике вещей уже нет на складе, является распространенной проблемой в конфигурации Управление торговлей, редакция 10.3. Для бухгалтера или оператора это выглядит как ошибка: «Остаток ноль, почему программа тянет эту серию?». Однако с точки зрения внутренней логики 1С, причины такого поведения часто кроются в настройках учета или скрытых движениях по регистрам.
В этом материале мы подробно разберем, как устроен механизм подбора серий, чем серия отличается от партии, и какие шаги необходимо предпринять для диагностики и исправления этой ситуации.
Первое, что нам необходимо уяснить для решения проблемы — это фундаментальное различие между понятиями «Серия» и «Партия» в управленческом учете 1С.
Часто пользователи считают эти понятия синонимами, особенно если серия используется для учета ГТД (Грузовой Таможенной Декларации). Давайте проанализируем, как это видит система:
Важный нюанс заключается в настройках учета. Если мы откроем Настройка параметров учета, мы увидим два разных флага:
Если у вас включен только складской учет по сериям, но отключен партионный учет по сериям, возникает ситуация, когда:
В регистре ТоварыНаСкладах (количественный учет) остаток по серии может быть, но в регистре ПартииТоваровНаСкладах (стоимостной учет) привязки к серии может не быть или она будет иной. При проведении документа программа может подставить серию, основываясь на справочных данных, но не сможет списать себестоимость, так как не найдет соответствующую партию.
Одной из самых частых причин, почему программа видит серию при «нулевом» остатке, является наличие развернутого сальдо в регистрах накопления. Давайте рассмотрим это подробнее.
В отчетах (например, «Ведомость по товарам на складах») мы обычно видим свернутый остаток. Если пришло 5 штук товара с серией «А» и ушло 5 штук товара с серией «А», остаток равен 0. Все верно.
Однако в регистре накопления ПартииТоваровНаСкладах (или ТоварыНаСкладах) записи могут «разъехаться» по измерениям. Например:
Математически: +1 + (-1) = 0. В отчете вы увидите ноль. Но физически в базе данных существуют записи, ссылающиеся на эту серию. Алгоритм автоподбора 1С может наткнуться на положительную запись и попытаться использовать её, игнорируя тот факт, что она компенсируется отрицательной записью в другом разрезе аналитики.
Чтобы проверить это, нам нужно использовать Универсальный отчет (или отчет «Остатки и обороты») по регистру накопления ПартииТоваровНаСкладах (управленческий учет). Обязательно добавьте группировки по всем измерениям регистра (Документ оприходования, Статус партии, Качество).
Еще один сценарий, который мы должны рассмотреть — это жесткое резервирование. Если вы оформляете документ РеализацияТоваровУслуг на основании ЗаказаПокупателя, механизм работы меняется.
Если в ЗаказеПокупателя была указана конкретная серия и товар был зарезервирован (регистр ТоварыВРезервеНаСкладах), то реализация будет требовать именно эту серию, даже если свободный остаток на складе уже изменился или равен нулю. Программа считает, что этот товар «отложен» под конкретную сделку.
Проверьте регистр ТоварыВРезервеНаСкладах с отбором по вашей проблемной номенклатуре и серии.
Давайте систематизируем шаги, которые помогут нам выявить причину и устранить некорректную подстановку серий.
Убедимся, как именно ведется учет серий в вашей базе.
Если эта галочка снята, а галочка Вести учет по сериям стоит, то серии используются «справочно» (как метка на товаре), но не участвуют в расчете себестоимости. В этом случае подстановка серии в документ не гарантирует списание партии. Если вы используете серии для ГТД, это допустимо, но требует внимательного контроля остатков.
Нам необходимо увидеть «сырые» данные регистра, чтобы исключить ситуацию с «плюсами и минусами».
Партии товаров на складах (управленческий учет).Если вы увидите строки, где есть положительный конечный остаток по одному документу партии и отрицательный по другому — это причина проблемы. Серия «висит» в базе. Это состояние называется «развернутым сальдо».
Самый действенный способ «вылечить» учет в Управление торговлей 10.3 — это восстановление последовательности партионного учета. Эта процедура перепроводит документы в хронологическом порядке, выстраивая правильные цепочки списания партий (ФИФО).
Для этого:
Внимание: Эта процедура может занять длительное время при больших объемах данных и изменить себестоимость в уже закрытых периодах. Рекомендуется сначала выполнить это на копии базы.
Если предыдущие шаги не выявили логических ошибок учета, возможно наличие физических ошибок в таблицах базы данных (ссылочная целостность). В теме упоминалось, что процедура не проводилась несколько лет.
В режиме Конфигуратор:
Пересчет итогов особенно важен, так как программа быстрого доступа к остаткам (таблица итогов) может содержать устаревшие данные, отличные от реальных движений документов. Именно из таблицы итогов документ реализации часто «узнает», что серия якобы доступна.
Также стоит рассмотреть алгоритм FEFO (First Expired, First Out — первый истекает, первый уходит). Если у номенклатуры задан учет по срокам годности, 1С при подборе будет стараться подставить серию с наименьшим сроком годности.
Если в системе «зависли» остатки старых серий (из-за описанной выше проблемы с партиями), алгоритм FEFO будет упорно подставлять именно их, так как их срок годности истек раньше, чем у свежих поступлений.
Чтобы отключить это поведение, проверьте настройки пользователя или настройки автоподбора в документе реализации. Но правильным решением будет не отключение механизма, а устранение «зависших» остатков через корректировку записей регистров или восстановление последовательности.