При работе с конфигурацией 1С:Управление торговлей 11.4 (УТ 11.4) многие специалисты сталкиваются с ситуацией, когда после ручной корректировки регистров накопления остатки в форме подбора товаров остаются прежними. Казалось бы, данные в основных регистрах исправлены, консоль запросов показывает верные цифры, но подбор упорно выводит старые значения. Разберемся по шагам, почему так происходит и где система «прячет» информацию об остатках.
Для начала вспомним стандартную схему. Большинство пользователей полагает, что достаточно обнулить или скорректировать данные в трех основных регистрах:
ТоварыНаСкладах — здесь хранится информация о физическом наличии товара на конкретном складе.ТоварыОрганизаций — регистр, отвечающий за остатки в разрезе юридических лиц (организаций).СвободныеОстатки — упрощенный регистр, который должен показывать доступный к продаже остаток.Проанализируем ситуацию: если мы сделали корректировку этих регистров на начало текущего дня, а документ подбора создаем текущей датой, данные должны обновиться. Но в УТ 11.4 логика подбора гораздо сложнее и задействует механизмы планирования и резервирования.
Прежде чем погружаться в код и отладчик, рассмотрим самый эффективный способ диагностики — типовой отчет «Остатки и доступность товаров». Запрос в форме подбора максимально приближен к алгоритмам этого отчета. Если данные в отчете и в подборе совпадают, но отличаются от ваших ожиданий, значит, проблему нужно искать в регистрах обеспечения и транзитных остатках.
В этом отчете мы можем увидеть колонки «В наличии», «Доступно», «Резерв», «К отгрузке». Каждая из этих цифр берется из своего источника, и форма подбора при включенном режиме «Только в наличии» ориентируется именно на итоговый показатель доступности.
Выясним основную причину, по которой корректировка физических остатков не дает результата. Часто в 1С:УТ 11.4 используется ордерная схема склада. В этом случае между проведением документа реализации и фактическим списанием товара со склада (оформлением расходного ордера) возникает «зависшее» состояние.
Разберем ситуацию подробно. Если по товару есть распоряжение на отгрузку, которое еще не исполнено (или исполнено частично), данные попадают в регистр ТоварыКОтгрузке. Система считает этот товар уже «обещанным» и вычитает его из доступного остатка в подборе. Даже если вы обнулили физические остатки в ТоварыНаСкладах, отрицательное или старое значение из регистра ТоварыКОтгрузке будет искажать итоговую картину в форме подбора.
При работе с клиентами, которые самостоятельно включают и выключают ордерный склад, часто возникает «треш» в учете, когда записи в ТоварыКОтгрузке остаются без закрывающих документов. Для исправления ситуации необходимо проверить наличие незакрытых распоряжений и при необходимости скорректировать этот регистр.
В современных версиях УТ 11 (начиная с 11.4 и выше) ключевым источником данных для расчета доступности является регистр накопления ЗапасыИПотребности. Рассмотрим его особенности:
ТоварыНаСкладах, но не внесли изменения в ЗапасыИПотребности, колонка «Доступно» в подборе не изменится.Проанализируем еще один важный механизм. В последних релизах 11.4 внедрена новая архитектура распределения запасов. Теперь данные для подбора могут браться не напрямую из регистров накопления, а из регистра сведений РаспределениеЗапасов.
Важный момент: этот регистр заполняется фоновым заданием. Если вы внесли ручные правки в регистры накопления, данные в РаспределениеЗапасов могут обновиться не мгновенно. Пока регламентное задание «Актуализация распределения запасов» не отработает, форма подбора будет транслировать старую информацию.
Если визуальный анализ регистров не помог, придется воспользоваться отладчиком. Однако найти запрос динамического списка в форме подбора не так просто. Рассмотрим, как это сделать:
ПодборТоваровВДокументПродажи.СписокТоваров формируется программно.СформироватьТекстЗапроса или аналогично.В коде это выглядит примерно так (упрощенно):
ТекстЗапроса = ПолучитьБазовыйТекстЗапросаДляПодбора();
Если УчитыватьРезервы Тогда
ТекстЗапроса = ТекстЗапроса + " СОЕДИНЕНИЕ РегистрНакопления.ЗапасыИПотребности.Остатки...";
КонецЕсли;
Проанализировав этот запрос, вы увидите, что система объединяет (UNION) данные из множества таблиц, накладывая фильтры по складу, организации и типу запасов (собственный или комиссионный товар).
Чтобы данные в подборе стали корректными, выполните следующие действия:
ТоварыНаСкладах, ТоварыОрганизаций, СвободныеОстатки.ТоварыКОтгрузке, особенно если на складе включен ордерный учет.ЗапасыИПотребности, чтобы выровнять «виртуальные» остатки с физическими.Таким образом, подбор в УТ 11.4 — это не просто «чтение остатков со склада», а сложный аналитический механизм, учитывающий логистические статусы, распоряжения на отгрузку и планы распределения запасов. Только комплексная корректировка всех связанных регистров позволит добиться корректного отображения данных.