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