Крах информационной базы — это один из самых серьезных кошмаров для любого бизнеса, особенно если речь идет о розничной торговле алкоголем. В случае полной утери данных восстановить учет номенклатуры, контрагентов и цен относительно просто. Однако, когда дело доходит до ЕГАИС и акцизных марок маркированной алкогольной продукции, стандартные инструменты инвентаризации оказываются бессильны.
В этой статье мы подробно разберем, как устроена архитектура помарочного учета в решениях 1С (на примере «1С:Управление торговлей 11.4» и «1С:Розница»), почему система требует наличия марок в локальной базе и какими практическими методами можно восстановить эти данные без необходимости вручную сканировать тысячи бутылок.
Для начала проанализируем техническую сторону вопроса. В современном ЕГАИС действует строгий поштучный (помарочный) учет крепкого алкоголя. Каждая физическая бутылка снабжена уникальной маркой формата DataMatrix. На стороне ЕГАИС эта марка привязана к так называемому Регистру №3 и ассоциирована со конкретной Справкой 2 (ранее известной как Справка Б), по которой данная партия товара поступила в ваш магазин.
Когда вы создаете абсолютно новую, «голую» базу данных 1С, вы можете без труда заполнить справочник номенклатуры, загрузить штрихкоды EAN-13 и даже провести инвентаризацию, зафиксировав количество бутылок. Но при этом ваша локальная база остается пустой в разрезе двух важнейших объектов:
Справочник.ШтрихкодыУпаковокТоваров (или аналогичный в вашей версии конфигурации), в котором физически хранятся символьные последовательности акцизных марок.РегистрСведений.АкцизныеМаркиЕГАИС, который связывает конкретную марку с номенклатурой, Справкой 2 и определяет ее текущий статус в системе (например, «В наличии», «Реализовано», «Отсутствует»).Если вы попытаетесь продать бутылку через кассовое программное обеспечение (например, «Штрих-Кассир» или встроенное РМК в 1С), просто отсканировав штрихкод EAN и акцизную марку, система контроля ККМ может заблокировать продажу. Программа выдаст ошибку, поскольку в локальной базе данных нет информации о том, к какой Справке 2 привязана данная марка и числится ли она вообще на остатках организации. Именно поэтому нам критически важно наполнить новую базу актуальными кодами марок.
Рассмотрим по шагам основные и наиболее эффективные сценарии решения этой задачи.
Выясним главную особенность движения алкоголя: все акцизные марки поступают к вам в составе входящих Товарно-транспортных накладных ЕГАИС (ТТН). Внутри XML-файла каждой помарочной накладной уже содержится полный перечень кодов маркировки для всех поставляемых бутылок. Если мы заставим ЕГАИС прислать эти накладные заново в нашу новую базу, 1С автоматически распарсит XML-структуру и сама запишет все марки в базу.
Для реализации этого метода выполним следующие действия:
service.egais.ru) в раздел проверки и переотправки документов. Там можно выгрузить список всех ТТН, отправленных на ваш FSRAR_ID.Этот метод хорош тем, что он полностью автоматизирован и не требует ручного труда по сканированию бутылок на складе.
Очень часто при аппаратных сбоях или вирусных атаках (например, шифровальщиках), когда база данных 1С погибает окончательно, сам компьютер, на котором развернут УТМ (Универсальный транспортный модуль), остается нетронутым. Или же служба УТМ была установлена на отдельном ПК.
Проанализируем этот сценарий. УТМ хранит всю историю входящих документов в собственной встроенной базе данных (в зависимости от версии это может быть СУБД SQLite или Apache Derby). Физически файлы базы данных располагаются в папке установки УТМ (обычно это путь вида C:\UTM\transporter\transportDB).
Если эти файлы целы, мы можем извлечь из них историю всех полученных XML-документов:
transportDB.ШтрихкодыУпаковокТоваров нашей новой базы 1С.Этот способ позволяет за считанные минуты восстановить абсолютно все марки, которые когда-либо проходили через ваш транспортный модуль, даже без обращения к серверам ЕГАИС.
Если восстановить локальную базу УТМ невозможно, а номеров ТТН у вас нет, мы можем обратиться к механизмам запроса остатков непосредственно из ЕГАИС. Однако здесь мы столкнемся с жесткими регуляторными лимитами.
Рассмотрим алгоритм этого метода:
Важное ограничение: Сервер ЕГАИС позволяет запрашивать остатки марок по одной Справке 2 не чаще одного раза в 10 минут для одного FSRAR_ID. Если у вас на балансе числится 100 или 200 различных справок (что вполне нормально для ассортимента в 3500 бутылок), данный процесс затянется на очень долгое время. Использовать его имеет смысл только для небольших магазинов с минимальным ассортиментом.
Если ни один из автоматических методов не дал результата, остается крайний вариант — физическое сканирование бутылок. Но выполнять его нужно грамотно, чтобы не парализовать работу кассы во время продаж.
Для этого в 1С используется механизм инвентаризации с помарочным сканированием:
Этот метод трудозатратен, но гарантирует стопроцентное совпадение фактических остатков на полках с данными вашей новой информационной базы.
Подводя итог, отметим: при потере базы данных в первую очередь проверьте сохранность папки УТМ и постарайтесь запросить историю ТТН у поставщиков. Это сэкономит вам десятки часов ручной работы и позволит запустить продажи алкоголя в кратчайшие сроки.