Контекст
Компания работает с медицинскими изделиями, для которых требования по маркировке зависят сразу от нескольких классификаторов: кода ТН ВЭД, ОКПД-2 и кода вида медицинского изделия. Дополнительно нужно учитывать разные перечни и режимы маркировки, включая пилотные и обязательные требования по постановлениям № 894, № 620 и № 860.
Проверка товаров по таким данным требует регулярного обращения к источникам «Честного знака» и сопоставления нескольких кодов одновременно. Для автоматизации этой работы потребовался отдельный механизм внутри 1С, который мог бы хранить актуальные перечни, обновлять их и использовать при проверке номенклатуры.
Что мешало в работе
Исходные данные на сайте «Честного знака» были неудобны для прямой загрузки и дальнейшего использования в учетной системе. В HTML-источниках коды представлены таким образом, что при первичной обработке формировалось декартово произведение значений.
В результате объем данных вырос примерно до 1,9 млн плоских строк. Такая модель занимала лишнее место, усложняла обновление перечней и создавала избыточную нагрузку при поиске и проверке товаров.
Дополнительно требовалось учитывать различия между источниками, корректно обрабатывать временно пустые перечни и изолировать ошибки отдельных URL, чтобы сбой одного источника не останавливал весь процесс обновления.
Задача
Разработать в 1С механизм, который будет автоматически загружать перечни маркируемых медицинских изделий с сайта «Честного знака» и из Excel, хранить их в компактном виде и проверять товар по сочетанию кодов ТН ВЭД, ОКПД-2 и НКМИ.
Решение должно было учитывать пилотную и обязательную маркировку, регулярно обновлять данные и оставаться устойчивым при изменениях или временной недоступности отдельных источников.
Решение
Для задачи разработали отдельное расширение с собственной подсистемой, ролями пользователей, обработкой загрузки и регламентным заданием. Перечни могут загружаться напрямую с сайта «Честного знака» или из Excel-файла. Для разных источников предусмотрены отдельные URL и изоляция ошибок: сбой одного адреса не блокирует обновление остальных данных.
Для программной проверки реализовали API «МаркировкаМИСервер.ПроверитьТовар». Механизм анализирует сочетание трех признаков: ТН ВЭД, ОКПД-2 и код вида медицинского изделия. При сравнении используется префиксная логика, поскольку в перечнях могут быть указаны укрупненные группы кодов. Если товар одновременно подходит под несколько режимов, приоритет получает обязательная маркировка.
После выявления избыточного роста данных архитектуру хранения пересмотрели. Вместо плоской таблицы из миллионов комбинаций создали иерархический справочник позиций, разделенный по источникам, и отдельный регистр кодов. В результате объем сократился примерно до тысяч позиций и десятков тысяч кодов, при этом логика проверки сохранилась.
Дополнительно реализовали нормализацию кодов ТН ВЭД, полную перезагрузку данных по регламенту и корректную обработку пустого пилотного перечня — такая ситуация больше не считается ошибкой.
Реализация
Работа началась с создания расширения и базового механизма загрузки данных с сайта и из Excel. Затем были реализованы структура хранения, программный интерфейс проверки товаров, роли и регламентное обновление.
На тестировании проявилась ключевая техническая особенность источника: независимые списки кодов в HTML объединялись в огромное количество комбинаций. После анализа структуры данных команда отказалась от первоначальной плоской модели и провела миграцию на иерархическое хранение.
После переработки дополнительно уточнили эксплуатационные сценарии: нормализовали формат ТН ВЭД, настроили полное обновление перечней, добавили устойчивость к ошибкам источников и проверили корректное поведение при отсутствии данных в пилотном списке.
Результат
В 1С появился отдельный механизм хранения и регулярного обновления перечней маркируемых медицинских изделий. Система может автоматически проверять товар по трем классификаторам, различать пилотный и обязательный режимы и использовать данные из нескольких источников.
Переход на компактную модель хранения устранил избыточный массив примерно из 1,9 млн строк и снизил нагрузку на базу без потери точности проверки.
Для бизнеса это упрощает подготовку к требованиям маркировки и сокращает объем ручной проверки номенклатуры. Актуальные перечни загружаются централизованно, поэтому специалисты быстрее определяют, какие товары попадают под обязательную маркировку.
При работе с государственными перечнями важно учитывать структуру источника, а не только сам состав данных. Прямое копирование информации с сайта может создать чрезмерный объем и затруднить дальнейшую эксплуатацию системы.
В этом проекте переработка модели хранения дала такой же значимый эффект, как и сама автоматическая загрузка: компания получила механизм, который можно регулярно обновлять и использовать в реальной работе без разрастания базы и длительных проверок.