Как настроить проверку остатков по организации при резервировании товара в 1С:УТ 11

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

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

Анализируем причину поведения системы: физический vs финансовый учет

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

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

Выясним причину такого решения разработчиков: логика 1С заключается в том, что резерв — это намерение занять физическую единицу товара на полке склада. Если менеджер видит, что болт на складе есть, он его резервирует. А вопрос о том, как это будет оформлено юридически (через прямую продажу или через механизм межфирменных продаж), решается позже.

Вариант 1: Разделение складов (Стандартный путь)

Самый простой и методически верный с точки зрения разработчиков 1С способ — это разделение одного физического склада на несколько логических складов в программе. Рассмотрим этот процесс по шагам:

  1. Создаем для каждой организации свой собственный склад (например, «Склад ООО Ромашка» и «Склад ООО Лютик»).
  2. В настройках каждого склада указываем материально ответственное лицо и привязываем его к процессам конкретной организации.
  3. При оформлении Заказа клиента менеджер выбирает склад, соответствующий организации заказа.

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

Вариант 2: Использование механизма «Интеркомпани»

Если ваша компания использует несколько юридических лиц для оптимизации налогообложения или разделения потоков, но товар физически хранится вместе, проанализируем механизм «Передачи между организациями» (Интеркомпани). Выясним, как это работает:

В разделе НСИ и администрирование — Настройка НСИ и разделов — Финансовый результат и контроллинг — Учет товаров включим опцию Контроль остатков товаров организаций и настроим схему Интеркомпани. Это позволит системе:

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

Вариант 3: Настройка контроля остатков при отгрузке

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

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

Вариант 4: Доработка системы через расширение (Для программистов)

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

Пример алгоритма проверки на языке 1С (концептуально):


// В модуле объекта или через расширение в обработке проведения
Процедура ПередПроверкойОстатковПоОрганизации(Отказ, ДокументОбъект)
    Запрос = Новый Запрос;
    Запрос.Текст = 
        "ВЫБРАТЬ
        |   ТоварыОрганизацийОстатки.КоличествоОстаток КАК Остаток
        |ИЗ
        |   РегистрНакопления.ТоварыОрганизаций.Остатки(&МоментВремени, Организация = &Организация И Номенклатура = &Номенклатура И Склад = &Склад) КАК ТоварыОрганизацийОстатки";
    
    Запрос.УстановитьПараметр("МоментВремени", ДокументОбъект.МоментВремени());
    Запрос.УстановитьПараметр("Организация", ДокументОбъект.Организация);
    // ... установка остальных параметров для каждой строки ТЧ ...
    
    Результат = Запрос.Выполнить();
    // Если Остаток < ТребуемыйРезерв, тогда Отказ = Истина;
КонецПроцедуры

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

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

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

Для решения вашей задачи мы рекомендуем следующий план действий:

  1. Оцените возможность разделения складов. Это самый надежный и бесплатный способ, не требующий программирования и не замедляющий систему.
  2. Включите «Контроль остатков товаров организаций». Это хотя бы предотвратит ошибочную отгрузку (реализацию) чужого товара, даже если резерв будет поставлен некорректно.
  3. Используйте расширение. Если бизнес-процесс категорически требует контроля именно в заказе и именно на одном складе, наймите программиста для написания небольшого расширения, которое будет выполнять запрос к остаткам организаций при смене статуса заказа на «К выполнению».

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

← На главную