Интеграция специализированных библиотек 1С, таких как Библиотека интеграции с МДЛП (БИМ), в типовые конфигурации (например, «1С:Бухгалтерия предприятия 3.0») — задача нетривиальная. Многие разработчики, особенно не имеющие глубокого опыта работы со стандартами Библиотеки стандартных подсистем (БСП), пытаются выполнить интеграцию путем обычного сравнения и объединения конфигураций в конфигураторе. В результате они сталкиваются с целым рядом проблем: незаполненными или поврежденными метаданными, отсутствием новых интерфейсов в пользовательском режиме, конфликтами версий и сбоями в механизмах обновления ИБ.
В этой статье мы подробно разберем, почему возникают технические ошибки при ручном объединении, как устроена архитектура интеграции подсистем на БСП, а также рассмотрим альтернативные и более безопасные пути автоматизации работы с МДЛП в организациях, использующих типовую 1С:Бухгалтерию.
Рассмотрим типичную ситуацию, описанную автором темы. При попытке объединить БП 3.0 и БИМ в режиме сравнения-объединения конфигураций часть объектов (например, регистр сведений РабочиеМестаМДЛП) создается без измерений и ресурсов, а в пользовательском режиме новые функции не появляются, хотя заголовок системы меняется на наименование интегрируемой библиотеки.
Выясним главные причины такого поведения платформы:
РабочиеМестаМДЛП остался пустым и неработоспособным.Если вы все же приняли решение внедрять Библиотеку интеграции с МДЛП непосредственно в код конфигурации БП 3.0, необходимо строго следовать стандартам внедрения БСП. Разберем по шагам, какие программные изменения требуются для корректной инициализации подсистемы.
После переноса объектов метаданных через сравнение и объединение (исключая замену общих модулей БСП БП 3.0 старыми версиями) необходимо зарегистрировать библиотеку в общем модуле ПодсистемыКонфигурацииПереопределяемый.
Найдем процедуру ПриДобавленииПодсистем и проанализируем её структуру. Нам необходимо добавить туда описание интеграционного контура МДЛП, чтобы конфигурация поняла, что в ее составе появился новый программный модуль. Пример добавления кода выглядит следующим образом:
Процедура ПриДобавленииПодсистем(СписокПодсистем) Экспорт
// Регистрируем основную БСП и другие имеющиеся библиотеки
// ...
// Регистрируем Библиотеку интеграции с МДЛП
СписокПодсистем.Добавить("ОбновлениеИнформационнойБазыМДЛП");
КонецПроцедуры
Затем необходимо прописать вызовы обработчиков в модуле ОбщегоНазначенияКлиентПереопределяемый в процедуре ПослеНачалаРаботыСистемы, чтобы запустить регламентные процессы обмена на клиенте:
Процедура ПослеНачалаРаботыСистемы() Экспорт
// Инициализация стандартных подсистем
// ...
// Подключение механизмов обмена МДЛП на клиенте
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("ИнтеграцияМДЛПКлиент") Тогда
МодульИнтеграцияМДЛПКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ИнтеграцияМДЛПКлиент");
МодульИнтеграцияМДЛПКлиент.ПодключитьОбработчикВыполненияОбменаНаКлиентеПоРасписанию();
КонецЕсли;
КонецПроцедуры
Регистрация в переопределяемых модулях заставит систему при первом запуске в режиме «Предприятие» запустить процедуру обновления ИБ, которая создаст структуру регистра РабочиеМестаМДЛП, заполнит необходимые константы и справочники по умолчанию, а также предоставит доступ к интерфейсу МДЛП пользователям с соответствующими ролями.
Проанализируем политику фирмы 1С по наполнению типовых конфигураций. В стандартную «Бухгалтерию предприятия 3.0» встроена поддержка ИС МП («Честный Знак») для общей маркировки потребительских товаров (обувь, одежда, табак, парфюмерия, молочная продукция). Однако полноценная интеграция с ФГИС МДЛП в БП 3.0 отсутствует.
Это связано с тем, что учет медицинских препаратов имеет жесткую отраслевую специфику (серии, сроки годности, учет по дозировкам, особые единицы измерения, работа с рецептурными бланками). Разработчики 1С поставляют функционал МДЛП только в специализированных отраслевых решениях:
Попытка ручного внедрения БИМ в стандартную бухгалтерию превратит базу в «кастомный долгострой», который будет крайне сложно и дорого обновлять при выходе новых релизов от 1С.
Рассмотрим, как решить задачу автоматизации обмена с МДЛП без снятия БП 3.0 с поддержки и ручного встраивания кода.
Платформа 1С v8.3 позволяет кастомизировать систему с помощью расширений конфигурации. На рынке существуют готовые коммерческие модули и расширения от независимых разработчиков и партнеров 1С. Такие расширения подключаются в режиме «1С:Предприятие» за несколько минут, не требуют изменения основной конфигурации и автоматически встраивают контур МДЛП в документы поступления и реализации типовой БП 3.0. Основная конфигурация при этом остается на полной поддержке.
Для небольших медицинских кабинетов, аптек, стоматологий и санаториев фирма 1С создала отдельное локальное и облачное приложение «1С:МДЛП». Схема работы выглядит следующим образом:
Этот вариант является самым надежным и дешевым с точки зрения сопровождения IT-инфраструктуры организации.
Для организаций с минимальным объемом оборота маркированных лекарств нет необходимости автоматизировать обмен непосредственно в учетной системе. Оператор ЦРПТ предоставляет бесплатный личный кабинет и приложение «Фарма.Просто». Вы можете выгружать документы поступления или реализации из 1С в формате XML и загружать их в личный кабинет «Фарма.Просто» вручную для подписания и отправки в государственную систему.
При проектировании обмена с МДЛП (будь то через встроенную библиотеку или собственную обработку API) критически важно понимать бизнес-логику взаимодействия контрагентов.
Разберем две основные схемы движения документов при поступлении лекарственных средств:
Ниже приведена упрощенная схема обработки документов в 1С при обратном акцепте:
ПриемкаТоваровМДЛП.Поступление (акт, накладная) в БП 3.0.Некоторые разработчики на форумах предлагают отказаться от использования типовой библиотеки МДЛП и написать собственную обработку обмена, вызывая сторонние утилиты через консоль (например, утилиту cryptcp от КриптоПро). Проанализируем, почему этот путь сопряжен со значительными трудностями:
МенеджерКриптографии). Использование самописного кода для подписания XML-схем требует глубоких знаний стандартов XMLDSig и криптографических алгоритмов ГОСТ. Библиотека интеграции МДЛП берет всю эту рутину на себя, используя стандартные настройки электронной подписи в 1С.Таким образом, попытка обойти стандартные решения 1С и написать обмен с МДЛП «с нуля» оправдана только в очень редких случаях (например, при автоматизации работы на старых версиях платформы 1С 7.7). Во всех остальных случаях для баз на платформе 1С 8.3 оптимальным решением является использование официальной Библиотеки интеграции с МДЛП (внедренной по стандартам БСП) либо переход на специализированную конфигурацию «1С:МДЛП» с последующей синхронизацией данных с вашей рабочей «1С:Бухгалтерией 3.0».