Как реализовать продажу товаров от двух организаций с разделением остатков в 1С

Программист Управленческий учет Торговля и дистрибуция
← На главную

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

Метод 1: Использование механизма Интеркампани (Intercompany)

Проанализируем самый «цивилизованный» с точки зрения методологии 1С способ — настройку схемы Интеркампани. Этот механизм позволяет продавать товар, фактически принадлежащий одной организации, от лица другой организации. Система сама зафиксирует отрицательный остаток по организации-продавцу и предложит оформить документ Передача товаров между организациями в конце периода.

Разберем по шагам, как это работает:

  1. Включаем опцию «Передачи товаров между организациями» в настройках системы.
  2. Настраиваем правила передачи: указываем, какая организация имеет право продавать товар другой организации.
  3. В РМК кассир будет видеть общий остаток товара на складе. Система позволит пробить чек от любой организации, даже если по учету товар числится за другой.

Плюсы: Не требуется доработка конфигурации; автоматическое формирование документов перепродажи между своими юрлицами.

Минусы: Кассир все равно видит «общую кучу» товаров, и если задача стоит именно в жестком разделении видимости (чтобы кассир случайно не продал чужой товар), этот метод без дополнительных настроек не подойдет.

Метод 2: Разделение через «виртуальные» склады

Если программная доработка нежелательна, рассмотрим вариант с логическим разделением складов. В системе создаются два склада, например: «Основной (Орг 1)» и «Основной (Орг 2)». Физически это один и тот же магазин, но в программе они разделены.

Для реализации этого метода выполним следующее:

  1. Создаем два элемента в справочнике Склады.
  2. Для каждого рабочего места кассира (или пользователя) настраиваем основной склад по умолчанию.
  3. При поступлении товара строго приходуем его на «свой» склад.

В этом случае в РМК при подборе товаров будут отображаться остатки только по выбранному складу. Это самый простой способ «из коробки», который решает проблему видимости остатков. Однако он усложняет инвентаризацию, так как фактически один товар на полке придется считать по двум разным складским документам.

Метод 3: Программная доработка подбора товаров через расширение

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

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


ВЫБРАТЬ
    Номенклатура.Ссылка КАК Ссылка,
    ЕСТЬNULL(ТоварыОрганизацийОстатки.КоличествоОстаток, 0) КАК ОстатокПоОрганизации
ИЗ
    Справочник.Номенклатура КАК Номенклатура
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыОрганизаций.Остатки(&Период, Организация = &ВыбраннаяОрганизация) КАК ТоварыОрганизацийОстатки
    ПО Номенклатура.Ссылка = ТоварыОрганизацийОстатки.Номенклатура

При таком подходе мы выясним точный остаток конкретного юридического лица. В интерфейсе РМК необходимо будет добавить параметр ВыбраннаяОрганизация, который будет считываться из настроек текущей кассы ККМ, подключенной к рабочему месту.

Метод 4: Распределение продаж в «Новом РМК»

В современных версиях 1С (начиная с релизов УТ 11.5 и Розница 3.0) реализовано так называемое «Новое РМК». Проанализируем его возможности, так как разработчики уже заложили туда функционал распределения продаж.

В настройках РМК теперь можно указать:

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

Метод 5: Использование RLS (Ограничение доступа на уровне записей)

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

Важно: Включение RLS может существенно снизить производительность базы данных, особенно если в системе работает много пользователей и накоплен большой объем данных. Рекомендуем использовать этот метод только в крайнем случае и на мощном серверном оборудовании.

Выводы и рекомендации

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

  1. Если вы используете современные версии программ (Розница 3.0, УНФ 3.0), используйте штатный механизм «Распределение продаж» в новом РМК.
  2. Если вам нужно простое решение без программирования на старых версиях — используйте виртуальные склады для каждой организации.
  3. Если требуется сохранить единый склад и автоматизировать процесс — оптимальным будет создание расширения, которое добавит отбор по организации в динамический список подбора товаров, опираясь на данные регистра ТоварыОрганизаций.

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

← На главную