Почему в УТ 11 «сломали» привычное ФИФО и как с этим работать программисту и аналитику

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

Переход пользователей с классической «1С:Управление торговлей 10.3» на современные версии 11.4 и 11.5 часто сопровождается культурным шоком. Основная претензия — отсутствие так называемого «человеческого» ФИФО, когда себестоимость списывается мгновенно в момент проведения документа реализации. Вместо этого система предлагает дождаться регламентной процедуры «Закрытие месяца». Рассмотрим подробно, почему архитекторы 1С пошли на этот шаг, стоит ли пытаться «вернуть всё как было» и какие механизмы в современных версиях позволяют максимально приблизить учет к оперативному.

Причины отказа от оперативного партионного учета

Проанализируем техническую сторону вопроса. В старых конфигурациях расчет партии происходил непосредственно в транзакции проведения документа. Это создавало две критические проблемы для крупных предприятий:

  1. Избыточные блокировки: При расчете партии система должна прочитать остатки по регистру и заблокировать таблицу, чтобы другой пользователь не списал те же самые товары. Если в базе одновременно работают десятки менеджеров, возникают постоянные таймауты и ожидание на блокировках.
  2. Масштабируемость: Чем больше документов, тем медленнее работает система, так как каждый расчет партии — это сложный запрос к базе данных.

В УТ 11 расчет себестоимости вынесен в отдельный поток. Это позволило менеджерам выписывать накладные мгновенно, не дожидаясь, пока система «переварит» сложные алгоритмы распределения затрат и дополнительных расходов.

Разберем два вида ФИФО в УТ 11

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

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

Механизм фонового расчета партий: современное решение

Если пользователи «стонут» от ожидания закрытия месяца, нам следует обратить внимание на функционал «Фонового расчета партий», появившийся в последних релизах (УТ 11.5+). Этот механизм позволяет системе выполнять расчет себестоимости не раз в месяц, а практически непрерывно в фоновом режиме.

Проанализируем, как это работает: При проведении документа создается запись в специальном регистре сведений (очередь расчета). Фоновое задание с определенной периодичностью (например, раз в 5-10 минут) подхватывает эти записи и актуализирует данные в регистрах ПартииТоваровОрганизаций и СебестоимостьТоваров. Таким образом, к моменту формирования вечерних отчетов по прибыли, данные уже будут максимально близки к реальности без ручного запуска закрытия месяца.

Взаиморасчеты: «Онлайн» против «Офлайн»

В теме часто упоминаются претензии к распределению оплат. В УТ 11 за это отвечает механизм «Онлайн-взаиморасчетов». Рассмотрим ситуацию: если включен старый режим, то распределение аванса на накладную произойдет только при закрытии месяца. В новом режиме «Онлайн» система выполняет распределение сразу при проведении платежа или отгрузки.

Однако важно помнить: если вы изменили сумму в накладной за прошлую неделю, онлайн-механизм не всегда может автоматически «перевязать» всю цепочку оплат. В этом случае все равно потребуется запуск регламентного задания АктуализацияРасчетовСПартнерами.

Почему разработка своей подсистемы ФИФО — плохая идея

Рассмотрим предложение автора темы написать свою подсистему «человеческого» ФИФО. Практика внедрения крупных систем показывает, что это путь к множеству ошибок:

Как обеспечить «здоровье» ФИФО в типовой системе

Вместо написания своего кода, разберем шаги, которые помогут добиться корректного ФИФО штатными средствами:

  1. Запрет отрицательных остатков: ФИФО принципиально не может работать, если разрешено списание в минус. Системе просто не к чему привязать партию расхода.
  2. Организационная дисциплина: Большинство проблем (как отмечено в сообщении 13) связано с «правками задним числом». Если менеджер меняет приходную цену в документе за прошлый месяц, вся цепочка ФИФО должна быть пересчитана.
  3. Настройка фоновых заданий: Настройте расписание для задания РасчетПартийТоваров.
    
    // Пример настройки расписания в коде (условно)
    РегламентноеЗадание = РегламентныеЗадания.НайтиПоНаименованию("Расчет партий товаров");
    Расписание = Новый РасписаниеРегламентногоЗадания;
    Расписание.ПериодПовтораВТечениеДня = 600; // каждые 10 минут
    РегламентноеЗадание.УстановитьРасписание(Расписание);
    
  4. Использование оперативной себестоимости: Для оценки «здесь и сейчас» в отчетах можно использовать предварительную оценку по средней, понимая, что окончательная цифра появится после фонового дорасчета партий.

Выясним причины «кривых» данных

Если вы видите странные цифры в отчете «Ведомость по партиям товаров», проанализируйте следующие моменты:

Таким образом, современное ФИФО в УТ 11 — это не «лишение пользователей удобства», а вынужденный переход к высокопроизводительной архитектуре. Использование фонового расчета и режима онлайн-взаиморасчетов полностью закрывает потребности бизнеса в оперативной информации, сохраняя при этом стабильность базы данных при больших нагрузках.

← На главную