Как организовать предварительную проверку акцизных марок в УТАП до подтверждения ТТН

Программист 1С v8.3 (Управляемые формы) Управленческий учет Торговля и дистрибуция
← На главную

При работе с помарочным учетом в системе УТАП (Управление торговлей алкогольной продукцией) специалисты часто сталкиваются с методологическим ограничением: записи в регистры сведений и накопления, содержащие информацию о конкретных акцизных марках и иерархии упаковок, происходят только после создания и проведения документа Акт подтверждения ТТН ЕГАИС. Однако на практике склад нуждается в проверке соответствия фактически пришедшего товара данным из накладной до того, как право собственности на товар юридически перейдет к покупателю. Если подтвердить накладную "на доверии", а затем обнаружить пересорт по маркам, процедура возврата или списания станет крайне трудоемкой.

В данной статье мы разберем, как реализовать механизм предварительной проверки, используя данные, которые уже содержатся в системе, но еще не "осели" в регистрах, а также рассмотрим особенности работы с терминалами сбора данных (ТСД) в этом контексте.

Анализ проблемы и поиск данных в системе

Проанализируем ситуацию: когда в 1С загружается входящая ТТН ЕГАИС, система получает от УТМ (Универсального транспортного модуля) полноценный XML-файл. В этом файле (версии 3.0 и выше) уже прописаны все марки, привязанные к конкретным позициям алкогольной продукции, а также коды транспортных упаковок (SSCC) и их вложения. Тот факт, что типовые механизмы конфигурации не записывают эти данные в свои регистры сразу, — это защитный механизм от замусоривания базы данными по накладным, которые могут быть отклонены.

Тем не менее, сами данные физически находятся в базе данных 1С, обычно в реквизите типа ХранилищеЗначения внутри документа или связанного справочника ТТН ЕГАИС входящая. Выясним причину, по которой мы не можем использовать их напрямую: типовые формы проверки продукции на ТСД часто обращаются именно к регистрам. Следовательно, наша задача — "напилить" свой механизм разбора XML или использовать промежуточные буферные таблицы.

Решение 1: Прямой разбор XML из УТМ

Это наиболее надежный путь, который позволяет получить данные о марках в момент открытия формы проверки на ТСД. Рассмотрим алгоритм реализации:

  1. Получим текст входящего XML-сообщения из объекта ТТН ЕГАИС (входящая).
  2. Используя средства работы с XML (ЧтениеXML) или ФабрикуXDTO, извлечем узлы, содержащие марки (amc:amc) и транспортные упаковки.
  3. Загрузим эти данные во временную таблицу или в коллекцию на форме ТСД для сопоставления со сканером.

Посмотрим на пример кода, который инициализирует чтение данных из входящего сообщения:


// Пример получения данных о марках из XML
Чтение = Новый ЧтениеXML;
// Получаем XML из хранилища документа
ТекстXML = ДокументОбъект.ДанныеТТН.Получить(); 
Чтение.УстановитьСтроку(ТекстXML);

// Используем XDTO для разбора структуры документа ЕГАИС
ДанныеТТН = ФабрикаXDTO.ПрочитатьXML(Чтение);

Для Каждого Позиция Из ДанныеТТН.Content.WayBillV3.Body.Position Цикл
    // Здесь получаем данные о марках для каждой позиции
    Для Каждого Марка Из Позиция.InformF2.MarkInfo Цикл
        // Добавляем марку в таблицу для сверки
        НоваяСтрока = ТаблицаМарокДляСверки.Добавить();
        НоваяСтрока.Штрихкод = Марка.amc;
    КонецЦикла;
КонецЦикла;

Разберем подробнее: после того как мы сформировали таблицу ТаблицаМарокДляСверки, мы можем передать ее на ТСД. При сканировании бутылки кладовщиком программа будет искать считанный код в этой таблице. Если код найден — помечаем его как "принятый", если нет — сигнализируем о расхождении.

Решение 2: Использование буферных таблиц (Регистр "Предварительная приемка")

Если прямой разбор XML кажется сложным для постоянного обращения с ТСД (особенно при больших объемах данных в десятки тысяч марок), рассмотрим создание промежуточного звена. Создадим вспомогательный Регистр сведений "Буфер приемки ЕГАИС".

Проанализируем ситуацию: при загрузке ТТН мы можем программно заполнять этот регистр данными о марках. Это не "замусорит" основные регистры остатков, так как данный буфер будет очищаться автоматически после того, как документ будет подтвержден или отклонен. Преимущество такого подхода в том, что ТСД сможет работать с индексированными данными через стандартные запросы 1С, что значительно ускорит поиск марки при сканировании.

Особенности работы с ТСД на Windows CE 6

Как было отмечено в обсуждении, использование устаревшего оборудования (например, MobileBase DS5 на Windows CE 6) накладывает свои ограничения. Поскольку современные мобильные приложения 1С требуют Android или iOS, для Windows CE оптимальным выбором остается работа через Web-сервер и публикацию информационной базы.

Рассмотрим по шагам настройку такой работы:

  1. Опубликуем базу 1С на веб-сервере (IIS или Apache).
  2. Создадим в конфигурации специализированную "легкую" форму для мобильного клиента. На этой форме не должно быть тяжелых элементов интерфейса — только поле ввода штрихкода, счетчик (сканировано/осталось) и список расхождений.
  3. Настроим ТСД на работу через браузер или специализированный RDP-клиент. Однако веб-клиент предпочтительнее, так как он позволяет более гибко обрабатывать события внешнего события от сканера штрихкодов.

Важный момент: при работе через веб-сервер на Windows CE убедитесь, что драйвер сканера ТСД настроен в режиме эмуляции клавиатуры (Keyboard Wedge), либо используйте специализированные вставки JavaScript для перехвата данных из порта, если используется промышленный браузер.

Стратегии проверки: полная или выборочная?

Когда приходят десятки тысяч бутылок на палетах, полная проверка каждой марки невозможна физически. В этом случае мы должны предусмотреть в нашей обработке разные стратегии сканирования:

Юридические последствия и завершение процесса

Выясним, что делать после того, как проверка завершена. После сканирования на ТСД у нас формируется фактический список марок. Мы должны сравнить его с данными из ТТН. Если обнаружены расхождения (лишние марки или недостача), у нас есть два варианта:

  1. Оформить Акт расхождений: В акте мы указываем только фактически принятые позиции. Поставщик должен будет подтвердить этот акт со своей стороны.
  2. Отклонить накладную целиком: Если пересорт слишком велик, накладная отклоняется, и поставщик присылает новую ТТН с корректными данными.

Использование вышеописанных методов позволит вам быть уверенными в чистоте помарочного учета еще до того, как товар будет официально зачислен на баланс вашей организации. Помните, что в условиях жесткого контроля со стороны РАР, предварительная проверка — это не роскошь, а необходимость для минимизации штрафных рисков.

← На главную