Многие обратили внимание на неожиданно большое количество условно-бесплатных приложений в маркетплейсе Б24 и преогромное количество вакансий с содержанием "интеграция с 1С и внешними системами"
Есть много готовых удобных инструментов для интеграции, требующие дополнительных ресурсов. Удобные, в два-три клика. Сегодня расскажу про "30 строк кода" или новую тему для обучения в "школах программирования за месяц" "Вложи 20тр, получи 420тр" . Спасибо Равшану Намазову и его партнеру Юлию Кирюше , а то бы мне и в голову не пришла идея опубликовать статью и писать код (
Обмен данными через Web Сервисы ? Теперь это сделать можно легко и быстро. (1С web-service, которую может настроить выпускник ВУЗа) Со стороны Bitrix24 - не надо писать апплеты с валидацией, не надо заморачиваться с токенизацией и форматом данных и подробной документацией, тестированием. Есть FastAPI и fastBitrix24. Весь код представлен на
Для организации обмена данными между 1С и Bitrix24 с использованием PHP, FastAPI и 1С, можно следовать следующей схеме:
Схема обмена данными
- PHP код в Bitrix24: Отправляет запрос с помощью curl к FastAPI приложению.
- FastAPI приложение: Обрабатывает запрос от Bitrix24, формирует данные в формате XDTO и отправляет запрос к 1С с использованием requests.post.
- 1С: Получает и обрабатывает данные, отправленные с FastAPI приложения.
Шаги реализации
- PHP код в Bitrix24
В вашем бизнес-процессе Bitrix24, используйте curl для отправки данных на FastAPI приложение. Пример кода на PHP:
<?php $data = array( "name" => "Example Name", "email" => "example@example.com" ); $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, "http://your-fastapi-server/api/endpoint"); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($data)); curl_setopt($ch, CURLOPT_RETURNTRANSFER, true); curl_setopt($ch, CURLOPT_HTTPHEADER, array( 'Content-Type: application/json' )); $response = curl_exec($ch); curl_close($ch); echo $response; ?> |
2. FastAPI приложение
Создайте приложение на FastAPI, которое будет принимать запросы от Bitrix24 и отправлять их в 1С. Пример кода на Python с использованием FastAPI и requests:
from fastapi import FastAPI, Request import requests import json app = FastAPI() @app.post("/api/endpoint") async def handle_request(request: Request): data = await request.json() xdto_data = { "name": data["name"], "email": data["email"] } response = requests.post( "http://your-1c-server/api/endpoint", json=xdto_data, headers={"Content-Type": "application/json"} ) return {"status": "success", "1c_response": response.json()} |
3. Обработка запроса в 1С
Создайте обработчик в 1С, который будет принимать запросы и обрабатывать данные в формате XDTO. Пример кода на 1С
Процедура ОбработатьЗапрос(Запрос) HTTPЗапрос = Новый HTTPЗапрос(Запрос); ТелоЗапроса = HTTPЗапрос.ПолучитьТелоКакСтроку(); Данные = СтрНайти(ТелоЗапроса); // Пример обработки данных Имя = Данные["name"]; ЭлектроннаяПочта = Данные["email"]; // Обработка данных (сохранение в базе и т.д.) HTTPОтвет = Новый HTTPОтвет(200); HTTPОтвет.УстановитьТело(Новый HTTPСообщение(Новый Строка(Формат("Данные успешно получены: %1", Имя)))); Запрос.ОтправитьОтвет(HTTPОтвет); КонецПроцедуры |
Пример схемы взаимодействия
- Bitrix24 (PHP):
- Отправка данных на FastAPI приложение.
- curl запрос с данными в формате JSON.
- Отправка данных на FastAPI приложение.
- FastAPI (Python):
- Прием данных от Bitrix24.
- Формирование данных в формате XDTO.
- Отправка данных в 1С с использованием requests.post.
- Прием данных от Bitrix24.
- 1С (1C):
- Прием данных от FastAPI.
- Обработка и сохранение данных.
- Прием данных от FastAPI.
Пример XDTO данных
Формат XDTO данных может быть любым, но для примера это может быть JSON:
{ "name": "Example Name", "email": "example@example.com" } |
Таким образом, схема обмена данными между 1С и Bitrix24 с использованием PHP, FastAPI и 1С будет состоять из четко определенных шагов по передаче данных между системами, обеспечивая гибкость и масштабируемость интеграции.
Весь код представлен на