Почему расходятся остатки по сериям в регистрах «Товары на складах» и «Партии товаров на складах» в УТ 10.3 и как это исправить?

Программист 1С v8.3 (Обычные формы) 1С:Управление торговлей Управленческий учет Торговля и дистрибуция
← На главную

В конфигурации «1С:Управление торговлей 10.3» (а также в смежных решениях «Комплексная автоматизация 1.1» и «Управление производственным предприятием 1.3») пользователи часто сталкиваются с крайне неприятной ситуацией. Отчеты по складу показывают, что товар с определенной серией успешно списан, однако отчет по партиям упорно утверждает, что списалась совершенно другая серия (или серия вообще осталась пустой). В результате себестоимость рассчитывается неверно, а партионный учет «расползается».

Разберем детально, почему возникает эта классическая проблема, как функционируют внутренние механизмы системы и какими способами можно полностью восстановить корректный учет по сериям.

В чем разница между складским и партионным учетом в 1С?

Для начала проанализируем архитектуру конфигурации. Учет товаров в «1С:Управление торговлей 10.3» разделен на два независимых контура, каждый из которых использует свой собственный регистр накопления:

  1. Регистр накопления Товары на складах: отвечает за оперативный количественный учет на складах. Он фиксирует реальное физическое движение номенклатуры. Когда менеджер проводит документ Реализация товаров и услуг, система списывает из этого регистра именно ту серию номенклатуры, которая была вручную или автоматически выбрана в табличной части документа. Здесь логика проста: что указали, то физически со склада и ушло.
  2. Регистр накопления Партии товаров на складах (управленческий учет): отвечает за стоимостной (финансовый) учет. Движения по этому регистру формируются по алгоритмам ФИФО/ЛИФО или «по среднему». При проведении реализации программа обращается к остаткам партий и ищет подходящие документы поступления (партии). Поведение этого регистра напрямую зависит от глобальных настроек системы и учетной политики.

Именно из-за разделения логики этих двух регистров и возникает ситуация, когда на складе товар числится по одной серии, а по партиям списывается по другой.

Причины рассинхронизации серий по регистрам

Выясним основные причины, из-за которых ломается партионный учет по сериям:

1. Конфликт настроек в карточке товара и учетной политике
Для ведения полноценного учета по сериям должны быть одновременно задействованы две разные настройки:

Если в карточке товара учет по сериям включен, а в учетной политике партионный учет по сериям выключен, программа будет вести себя следующим образом: при отгрузке со склада спишется конкретная серия, но при списании партий система проигнорирует серию из документа и возьмет первую попавшуюся партию этого товара по ФИФО (даже если в этой партии числится другая серия). На складе все сойдется, а в регистре партий начнется хаос.

2. Включение настроек «задним числом»
Если флаги учета по сериям были установлены уже после того, как по базе пошли первые движения товара, то в старых документах партии были проведены без серий (аналитика в регистре Партии товаров на складах осталась пустой). При проведении новых документов система пытается найти на остатках партий конкретную серию, не находит ее (так как старый приход зафиксирован без серии) и либо отказывается проводить документ, либо списывает случайную партию.

3. Проведение документов в нехронологическом порядке
Если пользователи часто редактируют документы задним числом (например, меняют серии в приходных накладных после того, как товар уже был продан), складской регистр обновляется мгновенно. Однако регистр партий для последующих расходных документов останется в неактуальном состоянии до тех пор, пока не будет восстановлена последовательность партионного учета.

4. Различия в характеристиках номенклатуры
Рассмотрим ситуацию, когда в документе поступления и документе реализации случайно указаны разные характеристики для одного и того же товара. Поскольку партионный учет ведется в разрезе характеристик, система не сможет сопоставить партию и спишет ее некорректно, даже если серии в документах совпадают.

Методика поиска и локализации ошибок

Рассмотрим по шагам, как выявить конкретные документы, которые привели к расхождениям в учете.

Для этого нам понадобится сформировать два стандартных отчета за один и тот же период с абсолютно одинаковыми группировками и отборами:

  1. Отчет «Ведомость по товарам на складах» (данные складского учета).
  2. Отчет «Ведомость по партиям товаров на складах» (данные партионного учета).

Настройки для обоих отчетов должны быть следующими:

Сравнивая детальные записи в этих отчетах, мы легко найдем документ, в котором конечные остатки по конкретной серии начали отличаться. Ниже представлен пример запроса, с помощью которого программист может быстро выгрузить список расхождений в консоли запросов:


