1c/mi
1
0
mirror of https://github.com/rdv-team/mi.git synced 2025-11-23 21:31:02 +02:00
Files
mi/doc/admin/how_to_1c.md

80 lines
7.4 KiB
Markdown
Raw Permalink Normal View History

### Настройка подключений в 1С (Справочник "ВнешниеСистемы")
Для представления механизма транспорта используется объект Справочник.ВнешниеСистемы. Он отвечает за настройку параметров интеграции.
---
## Подключение типа RabbitMQ
### 1. Создание элемента справочника
- **Наименование:** Должно отражать суть подключения (например, `RabbitMQ_основной``Очередь_логов`).
- **Тип:** `RabbitMQ`.
### 2. Вкладка "Подключение"
- **Сервер:** IP-адрес или доменное имя сервера, на котором развернут RabbitMQ (например, `rabbit.example.com` или `192.168.1.50`).
- **Пользователь:** Логин пользователя RabbitMQ. **Рекомендация:** для каждого сервиса или участника обмена создавать отдельного пользователя с минимально необходимыми правами.
- **Пароль:** Пароль указанного пользователя.
- **Порт:** Порт для подключения. По умолчанию для RabbitMQ:
- `5672` — стандартный порт для незащищенного соединения (AMQP).
- `5671` — порт для защищенного соединения (AMQPS).
- **Защищенное соединение:** использование шифрованного соединения по протоколу TLS/SSL. Если трафик между 1С и RabbitMQ проходит по публичным или ненадежным сетям. Для внутренних сетей часто отключают.
### 3. Вкладка "Дополнительные настройки"
- **Таймаут получения:** время (в миллисекундах), в течение которого консьюмер 1С будет ожидать новое сообщение в очереди перед тем, как разорвать соединение (и затем переподключиться).
- **Рекомендация:**`10000-60000` (10-60 секунд). Слишком низкий таймаут (например, 1000 мс) приведет к частым переподключениям и лишней нагрузке, так как сообщение может просто не успеть дойти.
- **Очередь обмена:** имя очереди (Queue), из которой 1С (как консьюмер) будет читать сообщения.
- **Откуда взять:** Это значение из настроек RabbitMQ, созданное на шаге **"Queues and Streams"** (например, `ib1_logs`).
- **Vhost (Виртуальный хост):** имя виртуального хоста, внутри которого созданы обменник и очередь.
- **Откуда взять:** Это значение из настроек RabbitMQ, созданное на шаге **"Virtual Host"**(например, `/1c_integration`). **Важно:** Указать именно имя, например, `1c_integration`, а не полный путь `/1c_integration`.
### 4. Вкладка "Расписание"
- **Задание на отправку:** Имя регламентного задания в 1С, которое отвечает за отправку сообщений в RabbitMQ.
- **Задание на получение:** Имя регламентного задания в 1С, которое отвечает за опрос очереди и получение сообщений.
- **Расписание:** График запуска этих регламентных заданий (например, каждые 10 секунд или постоянно для обработки в реальном времени).
---
## Подключение HTTP сервис
### 1. Создание элемента справочника
- **Наименование:** Должно отражать суть внешнего сервиса (например, `REST_API_Битрикс24``Веб-сервис_Бухгалтерия`).
- **Тип:** `HTTP сервис`.
### 2. Вкладка "Подключение"
- **Сервер:** Базовый URL-адрес сервера или HTTP-сервиса (например, `api.example.com` или `myservice.com/api/v1`).
- **Пользователь:** Логин для базовой HTTP-аутентификации (Basic Auth), если она требуется сервисом. Имя пользователя в 1с с достаточным набором прав для работы сервиса.
- **Пароль:** Пароль для базовой HTTP-аутентификации.
- **Порт:** Порт HTTP-сервиса. **По умолчанию:**
- `80` — для HTTP.
- `443` — для HTTPS.
- **Защищенное соединение:** использование протокола HTTPS вместо HTTP. **Включается, если в адресе сервера указан `https://`.**
### 3. Вкладка "Дополнительные настройки"
- **Таймаут:** общее максимальное время (в миллисекундах) на установку соединения, отправку запроса и получение ответа от внешнего HTTP-сервиса.
- **Рекомендация:** `30000` (30 секунд). Защищает от "зависания" интеграции, если внешний сервис медленно отвечает или недоступен.
- **Писать заголовки:** флаг, при установке которого входящие и исходящие HTTP-заголовки будут записываться в журнал регистрации или контекст выполнения для отладки.
- **HTTP метод:** метод HTTP-запроса, используемый для вызова.
- **Выбор:** `GET` (для получения данных), `POST` (для создания и сложных операций, отправки данных в теле запроса).
- **Адрес сервиса:** конечная точка (endpoint) или URI, который добавляется к базовому адресу Сервера.
- **Пример:** Если **Сервер** = `https://api.company.com`, а **Адрес сервиса** = `/hs/rdv_integration/exchange`, то полный URL запроса будет `https://api.company.com/hs/rdv_integration/rdv_integration`.
- **Токен авторизации:** метод аутентификации вместо логина/пароля (например, JWT, OAuth 2.0 token, API-key).
- **Как использовать:** Обычно этот токен передается в заголовке HTTP-запроса (например, `Authorization: Bearer <токен>`).