Интеграция "Библиотеки интеграции МДЛП 1.1.2.7" с типовой конфигурацией

26.06.20

Интеграция - WEB-интеграция

Инструкция для интеграции “Библиотеки интеграции МДЛП 1.1.2.7” в типовые конфигурации, на примере конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

Интеграция библиотеки МДЛП в конфигурацию УНФ 1.6.

Доброго времени суток!

В соответствии с Федеральный законом от 27.12.2019 N 462-ФЗ "О внесении изменений в Федеральный закон "Об обращении лекарственных средств" и Федеральный закон "О внесении изменений в Федеральный закон "Об обращении лекарственных средств" обязательная маркировка лекарственных препаратов, перенесена с 1 января 2020 года на 1 июля 2020 года.

В связи с этим, считаю, что данная статья будет актуальна и полезна.

В этой статье я поделюсь опытом интеграции “Библиотеки интеграции МДЛП 1.1.2.7 ” с типовой конфигурацией “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”.

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

Я расскажу непосредственно об интеграции блока МДЛП, на реальном примере, т.к. сам не смог найти подробной статьи. Также расскажу о проблемах, с которыми можно столкнуться и о способах их решения. Данная статья будет полезна не только для рассмотренной конфигурации, но и для любой другой, даже не типовой, в которых не реализован блок МДЛП.

Описание задачи: Клиент – аптека, основной вид деятельности розничная продажа лекарственных препаратов. Учет несколько лет ведется в конфигурации “Управление нашей фирмой”. Разработчики типовых конфигураций не планируют внедрять блок МДЛП в ряд конфигураций, в том числе и в эту. Клиенту было предложено интегрировать библиотек МДЛП в текущую конфигурацию, без переходов и обменов, и продолжать вести учет в ней.

О том, что такое “Библиотека интеграции с МДЛП” и ее основных возможностях, можно узнать из этой статьи:

//infostart.ru/journal/news/mir-1s/oznakomitelnaya-versiya-1s-biblioteki-integratsii-s-mdlp_713326/.

Чтобы ее загрузить, необходимо быть зарегистрированном на портале 1С, и иметь действующий договорит информационно-технологического сопровождения. Необходимо перейти в раздел “1С: Обновление программ” далее слева перейти по вкладке “Скачать обновления программ” и найти нужную нам библиотеку в разделе “Стандартные библиотеки”. В папке шаблонов конфигураций нас интересует файл 1Cv8.cf, именно с ним мы будем работать.

Открываем нашу рабочую базу в режиме конфигуратора, далее переходим на вкладку конфигурация – сравнить и объединить с конфигурацией из файла…, и из папки с шаблонами выбираем наш файл 1Cv8.cf, соглашаемся с постановкой на поддержку.

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

После этого в окне сравнения выбираем действия – установить режим для всех, взять из файла.

Объекты библиотеки перенесены, далее переходим к настройке перенесенных объектов библиотеки.

Определяемый тип ВладелецПрисоединенныхФайлов – в состав типа нужно добавить все документы библиотеки.

Определяемый тип МестоХраненияФункциональныхОпций - в состав типа добавитьконстанты ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов и ИспользоватьАвтоматическуюОтправкуПолучениеДанныхГИСМ.

Определяемый тип ПодписанныйОбъект - в состав типа добавить СправочникСсылка.МДЛППрисоединенныеФайлы.

Определяемый тип ПрисоединенныйФайл - в состав типа добавить СправочникСсылка.МДЛППрисоединенныеФайлы.

Определяемый тип ПрисоединенныйФайлОбъект - в состав типа добавить СправочникОбъект.МДЛППрисоединенныеФайлы.

Общий реквизит КонтрагентГИСМ – в него помещаются ссылки на контрагентов , в нашем случае это СправочникСсылка.Контрагенты.

Общий реквизит ОбъектМестаДеятельностиМДЛП - используется для хранения связки между идентификатором субъекта обращения МДЛП и лицензируемым местом деятельности. Необходимо определить составной тип - для собственной организации и сторонних контрагентов. В нашем случае это СправочникСсылка.СтруктурныеЕдиницы, СправочникСсылка.СтруктурныеЕдиницыМП.

Общий реквизит Номенклатура – содержит в себе список продаваемых товаров. В нашем случае это СправочникСсылка.Номенклатура.

Общий реквизит Характеристика – в нем содержатся характеристики продаваемых товаров. В нашем случае это СправочникСсылка.ХарактеристикиНоменклатуры.


Общий реквизит СерияНоменклатуры - справочник, содержащий перечень производственных серий товаров предприятия. В нашем случае это СправочникСсылка.СерийныеНомера, СправочникСсылка.ПартииНоменклатуры.

Общий реквизит ОрганизацияКонтрагентМДЛП - используется для хранения связки между идентификатором субъекта обращения МДЛП и контрагентом (или собственной организацией). Необходимо определить составной тип - для собственной организации и сторонних контрагентов.В нашем случае это СправочникСсылка.Организации, СправочникСсылка.Контрагенты.

