В процессе работы розничного предприятия часто возникают ситуации, когда технические сбои — отсутствие интернета, недоступность серверов «Честного ЗНАКа» или поломка сканера — блокируют работу кассы. В случае с маркированными товарами (табак, обувь, молочная продукция) типовая конфигурация 1С:Розница жестко контролирует наличие и корректность кода маркировки (КМ). Рассмотрим, как программно реализовать возможность обхода этой проверки, сохраняя при этом юридическую прозрачность учета.
Стандартная логика 1С:Розница предполагает, что без успешно считанного и проверенного КМ товар не может быть добавлен в чек. Некоторые администраторы пытаются решить проблему «в лоб», меняя дату начала обязательной маркировки в настройках интеграции с ИС МП. Проанализируем, почему это плохая практика: изменение этой константы влияет на всех пользователей системы одновременно, вызывает ошибки в уже открытых сменах и нарушает формирование фискальных данных.
Разберем более корректный подход, который заключается в создании «аварийного режима» для конкретного рабочего места кассира (РМК). Это позволит кассиру принудительно продать товар, если марка не читается, с условием, что данные будут скорректированы позже.
Для начала нам необходимо дать кассиру инструмент управления. Выясним, какие объекты нужно затронуть в расширении конфигурации. Проанализируем ситуацию: нам нужно разрешить проведение документа Чек ККМ, в котором по определенным строкам отсутствует код маркировки, но взведен специальный признак.
Товары документа ЧекККМ. Назовем его ПроблемаСМаркировкой (тип Булево).Пример кода для программного добавления колонки на форму (в процедуре ПриСозданииНаСервере):
&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
// Добавляем элемент управления на форму РМК
НовыйЭлемент = Элементы.Добавить("ТоварыПроблемаСМаркировкой", Тип("ПолеФормы"), Элементы.Товары);
НовыйЭлемент.Вид = ВидПоляФормы.ПолеФлажка;
НовыйЭлемент.ПутьКДанным = "Объект.Товары.ПроблемаСМаркировкой";
НовыйЭлемент.Заголовок = "Без КМ";
КонецПроцедуры
Теперь перейдем к самому ответственному этапу — обходу проверки при проведении. Нам необходимо найти в модуле менеджера или модуле объекта документа ЧекККМ процедуры, отвечающие за проверку заполнения кодов маркировки. Обычно это процедуры, связанные с проверкой перед записью или перед проведением.
Проанализируем процедуру контроля. Нам нужно вставить условие, которое будет пропускать строку товара, если наш флаг ПроблемаСМаркировкой равен Истина. Рассмотрим пример перехвата логики через расширение:
&Вместо("ПроверитьЗаполнениеКодовМаркировки")
Функция Расш1_ПроверитьЗаполнениеКодовМаркировки(Отказ, ТекстОшибки)
// Получаем текущие строки чека
Для Каждого СтрокаТЧ Из Объект.Товары Цикл
// Если флаг "Без КМ" установлен, пропускаем стандартную проверку для этой строки
Если СтрокаТЧ.ПроблемаСМаркировкой Тогда
Продолжить;
КонецЕсли;
// Здесь остается стандартный вызов или логика проверки КМ
// ...
КонецЦикла;
Возврат Истина;
КонецФункции
Важный момент: При использовании формата фискальных данных (ФФД) 1.2, кассовый аппарат требует передачи тега 2108 (мера количества). Если вы продаете маркированный товар без кода, система может выдать ошибку уже на уровне ККТ. В этом случае потребуется доработка модуля печати чека, чтобы для проблемных строк товар временно квалифицировался как обычный «немаркированный» товар.
Просто продать товар без кода — значит создать пересортицу и нарушить остатки в системе «Честный ЗНАК». Посмотрим на ситуацию со стороны учета: товар ушел со склада, но в ИС МП он числится за нами. Выясним, как автоматизировать последующее списание.
Рекомендуем создать новый Регистр Сведений ОтложенныеКодыМаркировки со следующей структурой:
Номенклатура, ЧекККМ, ДатаПродажи.Количество.ФотографияКода (если кассир успел сделать фото на телефон).При проведении чека с установленным флагом ПроблемаСМаркировкой, система должна записывать данные в этот регистр. В конце смены или раз в неделю ответственный сотрудник (бухгалтер или старший кассир) должен проанализировать записи в этом регистре и оформить документ Вывод из оборота в ГИС МТ с причиной «Розничная продажа», указав коды вручную.
Рассмотрим правовую сторону вопроса. Согласно 54-ФЗ, при техническом сбое (например, отключение электричества или интернета) торговля может продолжаться. Однако законодательство требует, чтобы все данные были переданы в ОФД, как только связь восстановится.
Правильный алгоритм действий при «продаже в тетрадку» (или через наш флаг):
Подведем итоги. Чтобы реализовать задачу контроля кодов маркировки «по желанию», выполните следующие действия:
ПроблемаСМаркировкой в ТЧ Товары документа ЧекККМ.&Вместо или &Перед для процедур проверки КМ, чтобы игнорировать отсутствие кода при включенном флаге.Помните: с апреля 2024 года вводится разрешительный режим на кассах. Это означает, что кассовое ПО будет обязано запрашивать сервер ГИС МТ перед продажей. Полное отключение проверок может привести к блокировке работы кассы со стороны ОФД или крупным штрафам. Используйте описанный выше механизм только как временную меру при аварийных ситуациях.