Интеграция МДЛП и 1С Управление торговлей 8 10.3
 
Описание примера интеграции модуля учета маркировки МДЛП в конфигурацию базы 1С Управление торговлей 8 10.3. Общий частный порядок на примере внедрения с возникшими ошибками и проблемами и их устранением, исправлением.

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

Не будем спорить - вышеописанный способ рабочий, но немного неудобный и неподходящий, т.к. требование состояло в том, чтобы работа происходила в одной информационной среде, т.е. в одной базе 1С.

Файлы поставки конфигурации "Библиотека системы маркировки" после установки в каталог шаблонов "tmplts\1c\MDLP\1_2_5_11\ExtFiles\Docs" содержат краткое описание в файле "Порядок внедрения Библиотеки интеграции с МДЛП.html" о том, как выполнить объединение с конфигурацией. Но, нужно отметить, что описание имеет больше отношение к конфигурациям, работающим в режиме управляемого приложения. Конфигурация же 1С: Управление торговлей, ред. 10.3 работает в режиме обычного приложения. Поэтому понятно, что придется сделать немного больше действий, чем описано в предоставленной разработчиками инструкции.

Нажатие на изображении увеличит его
1С 8, как настроить обмен МДЛП в честный знак в УТ 10.3
Рис.1 Руководство по внедрению "Библиотеки интеграции МДЛП" от разработчика 1С.

Так же в файле описано, как в дальнейшем выполнять обновление модуля интеграции. Но, об этом, позднее.

Нажатие на изображении увеличит его
1C 8 как обновить модуль библиотеки интеграции МДЛП
Рис. 2. Инструкция по внедрению содержит так же описание по дальнейшему обновлению библиотеки интеграции МДЛП.

ВАЖНО: сначала попробуйте выполнить интеграцию модуля на копии базы или как минимум на конфигурации рабочей базы.

Итак, перейдем к непосредственному примеру внедрения МДЛП в УТ 10.3. Первое внедрение, что логично, необходимо выполнить через Конфигуратор базы. Выбираем с меню "Конфигурация" пункт "Сравнить, объединить с конфигурацией из файла...". В открывшемся диалоговом окне указываем файл "1Cv8.cf" поставки библиотеки, который должен находиться в каталоге шаблонов "tmplts\1c\MDLP\[номер_релиза]", в данном примере номер релиза "1_2_5_11". Нажимаем кнопку "Открыть" после выделения файла или двойной щелчок по файлу в диалоге приведет к дальнейшему пункту.

Нажатие на изображении увеличит его
1С 8, как внедрить, установить модуль МДЛП в управление торговлей 10.3
Рис. 3. Начало процесса установки модуля МДЛП в базу конфигурации 1С 8 УТ 10.3

Откроется промежуточное окно для подтверждения возможности объединения и постановки на поддержку конфигурации поставщика - в частности это "БиблиотекаИнтеграцииМДЛП". Подтверждаем, нажав кнопку "Да".


Рис. 4. Постановка на поддержку библиотеки МДЛП в базе 1С8: Управление торговлей, ред. 10.3

Откроется окно "Сравнение, объединение Основная конфигурация - Файл ...". Для последующего объединения сначала снимем пометку всех объектов "Основной конфигурации", убрав флажок у названия конфигурации "Управление торговлей". После этого автоматически снимутся все нижестоящие подчиненные флажки остальных объектов. 


Рис. 5. окно "Сравнение, объединение Основная конфигурация - Файл библиотеки интеграции МДЛП"

Теперь, чтобы отметить нужные переносимые объекты воспользумеся в меню "Действия" – командой "Отметить по подсистемам конфигурации файла".


Рис. 6. Способ отметки для объединения "по подсистемам файла".

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

  • обязательные подсистемы "БазоваяФункциональность" и "ТранспортАПИ";
  • подсистемы, которые требуется внедрить в вашу конфигурацию. В текущем примере это "ОптовыеЗакупкиПродажи", "Склад", т.к. будет применяться для операций оптовой закупки и реализации и складского движения за счет перемещений между складами.

Оставляем установленным только флажок "Включать объекты подчиненных подсистем". Флажок "Включать объекты родительских подсистем" снят. После отметки подсистем необходимо нажать кнопку "Установить".


