Интеграция МДЛП и 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 работает в режиме обычного приложения. Поэтому понятно, что придется сделать немного больше действий, чем описано в предоставленной разработчиками инструкции. Нажатие на изображении увеличит его Так же в файле описано, как в дальнейшем выполнять обновление модуля интеграции. Но, об этом, позднее. Нажатие на изображении увеличит его ВАЖНО: сначала попробуйте выполнить интеграцию модуля на копии базы или как минимум на конфигурации рабочей базы. Итак, перейдем к непосредственному примеру внедрения МДЛП в УТ 10.3. Первое внедрение, что логично, необходимо выполнить через Конфигуратор базы. Выбираем с меню "Конфигурация" пункт "Сравнить, объединить с конфигурацией из файла...". В открывшемся диалоговом окне указываем файл "1Cv8.cf" поставки библиотеки, который должен находиться в каталоге шаблонов "tmplts\1c\MDLP\[номер_релиза]", в данном примере номер релиза "1_2_5_11". Нажимаем кнопку "Открыть" после выделения файла или двойной щелчок по файлу в диалоге приведет к дальнейшему пункту. Нажатие на изображении увеличит его Откроется промежуточное окно для подтверждения возможности объединения и постановки на поддержку конфигурации поставщика - в частности это "БиблиотекаИнтеграцииМДЛП". Подтверждаем, нажав кнопку "Да".
Откроется окно "Сравнение, объединение Основная конфигурация - Файл ...". Для последующего объединения сначала снимем пометку всех объектов "Основной конфигурации", убрав флажок у названия конфигурации "Управление торговлей". После этого автоматически снимутся все нижестоящие подчиненные флажки остальных объектов.
Теперь, чтобы отметить нужные переносимые объекты воспользумеся в меню "Действия" – командой "Отметить по подсистемам конфигурации файла".
В открывшемся окне "Отбор по подсистемам", подобно тому, как на предыдущем шаге сняли флажком отметку всех подчиненных флажков, так и здесь сначала снимаем все флажки, сняв корневой флажок для строки дерева "БиблиотекаИнтеграцииМДЛП". После этого нужно по отдельности отметить из групп подсистемы выбрать:
Оставляем установленным только флажок "Включать объекты подчиненных подсистем". Флажок "Включать объекты родительских подсистем" снят. После отметки подсистем необходимо нажать кнопку "Установить".
Процесс вернется в окно "Сравнение, объединение Основная конфигурация - Файл ...". В нем будут установлены флажки для объединения тех объектов, которые относятся к отмеченным подсистемам. По умолчанию добавлять или снимать флажки не нужно.
Еще на этом этапе необходимо проверить, убедиться, что режим объединения находится в значении "Взять из файла". Проверим это через меню "Действия" – пункт "Установить режим для всех…", если не установлено значение "Взять из файла", то выбрать его. Нажимаем кнопку "ОК" окна "Установить режим для всех объектов". Вернемся в окно сравнения и объединения.
Нажимаем кнопку "Выполнить".
Вероятнее всего, что после нажатия на кнопку "Выполнить" откроется окно "Неразрешимые ссылки". В нем нажимаем кнопку "Продолжить".
В открывшейся впоследствии форме "Настройка правил поддержки" оставляете все "как есть" и нажимаем "ОК".
После будет предложено сохранить результат настройки объединения конфигураций. Можно сохранить с помощью одноименной кнопки. Если нажать кнопку "Отмена", то процесс продолжиться. Нажатие на изображении увеличит его В результате платформа 1С сообщить о том, что "Объединение конфигураций завершено". Но процесс еще не завершен, т.к. требуется сохранить внесенные в результате объединения в конфигурацию изменения.
Остается нажать "Обновить конфигурацию базы данных (F7)", чтобы изменения в результате объединения окончательно сохранить в конфигурации.
НО, в этом месте скорее всего может возникнуть ошибка "ОпределяемыйТип: Использование определяемых типов в режиме совместимости 8.3.2 и ниже недопустимо" - полное описание ошибки способ ее устранения приведены в указанной ссылке. Нажатие на изображении увеличит его Коротко лишь скажем, что дальше необходимо установить значение режима совместимости конфигурации в значение После этого при повторной попытке сохранения с помощью "Обновить конфигурацию базы данных (F7)" через согласие кнопкой "Принять" в процессе "Реорганизации информации" сохранение должно завершиться.
Может так получиться, что в процессе запуска базы после сохранения изменений потребуется повторно выполнить операцию "Сравнения и объединения", т.к. в силу несовершенства кода библиотеки интеграции не все объекты могут быть перенесены из конфигурации поставки. Но при этом придется конкретно отмечать при объединении конкретно те объекты, которых недостает.
После завершения сравнения и объединения перейти ко второму этапу руководства по добавлению модуля библиотеки МДЛП – настройка объектов библиотеки. Но, еще задержимся на этом этапе, т.к. есть что отметить из практики внедрения именно для конфигурации УТ релиза 10.3.70. Некоторые определяемые типы модуля ориентированы под объекты конфигураций, работающих в режиме управляемого приложения и такие объекты отсутствуют в базе конфигурации, работающей в режиме обычного приложения. Поэтому в таких определяемых типах будет установлен "Тип" - "Строка". Это нужно исправить для дальнейшей корректной работы, указав "Типы" из конфигурации, в которую внедряется модуль МДЛП. В частности, примеры типов указаны в таблице ниже, необходимые для работы базового функционала модуля. Предварительно потребуется включить возможность редактирования для определяемых типов, возможно даже с полным снятием поддержки, чтобы дальнейшие обновления модуля не изменили установки.
А ниже для определяемых типов, которые связаны с документами, которые являются основаниями для уведомлений под частный случай задачи внедрения:
В общий модуль "ОбщегоНазначения" в функцию "ЭтоСсылка" добавить строку перед кодом функции для корректной работы кода конфигурации с модулем МДЛП: Если Тип = Тип("Неопределено") Тогда Возврат Ложь; КонецЕсли;
В общий модуль "ОбщегоНазначенияКдиентСервер" переносятся копированием экспортные (т.е. с "Экспорт" после название) процедуры и функции из указанных других модулей:
После запуска может не отображаться в формах, например список и элементы справочника "Организации МДЛП", содержимое. Тогда нужно вручную с помощью кода внешней обработки включить использование функционала, управляемого значением константы "ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов": Константы.ВестиСведенияДляМониторингаДвиженияЛекарственныхПрепаратов.Установить(Истина); Для справочника "Номенклатура" необходимо добавить реквизиты примерного смыслового назначения "Маркировка" (тип "Булево"), чтобы отмечать, подлежит товар маркировке или нет. И реквизит длиной в 14 символов для хранения в нем так называемого GTIN - по сути номера товара, но в системе отслеживания лекарственных препаратов. В этом месте обратимся к тому, что необходимо связать события проведения документов базы с событиями формирования документов "Уведомления..." модуля. Исходно в модуле МДЛП код соответствующих процедур и функций не прописан, т.к. модуль предполагает его встраивание, и, следовательно, индивидуальную настройку в конкретной базе. В моем примере на начальном этапе интеграции должны были работать 4 вида документов и событий с ними связанных: "Поступление товаров и услуг", "Реализация товаров и услуг", "Корректировка реализации", "Комплектация номенклатуры". Суть в том, что при проведении соответствующих документов отгрузки или изменения должны создаваться вводом на основании при проведении или записи документы "Уведомление об отгрузке..." или, например "Уведомление об агрегировании и трансформации упаковок". Или наоборот, на основании документов "Уведомление о приемке МДЛП", создавать документ "Поступление товаров и услуг". Это общий начальный принцип. При этом отмечу, что при создании документов вводом на основании, важно устанавливать значение "ИдентификаторСтроки" табличных частей "Товары" документов "Уведомление ..." и заполнять значение реквизита строки "GTIN" по данным бухгалтерии, чтобы в дальнейшем в форме была корректная работа. А так же заполнение документа выполняется только товарами с признаком "Маркировка" в значении "Истина", ведь нет смысла выгружать сведения о не маркируемом товаре. В общем случае логика модуля МДЛП подразумевает, что код заполнения при вводе на основании должен располагаться в общем модуле "ИнтеграцияМДЛППереопределяемый", процедуре "ОбработкаЗаполнения": Нажатие на изображении увеличит его Чтобы добавить код, можно пойти на хитрость и обратиться к другим типовым решениям, в которые уже добавлен модуль МДЛП, чтобы понять, по какому принципу привязывать типовые документы и формируемые на их основании "уведомления". В моем случае была возможность опираться на пример от конфигурации 1С: Управление аптечной сетью. Далее потребуются изменения в похожем коде самой базы конфигурации УТ, чтобы разделить поведение для случая хранения файлов, которое отлично в модуле МДЛП. Для этого явно добавить строку: ИменаСправочников = Новый Соответствие; в процедуре "ПриОпределенииСправочниковХраненияФайлов" модуля "ИнтеграцияМДЛП": Нажатие на изображении увеличит его И непосредственное разветвление поведения в модуле "РаботаСФайлами", в функции "ДобавитьФайл", взяв и поместив в новое условие код одноименной процедуры "ДобавитьФайл" из общего модуля "РаботаСФайлами" библиотеки МДЛП. Таким образом когда код будет выполняться для МДЛП, работа с файлами будет производиться по подсистеме МДЛП, когда типовым образом - то по стандартным механизмам конфигурации УТ. Так же, основываясь на личном опыте ошибок при интеграции модуля в 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) |
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||
Copyright 2013-2020. Azhur-c.ru
ИП Журавлев Александр Сергеевич ИНН 667000271590 ОГРНИП 312667014300041 |