Как в 1С:Управление торговлей 11.4 ограничить резервирование и списание товаров остатками конкретной организации

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

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

Методологическая причина проблемы: два контура учета

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

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

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

Решение 1: Настройка одностороннего Интеркампани

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

Проанализируем необходимые настройки:

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

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

Решение 2: Использование виртуальных складов (Группы складов)

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

Разберем алгоритм действий:

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

Теперь посмотрим, как это работает в документах:

Важный нюанс: при такой схеме придется внимательно следить за ордерной схемой (если она используется) и перемещениями, так как для системы это два разных места хранения.

Решение 3: Доработка контроля остатков в Заказе клиента (для программистов)

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

Рассмотрим пример логики, которую можно внедрить в процедуру проведения Заказа клиента:


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

// Здесь добавляем логику проверки: если Резерв > ОстатокОрг + РазрешенныйИнтеркампани, то Отказ = Истина;

Проанализируем ситуацию: просто проверить остаток по одной организации недостаточно, нужно учитывать настройки Интеркампани. Программисту следует обращаться к функции типового модуля ЗапасыСервер.ОстаткиТоваровОрганизаций(), которая учитывает разрешенные схемы передачи между фирмами.

Резюме и практические советы

Выбор решения зависит от готовности менять бизнес-процессы:

  1. Без доработок и без деления складов: Настраиваем Интеркампани (Решение 1). Резерв в заказах будет «общим», но ООО не сможет отгрузить товар ИП. Это создаст неудобства (менеджер увидит ошибку только при попытке реализации), но обеспечит финансовую чистоту.
  2. Без доработок с делением складов: Используем Группы складов (Решение 2). Это самый правильный методологический путь в рамках типового функционала 1С.
  3. С доработкой: Используем расширение для контроля остатков организаций непосредственно в момент проведения заказа в статусе «К обеспечению» или «Резервировать на складе».

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

← На главную