Общий реквизит ОснованиеУведомленияОПриемкеМДЛП - используется для хранения ссылки на основание документа уведомления. В нашем случае это ДокументСсылка.ПриходнаяНакладная.

Общий реквизит ОснованиеУведомленияОПриемкеМДЛПОбъект - используется для вызова обработчика события ПриЗаписи для расчета статуса оформления документов конфигурации-приемника. В нашем случае это ДокументОбъект.УведомлениеОПриемкеМДЛП.

Общий реквизит Упаковка - используется для хранения ссылки на упаковку в документах библиотеки. В нашем случае это СправочникСсылка.КлассификаторЕдиницИзмерения, СправочникСсылка.ЕдиницыИзмерения.

Общий реквизит ХарактеристикаНоменклатуры - используется для хранения ссылки на характеристику номенклатуры в документах библиотеки. В нашем случае это СправочникСсылка.ХарактеристикиНоменклатуры.

Далее в состав плана обмена ОбновлениеИнформационнойБазы добавляем все объекты библиотеки.

В общий модуль ОбщегоНазначенияКлиентПереопределяемый , в процедуру

ПослеНачалаРаботыСистемы() пишем код:

// ИнтеграцияМДЛП+

   ИнтеграцияМДЛПКлиент.ПодключитьОбработчикВыполненияОбменаНаКлиентеПоРасписанию();

// Конец ИнтеграцияМДЛП-

 

В общий модуль ПодсистемыКонфигурацииПереопределяемый, в процедуру

ПриДобавленииПодсистем()  пишем код:

// ИнтеграцияМДЛП+
   МодулиПодсистем.Добавить("ОбновлениеИнформационнойБазыМДЛП");
// Конец ИнтеграцияМДЛП-

 

В общий модуль РаботаСФайламиПереопределяемый, в процедуру

ПриОпределенииНастроекФайлов ()  пишем код:

// ИнтеграцияМДЛП+
   ИнтеграцияМДЛП.ПриОпределенииНастроекФайлов(Настройки);
// Конец ИнтеграцияМДЛП-

 

В процедуру ПриОпределенииСправочниковХраненияФайлов() пишем код:

 
// ИнтеграцияМДЛП+
   ИнтеграцияМДЛП.ПриОпределенииСправочниковХраненияФайлов(ТипВладелецФайла, ИменаСправочников);
// Конец ИнтеграцияМДЛП-
 

На этом настройки интеграции на основе официальной инструкции окончены)))

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

При этом, напоминаю, что наш клиент занимается продажей в розницу лекарственных препаратов, отсюда и напрашивается вопрос, а как же доработка РМК? Неужели такой интеграции хватит? Ответ: НЕТ.

Давайте разберем, как происходит отправка сведений в честный знак о продаже маркированных препаратов в розницу.

Отправка сведений, происходит по следующей схеме, в РМК сканируется DataMatrix код, оформляется продажа, и за отправку сведений в честный знак, отвечает непосредственно ОФД.

Но как ОФД должен понять, что это маркируемый товар?

А определяется это заполнением дополнительных тегов чека, подробнее можно прочитать по ссылке ниже

https://честныйзнак.рф/upload/iblock/644/Format-zapisi-dannykh-o-vybytii-LP-v-FFD-v2_6.pdf

Следовательно, нам надо дать программе понять, что перед ней маркируемый товар и зависимости от этого, заполнять дополнительные теги чека.

Для этого была придумана общая форма ввода номеров упаковок, которая называется по нажатию иконки в табличной части товаров.

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

Для хранения серийный номеров для строки документа, нам необходимо добавить табличную часть _НомераУпаковокМДЛП с аналогичными реквизитами общей формы.

В документ чек ккм добавляем булев реквизит “_ЕстьМаркируемаяПродукцияМДЛП” а в процедуре ПередЗаписью() чека ККМ пишем следующий код:

// ИнтеграцияМДЛП +

// это необходимо чтобы при пробитии чека определять, что в списке есть маркированные препараты и нужно заполнить дополнительные теги чека, связанные с МДЛП

                Если Не отказ и _НомераУпаковокМДЛП.Количество() > 0 Тогда

                    _ЕстьМаркируемаяПродукцияМДЛП = Истина;

                КонецЕсли;

// ИнтеграцияМДЛП –

Далее в модуле менеджера документа чек ККМ, в процедуре ПодготовитьДанныеДляПробитияЧека() в конце, пишем код:

// ИнтеграцияМДЛП +

// заполнение допольнительного тега чека в целях МДЛП

   Если ТипЗнч(ДокументСсылка) = Тип("ДокументСсылка.ЧекККМ") Тогда

         Если ДокументСсылка._ЕстьМаркируемаяПродукцияМДЛП = Истина Тогда

              ИдентификаторМестаДеятельности = ИнтеграцияМДЛП.ПолучитьИдентификаторМестадеятельностиДляПередачиЧерезОФД(ДокументСсылка);

              ОбщиеПараметры.ДополнительныйРеквизитПользователя.Наименование = "mdlp";

              ОбщиеПараметры.ДополнительныйРеквизитПользователя.Значение = "sid" + ИдентификаторМестаДеятельности + "&";

          КонецЕсли;

    КонецЕсли;

