Как в 1С:Розница реализовать отключение проверки кодов маркировки при продаже в РМК?

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

В процессе работы розничного предприятия часто возникают ситуации, когда технические сбои — отсутствие интернета, недоступность серверов «Честного ЗНАКа» или поломка сканера — блокируют работу кассы. В случае с маркированными товарами (табак, обувь, молочная продукция) типовая конфигурация 1С:Розница жестко контролирует наличие и корректность кода маркировки (КМ). Рассмотрим, как программно реализовать возможность обхода этой проверки, сохраняя при этом юридическую прозрачность учета.

Анализ проблемы и выбор стратегии

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

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

Шаг 1: Доработка интерфейса РМК и структуры чека

Для начала нам необходимо дать кассиру инструмент управления. Выясним, какие объекты нужно затронуть в расширении конфигурации. Проанализируем ситуацию: нам нужно разрешить проведение документа Чек ККМ, в котором по определенным строкам отсутствует код маркировки, но взведен специальный признак.

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

Пример кода для программного добавления колонки на форму (в процедуре ПриСозданииНаСервере):


&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
    // Добавляем элемент управления на форму РМК
    НовыйЭлемент = Элементы.Добавить("ТоварыПроблемаСМаркировкой", Тип("ПолеФормы"), Элементы.Товары);
    НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
    НовыйЭлемент.ПутьКДанным = "Объект.Товары.ПроблемаСМаркировкой";
    НовыйЭлемент.Заголовок = "Без КМ";
КонецПроцедуры

Шаг 2: Модификация логики контроля маркировки

Теперь перейдем к самому ответственному этапу — обходу проверки при проведении. Нам необходимо найти в модуле менеджера или модуле объекта документа ЧекККМ процедуры, отвечающие за проверку заполнения кодов маркировки. Обычно это процедуры, связанные с проверкой перед записью или перед проведением.

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


&Вместо("ПроверитьЗаполнениеКодовМаркировки")
Функция Расш1_ПроверитьЗаполнениеКодовМаркировки(Отказ, ТекстОшибки)
    // Получаем текущие строки чека
    Для Каждого СтрокаТЧ Из Объект.Товары Цикл
        // Если флаг "Без КМ" установлен, пропускаем стандартную проверку для этой строки
        Если СтрокаТЧ.ПроблемаСМаркировкой Тогда
            Продолжить; 
        КонецЕсли;
        
        // Здесь остается стандартный вызов или логика проверки КМ
        // ...
    КонецЦикла;
    Возврат Истина;
КонецФункции

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

Шаг 3: Обеспечение «прозрачности» через регистр накопления

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

Рекомендуем создать новый Регистр Сведений ОтложенныеКодыМаркировки со следующей структурой:

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

Шаг 4: Юридические нюансы и «Аварийный режим»

Рассмотрим правовую сторону вопроса. Согласно 54-ФЗ, при техническом сбое (например, отключение электричества или интернета) торговля может продолжаться. Однако законодательство требует, чтобы все данные были переданы в ОФД, как только связь восстановится.

Правильный алгоритм действий при «продаже в тетрадку» (или через наш флаг):

  1. Кассир продает товар, фиксируя факт продажи в 1С через созданный нами механизм.
  2. Как только оборудование восстановлено, необходимо пробить Чек коррекции. В чеке коррекции ФФД 1.2 есть возможность указать конкретный код маркировки, который не был передан вовремя.
  3. Это действие полностью легализует продажу перед налоговой и «Честным ЗНАКом».

Резюме для разработчика

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

  1. Добавьте в расширение флаг ПроблемаСМаркировкой в ТЧ Товары документа ЧекККМ.
  2. Выведите этот флаг в интерфейс РМК для оперативного управления кассиром.
  3. Используйте аннотацию &Вместо или &Перед для процедур проверки КМ, чтобы игнорировать отсутствие кода при включенном флаге.
  4. Обязательно реализуйте механизм логирования таких продаж в отдельный регистр, чтобы остатки в 1С и в ГИС МТ не «разъехались».
  5. Проинструктируйте персонал о необходимости последующего оформления чеков коррекции или документов вывода из оборота вручную.

Помните: с апреля 2024 года вводится разрешительный режим на кассах. Это означает, что кассовое ПО будет обязано запрашивать сервер ГИС МТ перед продажей. Полное отключение проверок может привести к блокировке работы кассы со стороны ОФД или крупным штрафам. Используйте описанный выше механизм только как временную меру при аварийных ситуациях.

← На главную