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