// ИнтеграцияМДЛП –

Функция общего модуля:

// возвращает идентификатор места деятельности для заполнения дополнительного реквизита чека требуемого при продаже маркированных препаратов



Функция ПолучитьИдентификаторМестадеятельностиДляПередачиЧерезОФД(ЧекККМСсылка) Экспорт

               

                ПризнакИспользоватьМестаДеятельностиОрганизаций = Истина;

               

                Запрос = Новый Запрос;

                               Запрос.Текст =

                               "ВЫБРАТЬ

                               |              ЧекККМТовары.Ссылка.Организация КАК Организация,

                               |              ЧекККМТовары.Ссылка.СтруктурнаяЕдиница КАК Склад

                               |ПОМЕСТИТЬ тчТовары

                               |ИЗ

                               |              Документ.ЧекККМ.Запасы КАК ЧекККМТовары

                               |ГДЕ

                               |              ЧекККМТовары.Ссылка = &Ссылка

                               |              И ЧекККМТовары.ор_СтатусЗаполненияУпаковок <> 0

                               |;

                               |

                               |////////////////////////////////////////////////////////////////////////////////

                               |ВЫБРАТЬ

                               |              тчТовары.Организация КАК Организация,

                               |              тчТовары.Склад КАК Склад,

                               |              ЕСТЬNULL(СубъектыОбращенияМДЛП.МестоДеятельности, ЗНАЧЕНИЕ(Справочник.МестаДеятельностиМДЛП.ПустаяСсылка)) КАК МестоДеятельности

                               |ПОМЕСТИТЬ втТаблица

                               |ИЗ

                               |              тчТовары КАК тчТовары

                               |                             ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.СубъектыОбращенияМДЛП КАК СубъектыОбращенияМДЛП

                               |                             ПО тчТовары.Организация = СубъектыОбращенияМДЛП.ОрганизацияКонтрагент

                               |                                             И (СубъектыОбращенияМДЛП.СобственнаяОрганизация)

                               //|                                         И тчТовары.Склад = СубъектыОбращенияМДЛП.ОбъектМестаДеятельности

                               |;

                               |

                               |////////////////////////////////////////////////////////////////////////////////

                               |ВЫБРАТЬ

                               |              втТаблица.МестоДеятельности.Идентификатор КАК Идентификатор

                               |ИЗ

                               |              втТаблица КАК втТаблица";

                              

                               Запрос.УстановитьПараметр("Ссылка", ЧекККМСсылка);

                              

                               Результат = Запрос.Выполнить();

                              

                               Если Результат.Пустой() Тогда

                                               Возврат "";

                               Иначе

                                               Выборка = Результат.Выбрать();

                                               Выборка.Следующий();

                                               Возврат Выборка.Идентификатор;

                               КонецЕсли;

                              

               

КонецФункции

А в процедуру ДополнитьТоварамиПараметрыПриПробитииЧека() следующий код:

// ИнтеграцияМДЛП +

// если заполнены номера упаковок, заполняются теги чека в целях МДЛП

       Если ТипЗнч(ДокументОбъект.Ссылка) = Тип("ДокументСсылка.ЧекККМ") Тогда

          Если СтрокаТЧ.ор_СтатусЗаполненияУпаковок <> 0 Тогда

               Отбор = Новый Структура();

               Отбор.Вставить("ИдентификаторСтроки", СтрокаТЧ.ор_ИдентификаторСтроки);

               НайденноеЗначение = ДокументОбъект.Ссылка._НомераУпаковокМДЛП.НайтиСтроки(Отбор);

                                                                              

        Если НайденноеЗначение.Количество() > 0 Тогда

               СтрокаПозицииЧека.ДанныеКодаТоварнойНоменклатуры.ТипМаркировки                          = Перечисления.ТипыМаркировкиККТ.ЛекарственныеПрепараты;

               СтрокаПозицииЧека.ДанныеКодаТоварнойНоменклатуры.ГлобальныйИдентификаторТорговойЕдиницы = Лев(НайденноеЗначение[0].НомерКИЗ,14);

               СтрокаПозицииЧека.ДанныеКодаТоварнойНоменклатуры.СерийныйНомер                          = Сред(НайденноеЗначение[0].НомерКИЗ,15);

               СтрокаПозицииЧека.ДополнительныйРеквизит = "mdlp";

         КонецЕсли;

        КонецЕсли;

 //  ИнтеграцияМДЛП -

Таким образом, был реализован блок МДЛП в типовой конфигурации “Управление нашей фирмой, редакция 1.6 (1.6.18.168)”. Поставленные задачи были выполнены, интеграция прошла успешно.

 

Интеграция Маркировка МДЛП УНФ Честный Знак

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16297    14    18    

14

Интеграция 1С и Битрикс 24 — модуль синхронизации для обмена задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс 24. Разработка имеет двухстороннюю синхронизацию 1С и Bitrix24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18515    10    15    

16

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13127    34    8    

13

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Системный администратор Программист Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85875    26    51    

50