Интеграция с 1С:Документооборот

Сервер BOOCO Meteor (v 1.x) / Настройка интеграций с календарными системами

Введение

Микросервис doc1c-sync (ранее — booco1c) синхронизирует календари переговорных комнат в 1С:Документооборот с календарями в BOOCO (синхронизация односторонняя). Использует поле sync. Написан на Java.

Требования

Сервер BOOCO Meteor (v 1.x), развернутый в Docker.

VM options

Dspring.profiles.active=localdefault

Ссылки

Swagger

  • Ссылка для локального приложения: http://localhost:8080/api/webjars/swagger-ui/index.html#/
  • или */api/swagger-ui.html, где * — адрес этого сервиса

Документы

REST API

Запуск и установка

Конфигурация 1С

  • Для работы сервиса необходимо указать данные для NTLM-авторизации (см. NTLM). Имя пользователя должно указываться без имени компьютера.
  • При первой установке необходимо настроить расширение 1С:
    1. Загрузить расширение (файл Booco.cfe), убрать безопасный режим.
    2. Опубликовать базу и установить чекбокс Публиковать HTTP сервисы расширений по умолчанию.

Конфигурация Booco

Для работы сервиса синхронизации необходимо указать пользователя (см. BOOCO) и назначить ему права:

  • для ресурса booking:
    • read:any чтение коллекции бронирований BOOCO;
    • create:own или create:any — создание новых бронирований;
    • update:any — обновление существующих бронирований;
  • для ресурса venue:
  • create:own для ресурса log — журналирование сообщений на сервер BOOCO (см. Журналирование).

Режимы работы

  • Автоматический — синхронизация происходит с периодичностью, указанной в переменной среды SYNC_DELAY в формате длительности ISO 8601. Включение/выключение автоматической синхронизации управляется переменной среды SYNC_SCHEDULED.
  • Ручной — синхронизация происходит при каждом обращении к эндпоинту (см. Swagger).

Запуск проекта

Для запуска проекта можно использовать команду:

./gradlew bootRun --args='--spring.profiles.active=local,default'

Или передать аргумент командной строки (см. VM options), например:

java -Dspring.profiles.active=local,default -jar ./build/libs/integration-service-0.0.1.jar

После запуска можно выполнить проверку, используя Swagger.

Установка контейнера Docker

Сборка проекта:

./gradlew bootJar

Создание образа:

docker build --tag integration-service .

Сохранение образа в .tar-файл:

docker save --output app.tar

Выгрузка в локальный кэш Docker:

docker load --input app.tar

Создание контейнера:

docker compose --project-name booco1c up -d

Остановка контейнера:

docker compose -p booco1c stop

Удаление контейнера:

docker compose -p booco1c down

Установка микросервиса doc1c-sync

  1. Войдите на сервер по ssh.
  2. Создайте папку /opt/doc1c-sync:
  3. sudo mkdir /opt/doc1c-sync
    cd /opt/doc1c-sync
  4. Скачайте docker-compose.yml:
  5.  sudo curl https://www.booco.ru/install/doc1c-sync/docker-compose.yml --output docker-compose.yml
  6. Скачайте шаблон файла с переменными окружающей среды .env:
  7. sudo curl https://www.booco.ru/install/doc1c-sync/.env --output .env
  8. Укажите необходимые параметры в файле .env:
  9. sudo nano .env

Переменные среды

1C_NTLM_VERSION
1
Версия совместимости для NTLM-авторизации
Переменная
Обязательная
Значение по умолчанию
Описание
1C_HOST
Адрес REST-клиента 1С (например, */doc/hs/booco, где * — адрес системы с развернутым 1С)
1C_NTLM_USERNAME
Пользователь для NTLM-авторизации. Указывается без имени компьютера
1C_NTLM_PASSWORD
Пароль для NTLM-авторизации
1C_NTLM_SIGNING
false
Запрет/разрешение подписывать ответ для NTLM-авторизации. Если true — разрешено

1C Web-client

Переменная
Обязательная
Значение по умолчанию
Описание
1C_TIMEOUT_READ
20000
Таймаут получения данных от клиента 1С (в мс)
1C_TIMEOUT_WRITE
20000
Таймаут передачи данных клиенту 1С (в мс)
1C_TIMEOUT_CONNECT
20000
Таймаут подключения к клиенту 1С (в мс)
1C_TIMEOUT_RESPONSE
20000
Таймаут ответа от клиента 1С (в мс)
1C_RETRY_COUNT
3
Количество повторных запросов к клиенту 1С в течение 1 мс
1C_RETRY_INTERVAL
3000
Задержка перед повторным запросом к клиенту 1С (в мс)

BOOCO

Переменная
Обязательная
Значение по умолчанию
Описание
BOOCO_HOST
http://localhost:3000/api
Адрес REST-клиента BOOCO
BOOCO_LOGIN
Имя пользователя BOOCO
BOOCO_PASSWORD
Пароль пользователя BOOCO
BOOCO_TOKEN_LOCATION
key/token.json
Расположение и имя файла, где будет сохранен токен авторизации

BOOCO Web-client

Переменная
Значение по умолчанию
Описание
BOOCO_TIMEOUT_READ
5000
Таймаут получения данных от клиента BOOCO (в мс)
BOOCO_TIMEOUT_WRITE
5000
Таймаут передачи данных клиенту BOOCO (в мс)
BOOCO_TIMEOUT_CONNECT
3000
Таймаут подключения к клиенту BOOCO (в мс)
BOOCO_TIMEOUT_RESPONSE
10000
Таймаут ответа от клиента BOOCO (в мс)
BOOCO_RETRY_COUNT
2
Количество повторных запросов к клиенту BOOCO в течение 1 мс
BOOCO_RETRY_INTERVAL
2500
Задержка перед повторным запросом к клиенту BOOCO (в мс)

Синхронизация

Помещения (Venues)

Переменная
Значение по умолчанию
Описание
SYNC_VENUE_ADD_NEW
true
Запрет/разрешение добавлять новые помещения из 1С. Если false — запрещено

Журналирование (Logging)

Переменная
Значение по умолчанию
Описание
SYNC_LOGGING
DEBUG
Уровень журналирования для консоли и отправки на сервер [OFF | ERROR | WARN | INFO | DEBUG]
SYNC_PREFIX
Префикс для записей микросервиса doc1c-sync в Журнал

Режимы работы (Schedule)

SYNC_SCHEDULED
true
Включение/выключение автоматической синхронизации. Если false выключено
Переменная
Значение по умолчанию
Описание
SYNC_DELAY_BETWEEN
PT01M
Период синхронизации (см. формат длительности ISO 8601)
SYNC_DELAY_INITIAL
PT30S
Начальная задержка синхронизации (см. формат длительности ISO 8601)
🚧Описание переменных .env для интеграции с1С:Документооборот