Рис. 7. Отбор по подсистемам библиотеки МДЛП при установке в УТ 10.3

Процесс вернется в окно "Сравнение, объединение Основная конфигурация - Файл ...". В нем будут установлены флажки для объединения тех объектов, которые относятся к отмеченным подсистемам. По умолчанию добавлять или снимать флажки не нужно.


Рис. 8. Результат объединения по подсистемам.

Еще на этом этапе необходимо проверить, убедиться, что режим объединения находится в значении "Взять из файла". Проверим это через меню "Действия" – пункт "Установить режим для всех…", если не установлено значение "Взять из файла", то выбрать его. Нажимаем кнопку "ОК" окна "Установить режим для всех объектов". Вернемся в окно сравнения и объединения.


Рис. 9. Выбор режима объединения.

Нажимаем кнопку "Выполнить".


Рис. 10. Завершение режима объединения


 

Вероятнее всего, что после нажатия на кнопку "Выполнить" откроется окно "Неразрешимые ссылки".  В нем нажимаем кнопку "Продолжить".


Рис. 11. Окно "Неразрешимые ссылки" в процессе выполнения объединения.

В открывшейся впоследствии форме "Настройка правил поддержки" оставляете все "как есть" и нажимаем "ОК".


Рис. 12. Настройка правил поддержки для библиотеки МДЛП после объединения с конфигурацией

После будет предложено сохранить результат настройки объединения конфигураций. Можно сохранить с помощью одноименной кнопки. Если нажать кнопку "Отмена", то процесс продолжиться.

Нажатие на изображении увеличит его

Рис. 13. Возможность сохранения данных настройки объединения конфигураций

В результате платформа 1С сообщить о том, что "Объединение конфигураций завершено". Но процесс еще не завершен, т.к. требуется сохранить внесенные в результате объединения в конфигурацию изменения.


Рис. 14. Сообщение о том, что объединение конфигураций завершено.

Остается нажать "Обновить конфигурацию базы данных (F7)", чтобы изменения в результате объединения окончательно сохранить в конфигурации.


Рис. 15. Обновить конфигурацию базы данных

НО, в этом месте скорее всего может возникнуть ошибка "ОпределяемыйТип: Использование определяемых типов в режиме совместимости 8.3.2 и ниже недопустимо" - полное описание ошибки способ ее устранения приведены в указанной ссылке.

Нажатие на изображении увеличит его

Рис. 16. Пример возникновения ошибки "ОпределяемыйТип: Использование определяемых типов
в режиме совместимости 8.3.2 и ниже недопустимо"

Коротко лишь скажем, что дальше необходимо установить значение режима совместимости конфигурации в значение 

После этого при повторной попытке сохранения с помощью "Обновить конфигурацию базы данных (F7)" через согласие кнопкой "Принять" в процессе "Реорганизации информации" сохранение должно завершиться.


Рис. 17. Реорганизации информации при сохранении изменений конфигурации.

Может так получиться, что в процессе запуска базы после сохранения изменений потребуется повторно выполнить операцию "Сравнения и объединения", т.к. в силу несовершенства кода библиотеки интеграции не все объекты могут быть перенесены из конфигурации поставки. Но при этом придется конкретно отмечать при объединении конкретно те объекты, которых недостает.

 

После завершения сравнения и объединения перейти ко второму этапу руководства по добавлению модуля библиотеки МДЛП – настройка объектов библиотеки. Но, еще задержимся на этом этапе, т.к. есть что отметить из практики внедрения именно для конфигурации УТ релиза 10.3.70.

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

Название Определяемого типа устанавливаемый Тип
Номенклатура "СправочникСсылка.Номенклатура"
ОбъектМестаДеятельностиМДЛП "СправочникСсылка.Склады"
ОрганизацияКонтрагентМДЛП составной тип
"СправочникСсылка.Организации, 
СправочникСсылка.Контрагенты"

А ниже для определяемых типов, которые связаны с документами, которые являются основаниями для уведомлений под частный случай задачи внедрения:

