Почему при проведении Заказа клиента в 1С:Управление торговлей 11 не контролируются остатки товаров?

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

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

Разберем подробно причины такого поведения системы, выясним архитектурные отличия контроля остатков в УТ 11 и рассмотрим по шагам, как настроить резервирование и контроль доступности товаров на этапе оформления заказов.

Архитектурные особенности контроля остатков в 1С:УТ 11

Проанализируем, почему типовая логика 1С разделяет оформление заказа и фактическое списание со склада:

  1. Заказ как фиксация потребности: В концепции УТ 11 документ Заказ клиента отражает потребность покупателя. Программа не должна запрещать запись намерения клиента купить товар только потому, что его прямо сейчас нет в наличии. Если позиции нет на складе, заказ может выступать основанием для закупки или перемещения.
  2. Режим «Заказ как счет»: Если в настройках оптовых продаж включен упрощенный режим использования заказов, документ выполняет роль печатного счета на оплату. В этом режиме контроль обеспечения полностью отключен, а документ не делает движений по регистрам резервов.
  3. Разделение складского учета и товаров организаций: Проверка доступности товара по конкретной организации (в том числе по схемам Интеркампани) выполняется только в момент перехода прав собственности — то есть при проведении документа Реализация товаров и услуг. Заказ клиента резервирует физическое количество на складе, но не фиксирует принадлежность товара конкретному юридическому лицу.

Как включить контроль остатков и резервирование в Заказе клиента

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

  1. Переключение режима работы с заказами:

    Перейдем в раздел НСИ и администрирование → Настройка НСИ и разделов → Продажи → Оптовые продажи. В поле Использование заказов вместо варианта «Заказ как счет» выберем «Заказ только со склада» или «Заказ со склада и под заказ».

  2. Настройка контроля обеспечения на складах:

    Откроем карточку используемого склада в разделе НСИ и администрирование → Склады и магазины и убедимся, что включена опция Контролировать обеспечение.

  3. Использование статусов и действий в документе:

    После включения расширенного режима в табличной части документа Заказ клиента появляется колонка Действия (или колонка обеспечения). Для строк заказа можно выбирать варианты: Не обеспечивать, К обеспечению, Резервировать на складе, Резервировать к дате, Отгрузить.

    Система не позволит установить действие Резервировать на складе или Отгрузить на количество, превышающее текущий свободный остаток на складе.

  4. Ограничение прав менеджеров:

    Чтобы менеджеры не могли принудительно ставить статус отгрузки без фактического наличия, проверим профили групп доступа. У пользователей должно отсутствовать право на отклонение от условий обеспечения (роль Редактирование обеспечения в заказах сверх доступного остатка).

Как проверить резервы и свободные остатки в отчетах

Рассмотрим, где и какими типовыми отчетами можно проанализировать остатки, резервы и заказы, которыми они заняты:

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

Также непосредственно из формы открытого заказа клиента можно нажать кнопку Состояние обеспечения. Это позволит в наглядном виде увидеть текущую обеспеченность каждой строки заказа свободными складскими остатками или ожидаемыми поставками.

Что делать, если требуется полный запрет проведения заказа при нехватке остатков

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

Посмотрим на пример логики проверки свободных остатков в расширении. В модуле объекта документа или в обработчике проверки заполнения перехватывается проведение и выполняется запрос к регистру накопления СвободныеОстатки или ТоварыОрганизаций:


&Вместо("ОбработкаПроверкиЗаполнения")
Процедура Расш_ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
    
    // Выполняем стандартную проверку
    ПродолжитьВызов(Отказ, ПроверяемыеРеквизиты);
    
    // Если уже есть отказ, дополнительные проверки не требуются
    Если Отказ Тогда
        Возврат;
    КонецЕсли;
    
    // Дополнительный контроль остатков при проведении
    Если Статус = Перечисления.СтатусыЗаказовКлиентов.КОтгрузке Тогда
        Запрос = Новый Запрос;
        Запрос.Текст = 
            "ВЫБРАТЬ
            |	ТабЧасть.Номенклатура КАК Номенклатура,
            |	ТабЧасть.Количество КАК КоличествоВЗаказе,
            |	ЕСТЬNULL(Остатки.ВНаличииОстаток, 0) КАК СвободныйОстаток
            |ИЗ
            |	Документ.ЗаказКлиента.Товары КАК ТабЧасть
            |	ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.СвободныеОстатки.Остатки(
            |		,
            |		Склад = &Склад) КАК Остатки
            |	ПО ТабЧасть.Номенклатура = Остатки.Номенклатура
            |ГДЕ
            |	ТабЧасть.Ссылка = &Ссылка
            |	И ТабЧасть.Количество > ЕСТЬNULL(Остатки.ВНаличииОстаток, 0)";
            
        Запрос.УстановитьПараметр("Ссылка", Ссылка);
        Запрос.УстановитьПараметр("Склад", Склад);
        
        Результат = Запрос.Выполнить();
        Если НЕ Результат.Пустой() Тогда
            Отказ = Истина;
            Выборка = Результат.Выбрать();
            Пока Выборка.Следующий() Цикл
                Сообщение = Новый СообщениеПользователю;
                Сообщение.Текст = СтрШаблон(
                    "Недостаточно товара %1: требуется %2, доступно %3",
                    Выборка.Номенклатура,
                    Выборка.КоличествоВЗаказе,
                    Выборка.СвободныйОстаток
                );
                Сообщение.Поле = "Товары";
                Сообщение.Сообщить();
            КонецЦикла;
        КонецЕсли;
    КонецЕсли;
    
КонецПроцедуры

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

← На главную