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