При работе с алкогольной продукцией в 1С:Розница 2.4 пользователи часто сталкиваются с трудоемким процессом: при оформлении перемещения между магазинами программа требует обязательного сканирования каждой акцизной марки для формирования исходящей ТТН ЕГАИС. Если перемещения происходят часто и в больших объемах, ручное сканирование становится «бутылочным горлышком» бизнес-процесса. Разберем, как устроена эта проверка в системе, можно ли ее обойти программно и какие легальные альтернативы существуют для упрощения жизни склада.
Для начала проанализируем, почему система вообще требует сканирования марок. В конфигурации 1С:Розница 2.4 за проверку заполнения данных в документе ТТН Исходящая ЕГАИС отвечает встроенный механизм валидации. Если мы обратимся к модулю объекта этого документа, то увидим процедуру ОбработкаПроверкиЗаполнения. Рассмотрим фрагмент кода, который инициирует проверку:
Процедура ОбработкаПроверкиЗаполнения(Отказ, ПроверяемыеРеквизиты)
МассивНепроверяемыхРеквизитов = Новый Массив;
// Проверка на отправку самому себе
Если Грузоотправитель = Грузополучатель Тогда
ОбщегоНазначенияКлиентСервер.СообщитьПользователю(
НСтр("ru = 'Грузополучатель должен отличаться от грузоотправителя.'"),
ЭтотОбъект, "Грузополучатель",, Отказ);
КонецЕсли;
// Ключевое условие проверки марок
Если Дата >= '20180701' Тогда
АкцизныеМаркиЕГАИС.ПроверитьЗаполнениеАкцизныхМарок(ЭтотОбъект, Отказ);
КонецЕсли;
ИнтеграцияЕГАИСПереопределяемый.ОбработкаПроверкиЗаполнения(ЭтотОбъект, Отказ, ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
ОбщегоНазначения.УдалитьНепроверяемыеРеквизитыИзМассива(ПроверяемыеРеквизиты, МассивНепроверяемыхРеквизитов);
КонецПроцедуры
Как мы видим, в коде жестко прописано условие: если дата документа позже 1 июля 2018 года, система вызывает метод ПроверитьЗаполнениеАкцизныхМарок. Именно этот метод блокирует проведение документа и отправку данных в ЕГАИС, если табличная часть с марками пуста.
Самый быстрый способ избавиться от необходимости постоянного сканирования — внести изменения в вышеуказанную процедуру. Посмотрим, как это реализовать. Если перед нами стоит задача полностью убрать контроль в рамках конкретной базы, мы можем закомментировать условие проверки даты. Однако, более правильным подходом будет добавление дополнительного условия, например, проверку типа продукции или конкретного подразделения.
Если мы решим пойти по пути наименьшего сопротивления, код будет выглядеть так:
// Если Дата >= '20180701' Тогда
// АкцизныеМаркиЕГАИС.ПроверитьЗаполнениеАкцизныхМарок(ЭтотОбъект, Отказ);
// КонецЕсли;
Важный нюанс: программное отключение проверки в 1С позволит вам провести документ, но это не гарантирует, что УТМ (Универсальный транспортный модуль) ЕГАИС примет такой документ. Для крепкого алкоголя, который находится на поштучном учете (Регистр №3), указание марок в ТТН является обязательным на уровне протокола обмена с серверами ФСРАР. Если вы попытаетесь отправить «пустую» накладную на поштучный товар, сервер вернет ошибку «Не указаны марки для продукции».
Необходимо различать учет внутри 1С и учет в системе ЕГАИС. Рассмотрим основные моменты:
Поэтому, прежде чем править код, проанализируем остатки. Если вся продукция поштучная, отключение проверки в 1С приведет лишь к тому, что ошибки будут возникать не в момент нажатия кнопки «Провести», а чуть позже — при получении ответов от ЕГАИС.
Если сканировать каждую бутылку невозможно из-за объемов, рассмотрим легальные способы ускорения процесса без нарушения логики ЕГАИС:
1. Использование групповой тары (Агрегация)
Если алкоголь поступает от поставщика в заводских коробах, на которых есть штрихкод упаковки, необходимо сохранять эту агрегацию. В 1С:Розница при оформлении перемещения вы можете отсканировать один код короба. Система автоматически «подтянет» все марки, которые входят в эту упаковку по данным базы. Это самый быстрый и правильный способ.
2. Запрос марок по справке 2 (РФУ2)
В типовых решениях 1С реализован функционал «Запросить марки по справке 2». Выясним, как это работает:
Этот метод позволяет не сканировать бутылки физически, но несет риск пересортицы: если фактически на полке стоит бутылка из другой партии, при продаже возникнет ошибка.
3. Использование терминалов сбора данных (ТСД)
Вместо того чтобы нести алкоголь к компьютеру со сканером, используем ТСД. Кладовщик сканирует товар прямо на месте хранения, после чего данные выгружаются в документ 1С. Это стандартная практика для магазинов со средним и крупным оборотом.
Проанализируем ситуацию с юридической точки зрения, упомянутую в обсуждении. Это критически важно для безопасности бизнеса:
Рассмотрев все варианты, мы можем сделать следующие выводы. Если ваша продукция является немаркируемой (пиво) или относится к старым партиям без поштучного учета, вы можете смело модифицировать код, убрав проверку даты в модуле документа. Однако для крепкого алкоголя на поштучном учете такие правки бессмысленны, так как УТМ заблокирует отправку.
Для оптимизации работы рекомендуем: