Маркировка лекарственных препаратов
Данный цикл будет посвящен маркировке лекарственных препаратов (далее ЛП), нюансам работы с "1С: Библиотека интеграции с МДЛП" (далее библиотека МДЛП), доступной для скачивания на сайте ИТС, методиками работы с регистраторами выбытия (далее РВ), и проблемам, с которыми пришлось столкнуться при интеграции.
Данная статья будет представлять из себя краткую инструкцию, что делать, когда маркировка уже близко и необходимо быстро внедрить ее. Надеюсь, данная статья станет подспорьем в данной задаче. Будут приведены рекомендации как в короткие сроки с минимально необходимой функциональностью и минимумом чтения документации произвести интеграцию библиотеки МДЛП и выполнить начальные настройки. Также будут даны рекомендации по быстрым, но важным на мой взгляд доработкам.
Ссылка на вторую статью "Маркировка лекарственных препаратов. Часть вторая «Регистраторы выбытия»" //infostart.ru/public/1319821/
Для начала необходимо проверить регистрацию в личном кабинете МДЛП. После рекомендую скачать с сайта ИТС библиотеку МДЛП. В ней на данный момент реализованы все основные функции, необходимые для выполнения обмена документами с МДЛП. Интеграция данной библиотеки в Вашу конфигурацию не займет много времени. Весь контур библиотеки МДЛП будет являться отдельной подсистемой в Вашей конфигурации, не мешая основному контуру учета. Если ресурсов и времени мало, то можно вполне ограничиться только интеграцией библиотеки. Однако необходимо выполнить ее первоначальную настройку и выполнить несколько проверочных обменов в контуре «Песочница» (тестовый контур МДЛП для разработчиков).
Рекомендации по регистрации в МДЛП
Для начала необходимо пройти процедуру регистрации в Личном кабинете МДЛП. Необходимо иметь ЭЦП руководителя, настроенный КриптоПро (или другое криптографическое средство защиты информации).
Поддерживаются браузеры Google Chrome, Mozilla Firefox, Opera, Internet Explorer 11, Safari. Для них необходимо установить плагин, инструкция по установке доступна по ссылке:
https://cpdn.cryptopro.ru/default.asp?url=/content/cades/plugin-installation-windows.html.
Далее необходимо пройти процедуру регистрации на сайте https://mdlp.crpt.ru/#/auth/signin/.
Регистрация стандартная, после окончания должен быть доступ в личный кабинет. В личном кабинете важно проверить закладки Организации и Лицензии. Места деятельности необходимо добавить на закладке Адреса.
Рекомендации по интеграции библиотеки МДЛП
Библиотека МДЛП содержит в своем составе библиотеки БПО, БСП, БИП (целиком или частично сказать затруднительно), поэтому при интеграции рекомендую в первую очередь проверить общие модули:
- ОбновлениеИнформационнойБазыБИП;
- ОбновлениеИнформационнойБазыБСП;
- ОбновлениеИнформационнойБазыБПО;
Здесь необходимо обратить внимание на процедуру ПриДобавленииПодсистемы, в которой храниться текущая версия конкретной библиотеки. В случае если библиотека МДЛП содержит более позднюю версию рекомендую обновлять модули данной библиотеки. В противном случае можно обновить только контур МДЛП.
В общем случае в первую очередь необходимо обращать внимание на модули, содержащие МДЛП в своем имени.
Перечень обязательных к переносу метаданных
Общие модули:
- ИнтеграцияМДЛП в основном предназначены для обмена с контуром МДЛП (формирование документов на отправку, получение квитанций, авторизация и пр.);
- ОбновлениеИнформационнойБазыМДЛП (стандартный модуль, содержащий процедуры обновления до текущей версии);
- СобытияФормМДЛП служат для процедур интерактивной обработки в формах документов;
- ТранспортМДЛП содержит настройки обмена с МДЛП;
Функциональные опции:
Здесь следует обратить внимание на ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов - не забудьте установить в Истину в клиентском приложении, иначе не будете видеть документы МДЛП;
ИспользоватьАвтоматическуюОтправкуПолучениеДанныхМДЛП опция, позволяющая выполнять обмен автоматически;
Определяемые типы:
- большинство необходимых типов имеют тип строка, в частности ОснованиеУведомленияО<ТипДокумента> в дальнейшем необходимо будет выставить в необходимый ссылочный тип, если Вы планируете делать ввод на основании;
Общие формы:
- АвторизацияАПИМДЛП форма ввода логина пароля для авторизации;
Общие макеты:
- Драйвер1СУстройстваВводаNative - драйвер необходимый для сканера штрих кодов;
XDTO-пакеты
- Необходим обязательно последний пакет (ИнтеграцияМДЛП_1_35 на текущий момент);
Константы:
- АдресСервисаМДЛП хранит ссылку на контур учета («Песочница», промышленный контур);
- ВерсияСхемОбменаМДЛП хранит текущую версию обмена;
- ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов включает\отключает видимость контура учета библиотеки МДЛП;
- ИспользоватьАвтоматическуюОтправкуПолучениеДанныхМДЛП, ГраницаЗагрузкиВходящихДокументовМДЛП и ГраницаЗагрузкиИсходящихДокументовМДЛП необходимы для выполнения автоматических обменов;
- ОтправлятьДанныеТолькоПриВыполненииОбменаМДЛП;
Справочники:
- МДЛППрисоединенныеФайлы - этот справочник хранит в себе все сообщения обмена (отправленные и полученные из МДЛП документы, квитанции о фиксации). Позволяет просмотреть оригинальные xml файлы обмена;
- МестаДеятельностиМДЛП служит для хранения основного разреза учета. В самом простом варианте весь учет МДЛП базируется на передаче кодов маркировки между местами деятельности и выбытии с мест деятельности;
- ОрганизацииМДЛП служит как для хранения собственных организаций, так и для хранения контрагентов. Реквизит собственная организация отвечает за переключение между типами.
- РегистраторыМДЛП служит для хранения настроек регистраторов выбытия;
Документы:
Необходимо перенести все (кроме имеющих префикс удалить). Подробнее о документах далее.
Перечисления:
Необходимы все, имеющие МДЛП в своем имени;
Обработки:
- ПанельМаркировкиМДЛП является основным рабочим столом. Подробнее о ней далее.
- ПолучитьСоставТранспортныхУпаковокМДЛП позволяет просмотреть упаковки, входящие в групповую;
- ПроверкаИПодборУпаковокМДЛП используется в формах документов для указания наличия\наличия упаковки в документе;
- СверкаОстатковМДЛП служебная обработка, позволяющая проводить сверку остатков в базе и в контуре МДЛП;
Регистры сведений:
- ДолиУпаковокМДЛП служит для хранения долей упаковок. Доли необходимы для уведомления о выдачи в отделения, т.к. этот документ позволяет частичное выбытие упаковки.
- ОчередьОбработкиВходящихДокументовМДЛП, ОчередьПередачиДанныхМДЛП, ОчередьПолученияКвитанцийМДЛП хранят сообщения обмена которые необходимо обработать;
- РабочиеМестаМДЛП хранят настройки рабочих мест. Необходимы в частности для работы с РВ;
- СписокВходящихДокументовМДЛП, СписокИсходящихДокументовМДЛП хранят списки документов обмена;
- СтатусыИнформированияМДЛП хранит в себе значения статусов документов. Если по каким-то причинам необходимо изменить статус документа на нужный поможет этот регистр.
- СтатусыОформленияДокументовМДЛП служит для хранения промежуточных статусов оформления документов;
- СубъектыОбращенияМДЛП служит для простановки соответствия организаций из основного контура учета и контура библиотеки МДЛП;
- УпаковкиМДЛП служит для хранения КМ и их текущих состояний. Может вызывать ошибки записи документов. Подробнее об ошибках в дальнейшем.
После переноса необходимых метаданных необходимо выполнить обязательные начальные настройки в клиентском приложении.
- Выставить константу Вести сведения для мониторинга движения лекарственных препаратов в истину;
- Открыть обработку ПанельМаркировкиМДЛП, раскрыть группу Настройки и справочники, указать последнюю версию обмена (например, на текущий момент 1.35), установить адрес API на один из необходимых:
- Тестовый стенд API;
- Тестовая система МДЛП («Песочница»);
- Промышленная система;
Если хотите протестировать работоспособность - нужна «Песочница», для отправки и получения реальных документов необходима Промышленная система.
Перед добавлением организации необходимо установить и настроить КриптоПро. В справочнике Программы электронной подписи и шифрования должны быть видны установленные программы шифрования.
В справочнике Сертификаты ключей электронной подписи и шифрования должен быть виден сертификат вашей организации. Также необходимо установить корневой сертификат в доверенные корневые сертификаты. Его можно получить http://testcert.infotecs.ru/. После настроек сертификатов и КриптоПро выполните проверку из формы сертификата по кнопке "Проверить...". В случае правильной настройки тест пройдет успешно и можно приступать к добавлению организации МДЛП.
Нюанс - необходимо установить нужную версии программы шифрования в самом сертификате.
В справочнике Организации МДЛП необходимо завести собственную организацию через Добавить - Собственная организация. Для этого вам потребуется знать идентификатор организации и секретный код (их можно найти в личном кабинете МДЛП - вкладка Администрирование - Учетные системы. Необходимы идентификатор клиента и секретный код). Также необходима ЭЦП данной организации зарегистрированная в соответствующем контуре МДЛП. После ввода информации необходимо подписать сертификатом организации данный запрос. В случае успеха будет добавлена собственная организация и ее места деятельности. Во всех местах деятельности необходимо обязательно проставить галочку Вести учет в этой ИБ.
Для добавления контрагента достаточно его ИНН. Подписывается в таком случае запрос сертификатом собственной организации.
Данные действия являются минимально достаточными для интеграции библиотеки МДЛП и начала обмена документами.
Рекомендации по начальным изменениям библиотеки
Библиотека МДЛП является хорошей основой для ведения учета и в принципе серьезных изменений ее не требуется для ведения базового учета. Однако работа пользователей будет достаточно неудобной, если интегрировать библиотеку хотя бы без основных изменений.
Далее приводятся уведомления, которые, на мой взгляд, являются первоочередными для использования. Дается краткое знакомство для чего они служат, без погружения в документацию (не стал указывать схемы обмена, чтобы не запутать начинающих знакомство. Знатоки думаю уже схемы на память помнят все основные) и краткие рекомендации по быстрой доработке некоторых важных на мой взгляд нюансов.
Самым первым, на мой взгляд, является создание документов на основании, чтобы пользователю облегчить ввод документов уведомлений в контуре МДЛП. Если вы не являетесь производителем, то становится чуть проще, так как уменьшается количество типов документов необходимых для учета.
В самом простом случае будут необходимы следующие документы уведомления (приводятся имена метаданных):
УведомлениеОПриемкеМДЛП - первый документ с которого стоит начать знакомство. Позволяет оприходовать ЛП на вашу организацию. Различается типом акцептования, либо обратный порядок, либо прямой. Если очень кратко обратный порядок - ваша организация сделала уведомление о приемке, отдала в МДЛП, поставщик подтвердил. Прямой акцепт наоборот - поставщик отправил документ отгрузки, ваша организация загрузила документ из МДЛП и подтвердила получение.
Нюансы, на которые стоит обратить внимание:
- если источник финансирования указан Средства федерального бюджета или Средства регионального бюджета поле Номер контракта обязательно к заполнению, иначе МДЛП вернет ошибку. Рекомендую добавить проверку заполнения по условию.
- если сбита нумерации документа (пример внутренний номер документ стал вместо "00000000027" "2" при обмене будет получена ошибка с неуникальным номером). Рекомендую пользователям запретить сразу редактирование номера, так как они часто путают поля номер и номер документа (тут хранится в большинстве случаев номер накладной).
- при получении документа прямого акцепта пользователь должен подтвердить, что упаковки получены сканированием дата матрикс или вручную. Рекомендую запретить пользователю ручную простановку, так как это чревато оприходованием того что нет в документе. Поставщики тоже путаются.
- если не ошибаюсь, на данный момент не считается сумма от цены и количества в табличных частях документов. Рекомендую к доработке.
- соответственно ввод на основании данного документа должен быть в обе стороны из-за наличия двух видов акцептования. Обратный акцепт вводится на основании вашего документа оприходования в основной системе учета, прямой акцепт создает документ оприходования.
- для сопоставления организаций и контрагентов служит регистр сведений СубъектыОбращенияМДЛП доступный из ПанельМаркировкиМДЛП по гиперссылке. Однако можно прописать соответствие через константу, если у вас одна организация и одно место деятельности. После использовать при заполнении на основании всех уведомлений.
УведомлениеОПеремещенииМДЛП служит для перемещения КМ между вашими местами деятельности. Рекомендации аналогичные, за исключением акцептов - данный документ ими не оперирует.
УведомлениеОбОтгрузкеМДЛП данный документ является парным с документом УведомлениеОПриемкеМДЛП и так же оперирует акцептованием, с небольшой разницей что обратный акцепт загружается из МДЛП, прямой же создается пользователем. Рекомендации по изменениям те же что и для приемки.
УведомлениеОВыдачеВОтделенияМДЛП (мой самый любимый документ, подвергнувшийся самой большой доработке) - служит для фиксации факта выдачи ЛП (в том числе долей вторичной упаковки) и позволяет работать с Регистраторами выбытия (им планируется посвятить отдельную статью). Работает по двум схемам - с использованием РВ и без него с обменом напрямую в МДЛП. За это в форме документа отвечает галочка ИспользоватьРВ.
Библиотека МДЛП реализовала возможность работы с РВ. Необходимо заполнить справочники РегистраторыВыбытия и РабочиеМестаМДЛП. К сожалению подробных рекомендаций, по коду в этой области не могу дать, так как самостоятельно осваивал АПИ РВ и реализовывал работу с РВ еще до того, как это умела библиотека. Некоторыми подробностями планирую поделится в следующих статьях.
Важным моментом является необходимость сканирования КМ в случае выбытия через РВ, так как в таком только в таком случае мы можем получить код целиком с крипто хвостом. Это является необходимым условием для отправки КМ в РВ. Весь код оборачивается в Base64, формируется json и отправляется в РВ. Рекомендую добавить эту проверку в код для взведенной галочки ИспользоватьРВ.
Примечание.
Если вы собираетесь тестировать документы в контуре «Песочница» и у вас имеются КМ зарегистрированные в ней, может возникнуть проблема сканирования этих КМ. В ходе разбора КМ проверяется контрольный символ и для КМ «Песочницы» эта проверка зачастую не проходит. В коде имеется обработка этой ошибки с выводом сообщения пользователю, но к сожалению, она не работает и в результате после сканирования просто ничего не происходит, что заставляет тратить время на анализ проблемы. Надеюсь сэкономлю время для столкнувшихся с этой проблемой.
Вам нужен общий модуль ИнтеграцияМДЛПКлиентСервер Функция РазобратьКакШтрихкодГС1(Штрих код)
Нижеприведенный код обрамите условием, например, по функциональной опции (для возможности быстрого включения\ отключения проверки). Первый кусок кода отвечает за проверку групповых упаковок, второй за проверку КМ.
Если МенеджерОборудованияКлиентСервер.РассчитатьКонтрольныйСимволGTIN(Данные.SSCC) <> Прав(Данные.SSCC, 1) Тогда
Если Не ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда
ВызватьИсключение НСтр("ru = 'Некорректный код групповой упаковки.'");
КонецЕсли;
КонецЕсли;
Если Не МенеджерОборудованияКлиентСервер.ПроверитьКорректностьGTIN(GTIN) Тогда
Если Не ОбщегоНазначенияКлиентСервер.РежимОтладки() Тогда
ВызватьИсключение НСтр("ru = 'Некорректный GTIN.'");
КонецЕсли;
КонецЕсли;
УведомлениеОбАгрегированииИТрансформацииУпаковокМДЛП документ позволяет производить различные манипуляции с групповыми упаковками. В большинстве случаев на начальном этапе может потребоваться дезагрегация. Сам документ был значительно доработан в последних версиях библиотеки (ранее он позволял, например, дезагрегировать лишь одну упаковку в документе. Это приводило к необходимости существования отдельной формы документа для этой операции). Здесь основной рекомендацией на мой взгляд является создание на основании уведомления о приемке документа дезагрегации и наличия ссылки на этот документ из документа приемки. Пользователи, думаю, будут вам благодарны, когда не придется искать долго эти связанные документы. На крайний случай при нехватке времени советую набросать хотя бы быстрый отчет на СКД по этим документам, связав их по номерам групповых упаковок.
Эти документы являются самыми основными на мой взгляд, и именно их я рекомендую доработать в первую очередь. Других документов я планирую коснуться в следующих статьях.
Я надеюсь, данная статья поможет в короткий срок вам сделать быструю интеграцию, настройку и базовые доработки библиотеки МДЛП. Если у вас возникли пожелания и замечания по данной статье прошу высказаться в комментариях. Данная статья является первой, так что буду рад пожеланиям по оформлению или читаемости. Хорошего вам кода.