Поломка терминала сбора данных (ТСД) в разгар приемки алкогольной продукции — это кошмар для любого розничного магазина. С введением помарочного учета ЕГАИС 3.0 сверка каждой акцизной марки с данными входящей товарно-транспортной накладной (ТТН) стала обязательной процедурой. Принять товар «вслепую» — значит пойти на огромные риски пересортицы и получить штрафы от контролирующих органов.
В этой статье мы подробно разберем, как выйти из этой ситуации без покупки нового дорогостоящего ТСД. Мы рассмотрим три рабочих сценария: использование штатных инструментов вашей программы «1С:Розница» со стационарным 2D-сканером, превращение обычного смартфона в полноценный терминал и разработку собственного программного решения для интеграции с мобильными устройствами.
Если у вас сломался ТСД, но на рабочем месте товароведа или кассира есть обычный проводной или беспроводной 2D-сканер штрихкодов, покупать новое оборудование вообще не требуется. В современных версиях программы «1С:Розница» (начиная с редакции 2.2.8) встроен полноценный интерактивный интерфейс проверки поступающего алкоголя.
Давайте разберем по шагам, как настроить и выполнить проверку непосредственно на компьютере:
Для корректной работы сканера в режиме поштучной проверки марок крайне рекомендуется перевести его в режим эмуляции COM-порта (Virtual COM Port). Если сканер работает в режиме эмуляции клавиатуры, при каждом сканировании программе придется «ожидать» ввода в конкретное текстовое поле, что неудобно и часто приводит к ошибкам. Настройте драйвер оборудования в разделе «Администрирование» — «Подключаемое оборудование», выбрав стандартный драйвер 1С:Сканеры штрихкодов.
Перейдите в раздел «Закупки» — «Входящие ТТН ЕГАИС». Найдите нужную накладную, которая ожидает подтверждения, и откройте ее. В верхней части документа нажмите на кнопку «Проверка и подбор алкогольной продукции».
Перед вами откроется специализированная форма проверки. Начните сканировать штрихкоды упаковок или напрямую акцизные марки (PDF417 или DataMatrix) с бутылок. Программа выполняет автоматическое сопоставление считанного кода с данными, которые прислал поставщик в XML-файле накладной.
Обратите внимание на цветовую схему, реализованную в интерфейсе «1С»:
После завершения сканирования нажмите кнопку «Проверить и закрыть». Если были выявлены расхождения, программа автоматически предложит составить Акт расхождения для отправки в ЕГАИС.
Этот метод полностью бесплатен и выполняет роль «виртуального ТСД» непосредственно в учетной системе. Единственный минус — необходимость физически перемещать коробки с алкоголем к рабочему месту со сканером либо использовать беспроводной сканер с достаточным радиусом действия Bluetooth.
Если носить коробки к компьютеру неудобно, отличной альтернативой станет обычный Android-смартфон. Современные камеры телефонов без проблем распознают сложные двухмерные коды PDF417 и DataMatrix.
Для реализации этого подхода можно использовать несколько готовых решений:
Если стандартные интеграции вам не подходят и вы хотите реализовать собственный легкий веб-сервис или мобильное приложение для обмена данными между «1С» и смартфоном, давайте разберем логику построения такого решения.
Нам потребуется передать на мобильное устройство структуру документа ТТН ЕГАИС со списком ожидаемых акцизных марок. Проанализируем формат обмена данными. Для передачи сведений о номенклатуре и разрешенных марках удобно использовать легкий формат JSON.
Рассмотрим пример JSON-структуры, которую «1С» должна передать на мобильное устройство (сервис обмена):
[
{
"barcode": "4601033066016",
"name": "Водка Особая 0.5л",
"unit": "бут.",
"serial": true,
"serials_valid": [
"1234567890ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890",
"0987654321ABCDEFGHIJKLMNOPQRSTUVWXYZ0987654321"
]
}
]
При сканировании основного штрихкода (EAN-13) мобильное приложение должно переходить в режим сбора акцизных марок. Каждая отсканированная марка сверяется со списком из массива serials_valid. Если марка присутствует в массиве — она подсвечивается зеленым, если нет — приложение выдает предупреждение и подсвечивает строку красным цветом.
Выясним причину, почему разработчики часто сталкиваются со сложностями при поиске акцизных марок во входящих документах «1С:Розница». В старых версиях конфигурации или при нетипичной интеграции марки могут храниться внутри XML-протокола обмена, пришедшего из ЕГАИС. Нам необходимо программно извлечь этот XML и распарсить его.
Рассмотрим пример кода на языке «1С», который извлекает XML-данные входящего транспортного пакета ЕГАИС и собирает входящие акцизные марки по документу:
&НаСервере
Функция ПолучитьСписокАкцизныхМарокИзТТН(ДокументСсылка) Экспорт
СписокМарок = Новый Массив;
// Выполняем запрос к регистру сведений, где хранятся XML-данные обмена ЕГАИС
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ИсторияОбмена.ДанныеОбмена КАК ДанныеОбмена
|ИЗ
| РегистрСведений.ИсторияОбменаСЕГАИС КАК ИсторияОбмена
|ГДЕ
| ИсторияОбмена.Документ = &Документ";
Запрос.УстановитьПараметр("Документ", ДокументСсылка);
РезультатЗапроса = Запрос.Выполнить();
Если НЕ РезультатЗапроса.Пустой() Тогда
Выборка = РезультатЗапроса.Выбрать();
Выборка.Следующий();
// Чтение двоичных данных XML-файла
Попытка
ДанныеXML = Выборка.ДанныеОбмена.Получить();
Если ДанныеXML <> Неопределено Тогда
ЧтениеXML = Новый ЧтениеXML;
ЧтениеXML.УстановитьСтроку(ПолучитьСтрокуИзДвоичныхДанных(ДанныеXML));
// Парсим XML структуру в поисках тегов акцизных марок (обычно тег amc)
Пока ЧтениеXML.Прочитать() Цикл
Если ЧтениеXML.ТипУзла = ТипУзлаXML.НачалоЭлемента И ЧтениеXML.Имя = "amc" Тогда
ЧтениеXML.Прочитать();
Если ЧтениеXML.ТипУзла = ТипУзлаXML.Текст Тогда
СписокМарок.Добавить(ЧтениеXML.Значение);
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЧтениеXML.Закрыть();
КонецЕсли;
Исключение
ЗаписьЖурналаРегистрации("ЕГАИС.ПарсингМарок", УровеньЖурналаРегистрации.Ошибка,,, ПодробноеПредставлениеОшибки(ИнформацияОбОшибке()));
КонецПопытки;
КонецЕсли;
Возврат СписокМарок;
КонецФункции
Полученный массив акцизных марок мы можем легко упаковать в JSON с помощью встроенных средств работы с JSON (объект ЗаписьJSON) и передать через REST API в ваше мобильное или облачное приложение.
На стороне смартфона логика работы приложения предельно проста:
ТТНВходящаяЕГАИС.Поломка физического терминала сбора данных — это больше не повод останавливать бизнес-процессы или вручную переписывать символы акцизных марок. Проанализировав ситуацию, вы можете выбрать наиболее подходящий путь: