Как настроить распределение продаж маркированных товаров между организациями в 1С:Розница 2.3 и устранить ошибку «Товар не ваш»

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

При работе в конфигурациях 1С:Розница 2.3 и 1С:УНФ 3.0 многие технические специалисты сталкиваются со специфической проблемой: при попытке продать маркированный товар через интерфейс РМК (Рабочее место кассира) в режиме распределения продаж между двумя и более организациями, система выдает ошибку. Суть ошибки заключается в том, что при сканировании кода маркировки программа обращается в систему «Честный ЗНАК» (ГИС МТ) от имени «неправильной» организации. В результате сервер возвращает ответ: «Товар не ваш» или «Код маркировки не принадлежит отправителю». Это происходит даже в тех случаях, когда обычный (немаркированный) товар распределяется по организациям корректно. Для временного обхода этой проблемы без изменения кода можно применить обработку для переноса даты проверки владельца кода маркировки.

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

Причина проблемы: Конфликт контекста организации при проверке марки

Выясним причину, почему автоматическое распределение «спотыкается» именно на маркировке. С введением разрешительного режима (Check-up) в 2024 году, проверка кода маркировки должна выполняться до момента добавления товара в чек. В этот момент программа делает запрос через API к серверам ГИС МТ.

Основная сложность заключается в том, что для выполнения запроса 1С должна передать токен авторизации конкретной организации. В стандартной логике РМК, пока товар не идентифицирован полностью и не сопоставлен с конкретным складом, система использует параметры организации, которая установлена для данного рабочего места или магазина «по умолчанию». Если товар фактически принадлежит Организации №2, а проверка инициируется от имени Организации №1, «Честный ЗНАК» отклоняет запрос, так как организация пытается проверить статус чужого имущества.

Решение 1: Корректная настройка складов и магазинов

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

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

Решение 2: Настройка транспортного сервиса ПИОТ для нескольких организаций

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

Разберем возможные схемы настройки:

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

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

Проанализируем логику работы: при сканировании кода DataMatrix, система получает GTIN. Мы можем использовать этот идентификатор для поиска остатков по регистрам. Найдя организацию, у которой данный товар числится на остатке, мы можем принудительно установить контекст организации для процедуры проверки.

Пример фрагмента кода, который можно использовать в расширении для перехвата события сканирования:


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

    ПродолжитьВызов(ДанныеСканирования);
КонецПроцедуры

Этот подход позволяет динамически менять организацию запроса в зависимости от того, чей товар оказался в руках у кассира.

Особенности работы через тонкий клиент и Apache

Разберем ситуацию, когда касса работает через веб-сервер. В этом случае отладка кода затруднена. Специалисты рекомендуют проверять логи обмена с ИС МП. В них можно четко увидеть, какой ИНН передается в заголовке запроса и какой идентификатор токена используется. Если вы видите, что для товара Организации №2 используется ИНН Организации №1 — проблема на уровне сопоставления объектов Организация и НастройкиИнтеграцииИСМП в базе данных.

Рекомендации по переходу на 1С:Розница 3.0

Важно отметить, что ветка 2.3 постепенно уходит с приоритетной поддержки. Разработчики фирмы 1С заявляют, что в новой архитектуре Розница 3.0 (на базе УНФ) механизмы разрешительного режима при многофирменном учете реализованы более глубоко. В версии 3.0 система лучше справляется с определением контекста организации через механизм «Склады в табличной части», что минимизирует количество ошибок при проверке маркировки. Если вы планируете переход на актуальную версию программы, для миграции накопленной информации подойдет раздел с решениями для переноса в Розницу.

Подведем итог: Для исправления ошибки «Товар не ваш» в 1С:Розница 2.3 необходимо в первую очередь убедиться в жесткой привязке складов к организациям и правильной настройке распределения продаж. Если это не помогает — настройте раздельные экземпляры ПИОТ для каждой организации или воспользуйтесь механизмом расширений для уточнения организации в момент сканирования кода. Для организации продаж от имени нескольких юридических лиц на одном рабочем месте также может пригодиться расширение для работы с несколькими кассами ККМ в РМК.

← На главную