Многие обратили внимание на неожиданно большое количество условно-бесплатных приложений в маркетплейсе Б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С будет состоять из четко определенных шагов по передаче данных между системами, обеспечивая гибкость и масштабируемость интеграции.
Весь код представлен на