Как правильно интегрировать МДЛП в УТ 11.4 для розничной продажи лекарственных препаратов?

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

Интеграция системы МДЛП (Мониторинг движения лекарственных препаратов) в конфигурацию Управление торговлей 11.4 — это комплексная задача, требующая глубокого понимания не только принципов работы API Честного знака, но и особенностей складского учета, учета серий и работы с фискальным оборудованием. Давайте разберем, с какими вызовами вы столкнетесь и какие пути решения существуют.

Основные сложности внедрения

Важно понимать, что МДЛП — это не просто дополнительный модуль, а отдельная подсистема с собственными правилами обработки данных. При попытке внедрить её «в лоб» в УТ 11 вы столкнетесь со следующими проблемами:

  1. Учет серий и сроков годности. В стандартной конфигурации УТ 11 серии используются для складской аналитики. В МДЛП серия жестко привязана к коду маркировки и статусу упаковки. Любое несоответствие приводит к блокировке товара системой.
  2. Процессы розничной продажи. Работа кассы с маркированным товаром требует соблюдения протокола ФФД 1.2. Необходимо не только передавать данные в ОФД, но и контролировать корректность тега 1162.
  3. Обновляемость конфигурации. Если вы начнете вносить изменения непосредственно в типовые модули УТ 11, каждое обновление программы от фирмы «1С» превратится в многодневную борьбу за сохранение работоспособности блока МДЛП.
  4. Специфика ценообразования. Продажа лекарственных препаратов (ЛП) требует контроля цен ЖНВЛП (жизненно необходимые лекарственные препараты), что не предусмотрено в базовой логике УТ 11.

Рекомендуемые стратегии интеграции

Рассмотрим несколько подходов, которые помогут решить задачу с минимальными рисками для вашего учета.

1. Использование специализированного отраслевого решения

Самый безопасный путь — внедрение решения, разработанного на базе УТ 11 для аптечных сетей. Эти конфигурации уже содержат необходимые механизмы для работы с серийным учетом, забраковкой, контролем госреестра и интеграцией с Честным знаком. Хотя приобретение лицензии требует затрат, вы экономите на часах разработки, тестирования и будущей поддержке системы.

2. Архитектура «шлюза» (Микросервисный подход)

Если специфика вашего бизнеса не позволяет перейти на отраслевое решение, используйте подход с «шлюзом» (внешним модулем). Разделите контуры учета следующим образом:

Такой подход позволяет обновлять основную базу УТ 11 без риска «сломать» интеграцию с госсистемой. Вы будете передавать из УТ 11 только минимально необходимые данные о факте продажи, а всю сложную логику API транспорта оставите в выделенном сервисе.

Практические рекомендации по реализации

Если вы приняли решение дорабатывать систему самостоятельно, двигайтесь по следующему плану:

  1. Не модифицируйте типовые документы. Используйте механизм Расширения конфигурации. Это позволит минимизировать вмешательство в код и упростить обновление основной конфигурации.
  2. Реализуйте очередь сообщений. Никогда не обращайтесь к API Честного знака синхронно при пробитии чека на кассе. Это неизбежно приведет к зависаниям. Создайте локальную очередь, которую будет обрабатывать отдельное Регламентное задание.
  3. Настройка оборудования. Убедитесь, что драйвер торгового оборудования поддерживает ФФД 1.2. Для передачи кода маркировки в чек используйте соответствующие методы работы с объектом Драйвера, передавая данные в тег 1162.

Помните: интеграция маркировки — это не только написание кода, но и создание процессов контроля. Если вы решите дорабатывать конфигурацию «с нуля», обязательно заложите бюджет на обработку ошибок синхронизации, которые неизбежно возникнут при обмене данными с сервером Честного знака.

Пример логики для обработки очереди кодов маркировки перед отправкой:


Процедура ОбработатьОчередьМаркировки() Экспорт
    Выборка = Справочники.ОчередьКодовМаркировки.Выбрать(,, "Статус = 'КОтправке'");
    Пока Выборка.Следующий() Цикл
        Попытка
            // Отправка данных в API Честного знака
            Результат = МДЛП_Сервис.ОтправитьКод(Выборка.КодМаркировки);
            Если Результат.Успешно Тогда
                Выборка.Объект.Статус = "Отправлено";
            КонецЕсли;
        Исключение
            // Логирование ошибки для оператора
            ЗаписьЖурналаРегистрации("МДЛП", УровеньЖурналаРегистрации.Ошибка, , , ОписаниеОшибки());
        КонецПопытки;
    КонецЦикла;
КонецПроцедуры

Подводя итог, оцените свои ресурсы. Разработка собственного решения с нуля — это трудоемкий процесс, стоимость которого часто превышает стоимость готовых рыночных продуктов. Если ваша задача — обеспечить продажу 3-4 наименований, возможно, самым простым решением будет использование отдельной кассовой программы или 1С:Розницы как узла продаж, интегрированного с УТ 11 через стандартный обмен.

← На главную