Интеграционная прослойка(middleware) на Golang. Часть 5 - Обмен с 1С через HTTP-сервисы платформы

18.06.21

Интеграция - WEB-интеграция

В этой статье научим прослойку отправлять данные в 1С, для этого используем HTTP-сервисы платформы. Обменяемся данными с новым справочником Клиенты. Но главное создадим HTTP-сервис для получения сообщений из очереди RabbitMQ.

Предыдущие и будущие статьи:

Итак имеем Платформу 8.3.17.1549, Веб-сервер IIS. Как и раньше используем шаблонный справочник(логический) Клиенты с полями (Идентификатор, Имя, Тип, Майл).

Создаем HTTP-сервис для обмена.

Создаем простенький справочник для хранения клиентов

Публикуем HTTP-сервис (не буду расписывать как это все поставить, тут очень много хороший статей описывающий этот процесс)

Данный HTTP-сервис позволяет удалять\добавлять\изменять данные из прослойки, код тоже стандартный JSON и методы GET, POST, DELETE

В прослойке добавил режим для 1С, а также адрес HTTP-сервиса

Получаем список из 1С

Помеченные не берем, можно записи удалить, изменить, добавить

Все изменения отражаются в 1С.

Теперь сделаем интеграцию с очередью RabbitMQ более правильной (Это статья №1 этого цикла)  теперь RabbitMQ будет сама отправлять входящие сообщения направляя их в HTTP-сервис платформы.

Создаем для этого отдельный HTTP-сервис

Основную роль играет метод POST, метод GET просто для проверки, что сервис корректно создан.

Суть реализации аналогичная, получаем сообщение из RabbitMQ с JSON записью Клиента, дальше его записываем в справочник Клиенты.

Можем из любой конфигурации отправить данные в RabbitMQ и получить в тестовой базе

Получаем это в тестовой базе, это отладка внутри HTTP-сервиса.

Записали в 1С

В прослойке тоже можем видеть эту запись, благодаря первому HTTP-сервису.

Я не стал заостряться на коде 1С он достаточно тривиальный, конфигурацию выложим на GitHub.

Относительно прослойки на Golang тоже ничего сверхзаумного, использовал стандартный пакет "net/http", функции http.Post() и http.Get() для метода DELETE и POST использовал функции http.NewRequest() т.к нужно было передавать параметры (Идентификатор клиента)

Например, кстати вижу тут очень неоптимальный код, кто заметит молодец! 

Адрес исходников GitHub https://github.com/dmitry-msk777/Connector_1C_Enterprise

ОБНОВЛЕНИЕ 06.10.2020

Добавлен шаблон получения данных справочника клиента по oData в слайз структур.

 

Вступайте в нашу телеграмм-группу Инфостарт

RabbitMQ Golang REST RESTful HTTP-сервисы oData

См. также

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    21731    30    24    

24

SALE! 15%

WEB-интеграция Программист Бизнес-аналитик 1С v8.3 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)

Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.

17280 14688 руб.

20.12.2024    3944    18    2    

20

WEB-интеграция Программист Руководитель проекта 1С v8.3 1C:Бухгалтерия 1С:Франчайзи, автоматизация бизнеса Платные (руб)

Расширение значительно упрощает написание API на 1С. Веб программисты получают простой и понятный доступ к 1С. Описание API создаётся автоматически и представляется в виде удобном как для человека, так и для программной обработки. Основные преимущества: 1. Документация API создаётся автоматически. Удобна для программной обработки. 2. Изменить API столь же просто как настроить отчёт. Можно опубликовать существующий вариант отчёта. 3. Отчёты в API поддерживают параметры (Период, ДатаНачала и др.) 4. При создании простых методов не требуется изменять конфигурацию. 5. Поддерживается работа с планами обмена.<br/> 6. Возможно настроить отправку из 1С данных корреспондирующей системе, для случаев когда 1С сама "знает" какие данные нужно отправить. 7. После записи в 1С Ле Мурр может возвращать соответствие полученных идентификаторов созданным в 1С объектам данных.

36000 руб.

27.09.2024    8576    7    5    

9

WEB-интеграция 1С v8.3 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Платные (руб)

В расширении реализован механизм интеграции между системой поставщика и Личным кабинетом СДТ. Реализован обмен заказами и реализациями (накладными), предусмотрено отслеживание статусов документов. Расширение предназначено для 1С:УТ 11.4.

35856 руб.

27.11.2024    2140    1    0    

1

Оптовая торговля WEB-интеграция Бюджетный учет Обмен с ГосИС Бухгалтер Пользователь 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Государственные, бюджетные структуры Россия Бухгалтерский учет Управленческий учет Платные (руб)

Обмен данными с "Порталом поставщиков" zakupki.mos.ru Москвы и Московской области с целью создания оферт для закупок государственными учреждениями. Модуль устраняет рутину, минимизирует ошибки и помогает выигрывать больше закупок. Работает строго по требованиям 44-ФЗ.

14400 руб.

13.12.2016    41254    54    39    

37
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. SizovE 288 05.10.20 10:03 Сейчас в теме
Наверное не очень хорошо через файл JSON читать, думаю так удобнее
ЧтениеJSON = Новый ЧтениеJSON;
	ЧтениеJSON.УстановитьСтроку(Строка);
	
	Попытка
		Данные = ПрочитатьJSON(ЧтениеJSON);
	Исключение
		Возврат ОписаниеОшибки();
	КонецПопытки;	

Показать
2. dmitry-irk38 137 05.10.20 11:05 Сейчас в теме
(1) Когда-то на платформе было ограничение в 65000 символов(или строк) на УстановитьТелоКакСтроку в свое время на этом собаку съел, можно протестировать кончено, что сейчас со строками. Причем просто режет в наглую и ничего не говорит платформа.
Сейчас появилось ПолучитьТелоКакПоток, что я иногда использую, но УстановитьТелоКакПоток пока не реализовали видимо, это позволяет без создания файла через оперативку выполнять операции и вероятно избежать ограничения строка на 65000 символов.
3. SizovE 288 06.10.20 09:06 Сейчас в теме
(2) 1С как всегда забавна, в документации ни слова нет.
4. dmitry-irk38 137 06.10.20 11:09 Сейчас в теме
(3) Вот далеко ходить не нужно на днях у функции глобального контекста ВыгрузитьЖурналРегистрации() обнаружил, что если в параметр МаксимальноеКоличество задавать число меньшее 10 000, то он все равно будет всегда грузить 10 000. Узнал я это когда начал парсить выгружаемые файлы. В СП информации этой нет, в методической информации тоже нет. Я в начале вообще решил, что этот параметр не работает, когда вместо 50 записей, которые я выставил выгрузилась очень много, как оказалось 10 000
user1464234; +1 Ответить
Для отправки сообщения требуется регистрация/авторизация