Название Определяемого типа устанавливаемый Тип
ОснованиеУведомленияОПриемкеМДЛП составной тип
"ДокументОбъект.ВозвратТоваровОтПокупателя,
ДокументОбъект.ПоступлениеТоваровУслуг"
ОснованиеУведомленияОПриемкеМДЛПОбъект составной тип "ДокументОбъект.ВозвратТоваровОтПокупателя, ДокументОбъект.ПоступлениеТоваровУслуг, ДокументОбъект.УведомлениеОПриемкеМДЛП"
ОснованиеУведомленияОбОтгрузкеМДЛП составной тип "ДокументОбъект.ВозвратТоваровПоставщику, ДокументОбъект.РеализацияТоваровУслуг"
ОснованиеУведомленияОбОтгрузкеМДЛПОбъект составной тип "ДокументОбъект.ВозвратТоваровПоставщику, ДокументОбъект.РеализацияТоваровУслуг,  ДокументОбъект.УведомлениеОбОтгрузкеМДЛП"
ОснованиеУведомленияОПеремещенииМДЛП "ДокументСсылка.ПеремещениеТоваров"
ОснованиеУведомленияОПеремещенииМДЛПОбъект составной тип "ДокументОбъект.УведомлениеОПеремещенииМДЛП, ДокументОбъект.ПеремещениеТоваров"
ОснованиеУведомленияОРозничнойПродажеМДЛП "ДокументОбъект.ОтчетОРозничныхПродажах"
ОснованиеУведомленияОРозничнойПродажеМДЛПОбъект составной тип "ДокументОбъект.ОтчетОРозничныхПродажах, ДокументОбъект.ОснованиеУведомленияОРозничнойПродажеМДЛП"
ОснованиеУведомленияОбАгрегированииИТрансформацииУпаковокМДЛП "ДокументОбъект.КомплектацияНоменклатуры"
ОснованиеУведомленияОбАгрегированииИТрансформацииУпаковокМДЛПОбъект составной тип "ДокументОбъект.КомплектацияНоменклатуры, ДокументОбъект.УведомлениеОбАгрегированииИТрансформацииУпаковокМДЛП"

В общий модуль "ОбщегоНазначения" в функцию "ЭтоСсылка" добавить строку перед кодом функции для корректной работы кода конфигурации с модулем МДЛП:

Если Тип = Тип("Неопределено") Тогда Возврат Ложь; КонецЕсли;

В общий модуль "ОбщегоНазначенияКдиентСервер" переносятся копированием экспортные (т.е. с "Экспорт" после название) процедуры и функции из указанных других модулей:

Общий модуль, из которого копируем Имя процедуры/функции
Файловая система

Функция ПараметрыЗапускаПрограммы() Экспорт
в код добавить:
Параметры.Вставить("КодировкаИсполнения", Неопределено);
// МДЛП
Параметры.Вставить("КодировкаПотоков", Неопределено);
//\\ МДЛП

Функция ЗапуститьПрограмму(Знач КомандаЗапуска, ПараметрыЗапускаПрограммы = Неопределено) Экспорт
Процедура УдалитьВременныйФайл(Знач Путь) Экспорт
Процедура УдалитьВременныйФайлы(Знач Путь)​
Функция ЭтоИмяВременногоФайла(Путь)
Процедура ПроверитьТекущийКаталог(СтрокаКоманды, ТекущийКаталог)
Функция ПрочитатьФайлЕслиСуществует(Путь, Кодировка)
Функция КодировкаСтандартныхПотоков()

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

Константы.ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов.Установить(Истина);

Для справочника "Номенклатура" необходимо добавить реквизиты примерного смыслового назначения "Маркировка" (тип "Булево"), чтобы отмечать, подлежит товар маркировке или нет. И реквизит длиной в 14 символов для хранения в нем так называемого GTIN - по сути номера товара, но в системе отслеживания лекарственных препаратов.

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

