Область применения
Доступ к данным 1С через СКД, без единой строки кода
Поддержка JSON-RPC и запросов из браузера
Превращение 1С в Headless CMS
Методы добавляются без изменения конфигурации
Код можно разместить в общем модуле или справочнике
Работа с планами обмена и отдача только изменённых данных
В поставке — демо-база с примерами и схемами
Технические требования
Расширение совместимо со всеми конфигурациями на платформе 8.3 или 8.5, которые возможно запустить с управляемыми формами
Внимание! Расширение не работает на БАЗОВЫХ конфигурациях. (в базовых конфигурациях 1С отсутствует возможность подключения расширений)
Полностью открытый код.
Не требует наличия каких-либо объектов метаданных
Поддерживается три варианта работы
API
- • API с передачей параметров в адресной строке.
- • Получить описание API можно запросом такого вида: https://server1s/baza/hs/lemurr/md/json?k=123456.
API по протоколу json-rpc
- • При таком подходе адрес для обращения всегда один, а имя правила и параметры передаются в запросе json-rpc.
Web hook
- • Подход web hook подразумевает отправку данных по инициативе системы.
- • Может отправлять накопленные данные по расписанию или по запросу.
- • Такой подход удобен, когда система «знает» какие данные нужны корреспондирующей системе.
Функциональные возможности обмена данными
Правила обмена
- Описание правил обмена в расширении
- Указание полей данных для каждого правила
- Алгоритмы чтения из 1С, записи и отправки
- Поддержка одинаковых правил в корреспондирующих системах
Наборы правил (API)
1. Множество наборов
В одной базе возможно описать несколько наборов правил, каждый из которых представляет собой отдельное API.
2. План синхронизации
Правила объединяются в наборы с помощью плана синхронизации для гибкой настройки сценариев обмена.
3. Гибкая конфигурация
Возможность создания различных комбинаций правил под разные бизнес-процессы.
Обмен изменениями
Только изменения
Система поддерживает обмен только изменёнными данными при использовании планов обмена.
Настройка отслеживания
Для каждого правила необходимо указать объект метаданных и узел обмена для отслеживания изменений.
Эффективность
Минимизация передаваемых данных за счёт отправки только актуальных изменений.
- Адрес для получения данных в общем виде выглядит так:
https://server1s/baza/hs/lemurr/data/80213a3c-6a2d-11ef-825d-f43bd8ccef6b/json/100/200?k=123456&n=1- Где:
- https — протокол (обязательно защищенный)
- server1s — имя web сервера
- baza — имя базы 1С на web сервере
- hs — признак обращения к http сервису
- lemurr — имя http сервиса
- data — признак получения данных (можно заменить на md для описания API)
- 80213a3c-6a2d-11ef-825d-f43bd8ccef6b — идентификатор правила синхронизации
- json — формат возвращаемых данных (можно указать html для отладки)
- 100 — количество возвращаемых записей
- 200 — начальная позиция для постраничного просмотра
- Параметры после ?:
- k=123456 — ключ плана синхронизации
- n=1 — флаг возврата только измененных данных
- Примеры запросов:
- Описание API в JSON:
https://server1s/baza/hs/lemurr/md/json?k=123456 - Описание API в HTML:
https://server1s/baza/hs/lemurr/md/html?k=123456 - Отправка данных:
https://server1s/baza/hs/lemurr?k=123456
- Пример curl-запроса для записи данных:
curl -X POST -T "zapis.json" https://server1s/baza/hs/lemurr/data/80213a3c-6a2d-11ef-825d-f43bd8ccef6b/json?k=123456- Содержимое файла zapis.json:
-
{ "Наименование": "1С:Упрощенка 8", "Артикул": "4601546048264", "ПолноеНаименование": "1С:Упрощенка 8" } - Алгоритм исполнит скрипт обработки загрузки, передав ему полученные данные.
- Работа в формате JSON-RPC осуществляется только через POST-запросы.
- Базовый адрес для всех запросов:
https://server1s/baza/hs/lemurr?k=123456- Где 123456 — ключ плана синхронизации.
- Пример запроса для получения описания API:
-
{ "jsonrpc": "2.0", "method": "__описание__", "params": null, "id": "произвольный идентификатор" } - __описание__ — зарезервированное слово для получения описания API.
Примечания
- В версии 1.4.7 изменён формат возвращаемых данных, поэтому частично несовместима с предыдущими версиями
- Настройка обмена по правилами описана в статье Ле Мурр поможет настроить самостоятельный обмен данными или работать параллельно с конвертацией
Видеодемонстрация
Демонстрация решения. Посмотрите короткое видео, в котором рассказываем про основные функции продукта.
Установка решения в базу 1С, публикация на web сервере, настройка Apache, проверка работоспособности.
Также важно учесть технические требования: решение работает на платформе 8.3.16 и новее.
Не подходит для базовых версий
Пример записи данных в 1С
Пример асинхронного вызова метода API
Версия 1.4
Ле Мурр начиная с версии 1.4 позволяет настроить между базами 1С обмен данными, подобный конвертации данным. Он может работать параллельно с уже существующими конвертациями либо самостоятельно.
Более того, корреспондирующая система не обязательно должна быть 1С. Такой же набор json-rpc методов можно создать практически на любом языке.
Добавлена возможность настроить соответствие полей API полям объектов базы данных в справочнике ЛемуррНастройкиЗагрузки. Эти настройки описывают поиск и создание объектов базы, а также загрузку ненайденных из базы-источника.
Ведение таблицы соответствия объектов
Если в системе присутствует БСП, то при синхронизации объекты могут сопоставляться с использованием регистров сведений ПубличныеИдентификаторыСинхронизируемыхОбъектов и СоответствияОбъектовИнформационныхБаз. Для этого достаточно указать узел обмена в правиле синхронизации. Соответствия созданных объектов внушним идентификаторам могут регистрироваться в указанных регистрах. Также Ле Мурр ведёт собственную таблицу соответствий на случай, если типовой обмен не используется. Благодаря этому Ле Мурр может работать как самостоятельно так и совместно с типовыми конверациями версий 2 и 3 (КД2 и КД3).
Настройки загрузки по правилам
В сопрягаемых базах создаются правила синхронизации (методы api) с одинаковыми наборами полей. В базе-получателе создаём настройку загрузки, в которой указываем правило синхронизации. Эта настройка преобразует полученные поля в объект базы 1С.
Если в при заполнении объекта БД получена ссылка на ещё отсутствующий объект, то Ле Мурр может запросить этот объект в корреспондирующей базе.
На иллюстрации ниже база БП отправляет договор в базу УТ. При этом в базе УТ нет контрагента. При загрузке база УТ запрашивает, загружает контрагента и подставляет его в договор.

