Почему в 1С:Управление торговлей 11 ГТД списываются не по ФИФО и как это исправить?

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

В процессе работы с конфигурацией 1С:Управление торговлей 11.4 (УТ 11) пользователи и разработчики часто сталкиваются с ситуацией, когда партионный учет (себестоимость) отрабатывает корректно по методу ФИФО, однако номера ГТД в документах реализации подбираются хаотично или вовсе по методу ЛИФО (последний пришел — первый ушел). Разберем детально, почему это происходит, как устроены внутренние механизмы программы и какие существуют способы решения данной проблемы.

Причина разрыва между партиями и ГТД

Проанализируем архитектуру системы. Главная ошибка — полагать, что в УТ 11 номер ГТД жестко привязан к партии товара в регистре себестоимости. На самом деле, программа ведет два параллельных и независимых потока учета:

  1. Регистр «Себестоимость товаров» — здесь фиксируются партии, стоимость и метод оценки (ФИФО или Средняя). Данный регистр отвечает за финансовый результат.
  2. Регистр «Товары организаций» — именно в этом регистре ведется учет остатков в разрезе номеров ГТД и стран происхождения. Списание ГТД происходит по алгоритмам, заложенным для этого регистра, а не для регистра себестоимости.

Рассмотрим ситуацию: если вы загружаете остатки документов ввода в один день, для регистра СебестоимостьТоваров последовательность может быть определена временем документа, а для ТоварыОрганизаций механизм подбора может использовать иные критерии, если время документов совпадает до секунды.

Механизм определения «первенства» ГТД

Согласно документации ИТС, списание по номерам ГТД должно быть упорядочено по датам поставки. Однако на практике система часто «спотыкается» о технические нюансы. Выясним причину, почему типовой запрос может выдавать остатки в обратном порядке:

1. Отсутствие даты в справочнике ГТД. В справочнике НомераГТД есть реквизит «Дата». Если при программной загрузке остатков или импорте данных этот реквизит не был заполнен, система не может выстроить очередь списания по хронологии. В этом случае алгоритм начинает подбирать номера по внутреннему идентификатору (GUID) или по алфавитному порядку кода ГТД.

2. Время документов ввода остатков. Если все остатки введены одной датой и временем, система не видит разницы в «старшинстве» поступлений. Проанализируем состояние регистра ТоварыОрганизаций: если записи имеют идентичный период, порядок выборки в запросе становится непредсказуемым.

3. Влияние Интеркампани. Если в базе включена схема «Интеркампани», механизм подбора ГТД усложняется. Программа в первую очередь пытается списать те номера ГТД, которые числятся за организацией-продавцом. Если их не хватает, подбираются остатки других организаций, при этом хронология ФИФО по всей группе компаний может нарушаться.

Способ №1: Использование серий для жесткой связи

Как отмечают эксперты, использование функционала серий — это единственный штатный способ «намертво» связать конкретную физическую единицу товара, его партию и номер ГТД. Рассмотрим, как это настроить:

Во-первых, в виде номенклатуры необходимо включить использование серий. Во-вторых, выбрать политику учета серий с типом «Учет по ГТД» или «Маркировка упаковок».

В этом случае при поступлении товара вы будете обязаны указать серию (которая может быть равна номеру ГТД), и при отгрузке система потребует указания именно этой серии. Это исключает автоматический подбор «на усмотрение программы» и гарантирует, что спишется именно тот номер, который пришел с конкретной партией.

Способ №2: Корректировка данных в справочниках и документах

Если использование серий невозможно (например, из-за большого объема данных или нежелания усложнять учет), разберем шаги по исправлению автоматического подбора:

  1. Проверьте заполнение дат в карточках справочника НомераГТД. Даты должны соответствовать реальным датам оформления таможенных деклараций или дат поступления.
  2. Разнесите документы ВводОстатков по времени. Даже разница в одну секунду позволит системе корректно выстроить очередь в виртуальных таблицах остатков.
  3. Если используется программная загрузка, убедитесь, что вы заполняете ключи аналитики корректно. Посмотрите на регистр КлючиАналитикиУчетаНоменклатуры — если ГТД приходят на разные склады или с разными характеристиками, ФИФО будет работать только внутри этих разрезов.

Анализ технической части (запрос подбора ГТД)

Проанализируем ситуацию с точки зрения кода. Подбор ГТД в УТ 11 осуществляется через специализированные запросы в модулях менеджеров документов или в общих модулях распределения запасов. Часто в типовом запросе получения остатков по ГТД отсутствует явная сортировка по периоду поступления, если запрос обращается к виртуальной таблице Остатки.

Пример упрощенной логики запроса, который может привести к ошибке:


ВЫБРАТЬ
    ТоварыОрганизацийОстатки.НомерГТД,
    ТоварыОрганизацийОстатки.КоличествоОстаток
ИЗ
    РегистрНакопления.ТоварыОрганизаций.Остатки(&МоментВремени, Номенклатура = &Номенклатура) КАК ТоварыОрганизацийОстатки
// Здесь часто отсутствует УПОРЯДОЧИТЬ ПО, что выдает данные в порядке физического расположения в БД

Чтобы исправить это поведение без радикального изменения конфигурации, можно внедрить расширение, которое добавит сортировку по дате регистрации ГТД или по дате документа поступления в таблицу остатков. Однако помните, что в регистре ТоварыОрганизаций нет прямой ссылки на документ поступления, поэтому «дату поступления» придется вычислять по хронологии записей или брать из карточки номера ГТД.

Резюме и рекомендации

Подводя итог, отметим: УТ 11 не гарантирует соответствие ГТД и партии по умолчанию, так как это разные сущности в системе. Если для вашего учета критично, чтобы ГТД списывались строго по ФИФО в связке с себестоимостью, рекомендуем:

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

← На главную