Из какого регистра берет остатки подбор товаров в 1С:УТ 11.4?

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

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

Анализируем основные регистры накопления

Для начала вспомним стандартную схему. Большинство пользователей полагает, что достаточно обнулить или скорректировать данные в трех основных регистрах:

  1. ТоварыНаСкладах — здесь хранится информация о физическом наличии товара на конкретном складе.
  2. ТоварыОрганизаций — регистр, отвечающий за остатки в разрезе юридических лиц (организаций).
  3. СвободныеОстатки — упрощенный регистр, который должен показывать доступный к продаже остаток.

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

Использование отчета «Остатки и доступность товаров» для диагностики

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

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

Роль регистра «Товары к отгрузке» при ордерной схеме

Выясним основную причину, по которой корректировка физических остатков не дает результата. Часто в 1С:УТ 11.4 используется ордерная схема склада. В этом случае между проведением документа реализации и фактическим списанием товара со склада (оформлением расходного ордера) возникает «зависшее» состояние.

Разберем ситуацию подробно. Если по товару есть распоряжение на отгрузку, которое еще не исполнено (или исполнено частично), данные попадают в регистр ТоварыКОтгрузке. Система считает этот товар уже «обещанным» и вычитает его из доступного остатка в подборе. Даже если вы обнулили физические остатки в ТоварыНаСкладах, отрицательное или старое значение из регистра ТоварыКОтгрузке будет искажать итоговую картину в форме подбора.

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

Влияние регистра «Запасы и потребности»

В современных версиях УТ 11 (начиная с 11.4 и выше) ключевым источником данных для расчета доступности является регистр накопления ЗапасыИПотребности. Рассмотрим его особенности:

Регистр сведений «Распределение запасов» — скрытый кэш системы

Проанализируем еще один важный механизм. В последних релизах 11.4 внедрена новая архитектура распределения запасов. Теперь данные для подбора могут браться не напрямую из регистров накопления, а из регистра сведений РаспределениеЗапасов.

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

Технический разбор: как найти запрос подбора в коде

Если визуальный анализ регистров не помог, придется воспользоваться отладчиком. Однако найти запрос динамического списка в форме подбора не так просто. Рассмотрим, как это сделать:

  1. Откройте обработку ПодборТоваровВДокументПродажи.
  2. Запрос динамического списка СписокТоваров формируется программно.
  3. Ищите вызов метода, который собирает текст запроса. Обычно это функция в модуле менеджера или серверном модуле формы, которая называется СформироватьТекстЗапроса или аналогично.

В коде это выглядит примерно так (упрощенно):


ТекстЗапроса = ПолучитьБазовыйТекстЗапросаДляПодбора();
Если УчитыватьРезервы Тогда
    ТекстЗапроса = ТекстЗапроса + " СОЕДИНЕНИЕ РегистрНакопления.ЗапасыИПотребности.Остатки...";
КонецЕсли;

Проанализировав этот запрос, вы увидите, что система объединяет (UNION) данные из множества таблиц, накладывая фильтры по складу, организации и типу запасов (собственный или комиссионный товар).

Практические рекомендации по исправлению остатков

Чтобы данные в подборе стали корректными, выполните следующие действия:

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

Таким образом, подбор в УТ 11.4 — это не просто «чтение остатков со склада», а сложный аналитический механизм, учитывающий логистические статусы, распоряжения на отгрузку и планы распределения запасов. Только комплексная корректировка всех связанных регистров позволит добиться корректного отображения данных.

← На главную