Загружаемый объект сначала ищется по полю Ссылка, затем по полям поиска. Если объект данных не найден, то создаётся новый.

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

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

Примечания к версии 1.4.7, отличия от предыдущих версий.
- В ЛеМурр версии 1.4 изменился формат ответа после загрузки данных. После записи ЛеМурр может возвращать массив структур с полями Источник, Получатель.
В поле Источник указывается полученный идентификатор или ОбъектБД. В поле Получатель внутренний идентификатор созданного объекта базы данных. В предыдущих версиях значение возвращалось в ином формате.
При программной загрузке для добавления значения в таблицы соответствия и в возвращаемый массив необходимо вызвать процедуру ЛемуррСервер.ЗарегистрироватьКоррОбъект. Пример есть в демо базе. Если объект загружается по правилу, описанному в справочнике ЛемуррНастройкиЗагрузки, то объекты данных регистрируются автоматически и формируется возвращаемый массив. - Выборка данных, поиск объектов ИБ выполняется в привилегированном режиме. Этот режим выключается перед исполнением программного кода обработчиков событий.
- Процедура ЛеМурр ОтправитьДанные работает синхронно. Если загрузка будет длиться более минуты, то база-отправитель может не дождаться результата и выдать ошибку по тайм-ауту. Поэтому данные следует отправлять небольшими порциями, которые могут загрузиться за минуту. Переход к асинхронной отправке данных планируется в следующих версиях.
Описание поставки
«Демо база 1.dt» и «Демо база 2.dt» — выгрузка демонстрационных баз. Кроме прочего в этих базах настроена передача данных из одной базы 1С в другую. Обмен настроен без программного кода. В справочнике "Правила синхронизации" в двух базах настраиваем одинаковые правила и поля. В справочнике "Настройки загрузки" в базе-получателе настроена связь с правилами синхронизации и соответствие полей API полям объектов 1С.
Видео с демонстрацией:
ЛеМурр 1.4.7.cfe — расширение для установки в конфигурацию. Минимальная версия платформы для расширения 8.3.16.
Расширение работает на платформе 8.5. Доработок не требуется.
Проверено на следующих конфигурациях и релизах:
- Документооборот КОРП, релизы 2.1.28.14
- 1С:ERP Управление предприятием 2, релизы 2.5.12.167, 2.5.7.336
- Бухгалтерия предприятия КОРП, редакция 3.0, релизы 3.0.206.19, 3.0.190.22
Вступайте в нашу телеграмм-группу Инфостарт