В розничной торговле алкоголем пользователи часто сталкиваются с ситуацией, когда входящая товарно-транспортная накладная (ТТН) в ЕГАИС «зависает» в статусе ожидания подтверждения. Пытаясь ускорить процесс, операторы или товароведы проверяют статус документа в личном кабинете ФСРАР или на специализированных сайтах проверки. Убедившись, что на сервере ЕГАИС документ уже подтвержден, они принудительно меняют статус ТТН в самой программе 1С на «Подтверждено» (вручную или с помощью специальных обработок).
Однако при попытке продать этот алкоголь на кассе в интерфейсе РМК (Рабочего места кассира) система выдает критическую ошибку и блокирует добавление товара в чек. В этой статье мы подробно разберем, почему «косметическая» смена статуса накладной ломает розничные продажи, как устроена архитектура учета акцизных марок в 1С и какими способами можно восстановить корректную работу системы.
Проанализируем внутренний механизм взаимодействия 1С и Универсального транспортного модуля (УТМ) ЕГАИС. Когда вы принимаете алкогольную продукцию, программа работает не просто с документом ТТН, а с базой данных уникальных идентификаторов — акцизных марок.
При нормальном цикле документооборота происходят следующие действия:
Когда вы принудительно меняете статус самой ТТН в 1С на «Подтверждено» в обход УТМ, программа выполняет это действие только для формы документа. Реальные квитанции от ЕГАИС в базу не поступали, а значит, триггер для обновления марок не сработал. В результате накладная числится закрытой, но в регистре РегистрСведений.АкцизныеМаркиЕГАИС все марки этой поставки остаются в статусе «Не подтверждена» или вообще не имеют статуса. При сканировании бутылки на кассе программа проверяет именно этот регистр: не находя марку со статусом «В наличии», система безопасности 1С блокирует ее продажу во избежание штрафов за торговлю неучтенным алкоголем.
Выяснив причину проблемы, рассмотрим пошагово несколько способов ее решения.
Этот способ является наиболее правильным и безопасным, так как он позволяет штатно получить все квитанции от ЕГАИС и автоматически перевести марки в нужный статус.
Разберем данный процесс по шагам:
Статусы документов ЕГАИС.После отправки запроса 1С свяжется с УТМ. Поскольку на сервере ЕГАИС накладная уже давно успешно подтверждена, система вернет актуальную квитанцию. Программа обработает ее и автоматически переведет все связанные марки в статус «В наличии». После этого продукцию можно будет беспрепятственно пробивать на кассе.
Если накладная заблокирована для отправки запросов, но ее форма внутри 1С позволяет осуществлять интерактивные действия, мы можем использовать встроенный механизм проверки поступления.
Рассмотрим, как это сделать:
ТТН Входящая ЕГАИС.Эта процедура принудительно инициирует запись в регистр сведений акцизных марок, присваивая им легальный для продажи статус.
В ситуациях, когда накладная содержит всего несколько бутылок или предыдущие методы по техническим причинам недоступны, мы можем отредактировать записи в базе данных напрямую. Этот метод требует прав администратора.
Проанализируем последовательность действий:
Акцизные марки ЕГАИС.Данный способ моментально «оживляет» кассу, однако применять его массово вручную для накладных с сотнями позиций трудоемко.
Если у вас в накладной содержится большое количество позиций, ручная правка регистра нецелесообразна. В таком случае мы можем написать небольшую внешнюю обработку или выполнить код в консоли групповой обработки данных. Посмотрим на пример кода, который автоматизирует этот процесс для конкретной ТТН:
// Определим ссылку на нашу проблемную накладную ЕГАИС
СсылкаНаТТН = Документы.ТТНВходящаяЕГАИС.НайтиПоНомеру("00000001", ТекущаяДата());
Если Не СсылкаНаТТН.Пустая() Тогда
// Запросим все марки, привязанные к данной накладной
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| АкцизныеМарки.Марка КАК Марка,
| АкцизныеМарки.Основание КАК Основание
|ИЗ
| РегистрСведений.АкцизныеМаркиЕГАИС КАК АкцизныеМарки
|ГДЕ
| АкцизныеМарки.Основание = &ТТН";
Запрос.УстановитьПараметр("ТТН", СсылкаНаТТН);
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
// Начнем транзакцию для ускорения записи и безопасности данных
НачатьТранзакцию();
Попытка
Пока Выборка.Следующий() Цикл
// Создаем менеджер записи для изменения каждой марки в регистре
МенеджерЗаписи = РегистрыСведений.AcciznieMarkiEGAIS.СоздатьМенеджерЗаписи(); // Имя регистра зависит от версии конфигурации
// Для типовых современных конфигураций используем:
МенеджерЗаписи = РегистрыСведений.АкцизныеМаркиЕГАИС.СоздатьМенеджерЗаписи();
МенеджерЗаписи.Марка = Выборка.Марка;
МенеджерЗаписи.Прочитать();
Если МенеджерЗаписи.Выбран() Тогда
// Устанавливаем необходимый статус для розничной продажи
МенеджерЗаписи.Статус = Перечисления.СтатусыАкцизныхМарок.ВНаличии;
МенеджерЗаписи.Записать();
КонецЕсли;
КонецЦикла;
ЗафиксироватьТранзакцию();
Сообщить("Статусы акцизных марок успешно обновлены на 'В наличии'.");
Исключение
ОтменитьТранзакцию();
Сообщить("Ошибка при обновлении статусов: " + ОписаниеОшибки());
КонецПопытки;
КонецЕсли;
Использование этого скрипта позволяет за доли секунды исправить тысячи зависших акцизных марок без необходимости перезапрашивать документы в УТМ ЕГАИС.
Иногда при попытке повторно запросить ТТН или отправить акт подтверждения пользователи сталкиваются с ошибками совместимости версий формата обмена (например, система сообщает об отправке старых версий документов v1 или v2). Помните, что ФСРАР полностью перевел систему на формат v4 (WayBill_v4) для накладных и версии ChequeV3/ChequeV4 для розничных чеков.
Если у вас возникают подобные технические сбои при интеграции:
Соблюдение этих правил и понимание внутренней логики работы регистров 1С позволит вам оперативно решать любые нештатные ситуации с продажей маркированного алкоголя и избегать простоев на кассовых узлах.