Суть в том, что при проведении соответствующих документов отгрузки или изменения должны создаваться вводом на основании при проведении или записи документы "Уведомление об отгрузке..." или, например "Уведомление об агрегировании и трансформации упаковок". Или наоборот, на основании документов "Уведомление о приемке МДЛП", создавать документ "Поступление товаров и услуг". Это общий начальный принцип. При этом отмечу, что при создании документов вводом на основании, важно устанавливать значение "ИдентификаторСтроки" табличных частей "Товары" документов "Уведомление ..." и заполнять значение реквизита строки "GTIN" по данным бухгалтерии, чтобы в дальнейшем в форме была корректная работа. А так же заполнение документа выполняется только товарами с признаком "Маркировка" в значении "Истина", ведь нет смысла выгружать сведения о не маркируемом товаре.

В общем случае логика модуля МДЛП подразумевает, что код заполнения при вводе на основании должен располагаться в общем модуле "ИнтеграцияМДЛППереопределяемый", процедуре "ОбработкаЗаполнения":

Нажатие на изображении увеличит его

Рис. 18. 

Чтобы добавить код, можно пойти на хитрость и обратиться к другим типовым решениям, в которые уже добавлен модуль МДЛП, чтобы понять, по какому принципу привязывать типовые документы и формируемые на их основании "уведомления". В моем случае была возможность опираться на пример от конфигурации 1С: Управление аптечной сетью.

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

ИменаСправочников = Новый Соответствие;

в процедуре "ПриОпределенииСправочниковХраненияФайлов" модуля "ИнтеграцияМДЛП":

Нажатие на изображении увеличит его

Рис. 19. Разделяем в коде хранение файлов от УТ и от МДЛП

И непосредственное разветвление поведения в модуле "РаботаСФайлами", в функции "ДобавитьФайл", взяв и поместив в новое условие код одноименной процедуры "ДобавитьФайл" из общего модуля "РаботаСФайлами" библиотеки МДЛП. Таким образом когда код будет выполняться для МДЛП, работа с файлами будет производиться по подсистеме МДЛП, когда типовым образом - то по стандартным механизмам конфигурации УТ.

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

 


 

 

Настройки в пользовательском интерфейсе

Выполняется заполнение справочника "Организации МДЛП", необходимо корректно указать "Регистрационный номер участника", "Идентификатор клиента", "Секретный код" по данным личного кабинета Маркировки. Если какая-то из настроек окажется не верной, то можно столкнуться с ошибкой при попытке выполнения обмена в "Панели маркировки": Ошиб­ка при вы­пол­не­нии POST-​за­про­са по ад­ре­су /api/v1/auth [400] За­прос не может быть ис­пол­нен. {"error_code":"api.​authentication.​error","error_description":"Ошиб­ка при вы­пол­не­нии опе­ра­ции: Про­верь­те аутен­ти­фи­ка­ци­он­ные дан­ные"}. Описание ошибки и способ ее устранения приведеные по ссылке: как устранить "ошиб­ка при вы­пол­не­нии POST-​за­про­са по ад­ре­су /api/v1/auth [400] За­прос не может быть ис­пол­нен"

 

Инструкция по настройке после интеграции "Как настраивать работу с МДЛП и подключать сканеры для работы с маркировкой лекарств"

 

Видео обновление: https://www.youtube.com/watch?v=-GFomtt6Meg

 

Оцените, оказалась ли эта публикация полезна для Вас?

© www.azhur-c.ru 2013-2020. Все права защищены. Использование текстов и изображений с данной страницы без письменного разрешения владельца запрещено. При использовании материалов с данной страницы обязательно указание ссылки на данную страницу.

07-06-2022

Журавлев А.С. (Сайт azhur-c.ru)

Назад

 
 

Здесь можно
приобрести лицензии

1С 8
​ и типовые решения

ural-rosaudit.ru - Аудит в сфере ЖКХ, www.ural-rosaudit.ru
azhur-blog.ru - мошенничество в интернете, www.azhur-blog.ru
info-compas.ru - каталог, инфокурсы, видеокурсы, видео курсы, обучение он-лайн, www.info-compas.ru
https://vk.com/effective_ideas - Группа вКонтакте Методы заработка и работы при помощи Интернет

 

Проверить аттестат
Cистема приема платежей, касса для сайта
Cистема управления контентом Santafox&trade. Санкт-Петербург, Ленинский проспект, д. 23 (812) 545-47-48
Яндекс.Метрика