ВЫБРАТЬ
    ЕСТЬNULL(СкладскиеОстатки.Номенклатура, ПартионныеОстатки.Номенклатура) КАК Номенклатура,
    ЕСТЬNULL(СкладскиеОстатки.Склад, ПартионныеОстатки.Склад) КАК Склад,
    ЕСТЬNULL(СкладскиеОстатки.СерияНоменклатуры, ПартионныеОстатки.СерияНоменклатуры) КАК СерияНоменклатуры,
    ЕСТЬNULL(СкладскиеОстатки.КоличествоОстаток, 0) КАК ОстатокНаСкладе,
    ЕСТЬNULL(ПартионныеОстатки.КоличествоОстаток, 0) КАК ОстатокВПартиях,
    ЕСТЬNULL(СкладскиеОстатки.КоличествоОстаток, 0) - ЕСТЬNULL(ПартионныеОстатки.КоличествоОстаток, 0) КАК Расхождение
ИЗ
    РегистрНакопления.ТоварыНаСкладах.Остатки(&Период, ) КАК СкладскиеОстатки
        ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПартииТоваровНаСкладах.Остатки(&Период, ) КАК ПартионныеОстатки
        ПО СкладскиеОстатки.Номенклатура = ПартионныеОстатки.Номенклатура
            И СкладскиеОстатки.Склад = ПартионныеОстатки.Склад
            И СкладскиеОстатки.СерияНоменклатуры = ПартионныеОстатки.СерияНоменклатуры
ГДЕ
    ЕСТЬNULL(СкладскиеОстатки.КоличествоОстаток, 0) <> ЕСТЬNULL(ПартионныеОстатки.КоличествоОстаток, 0)

Этот запрос наглядно покажет все «зависшие» серии, по которым количество на складе не совпадает с количеством в партиях.

Варианты решения проблемы

Существует три основных подхода к исправлению сложившейся ситуации в зависимости от того, насколько глубоко «запущен» учет в информационной базе.

Вариант 1. Восстановление учета при открытом периоде (Правильный технический подход)

Если период открыт для редактирования и у вас есть возможность перепроводить документы, выполним следующие действия:

  1. Перейдем в настройки параметров учета и убедимся, что установлены флаги «Вести партионный учет по сериям».
  2. Откроем карточку проблемного товара и проверим наличие флага «Вести учет по сериям». Если флаг был поставлен недавно, запишем дату его установки.
  3. Перейдем в самый первый документ поступления этого товара, в котором должна была быть указана серия. Убедимся, что серия заполнена правильно, и перепроведем документ.
  4. Для того чтобы изменения отразились во всей цепочке последующих документов, воспользуемся обработкой «Проведение по партиям» (меню Сервис -> Проведение документов -> Проведение по партиям). Перепроводить документы вручную по одному не имеет смысла, так как программа должна последовательно пересчитать себестоимость и списание партий с даты обнаружения ошибки.

Вариант 2. Исправление в закрытом периоде с помощью корректировки регистров

Если расхождения по сериям возникли в прошлых кварталах или годах, а период закрыт для редактирования и сдавать корректирующую отчетность нельзя, то перепроведение документов исключено. В этом случае мы выровняем регистры вручную текущей датой:

  1. Создадим документ «Корректировка записей регистров» (меню Документы -> Дополнительно -> Корректировка записей регистров).
  2. В настройке состава регистров добавим два регистра накопления: Товары на складах и Партии товаров на складах (управленческий учет).
  3. Заполним закладку Товары на складах: нам нужно убрать неверную серию и добавить верную. Для этого введем строку с видом движения «Расход» по неверной серии (количеству) и строку с видом движения «Приход» по правильной серии.
  4. Аналогично заполним закладку Партии товаров на складах. При формировании строки «Приход» обязательно укажем документ партии (первоначальное поступление, по которому должен был приходоваться товар) и его стоимость, чтобы не нарушить расчет себестоимости в будущих периодах.
  5. Проведем документ. После этого остатки по складам и партиям выровняются, и новые документы реализации будут списывать правильные серии без ошибок.

Вариант 3. Создание новых карточек номенклатуры (Альтернативный метод)

Иногда на форумах предлагают завести новые карточки товаров с уже включенным учетом по сериям, а остатки перебросить документом Инвентаризация товаров на складе со старых позиций на новые.

Важное предупреждение: мы крайне не рекомендуем использовать данный метод. Это временный «костыль», который приводит к лавинообразному дублированию номенклатуры в базе данных. Вы потеряете историю продаж по старым карточкам, усложните работу менеджерам по закупкам и засорите справочник. Лучше один раз корректно настроить учетную политику и выровнять регистры с помощью документа Корректировка записей регистров.

Таким образом, своевременный контроль соответствия настроек карточки номенклатуры и учетной политики, а также регулярное восстановление последовательности проведения партий позволят вам навсегда забыть о расхождениях по сериям в 1С:Управление торговлей 10.3.

← На главную