Інтеграція 1С-Бітрікс з ЕДО СБІС: автоматизація документообігу

Інтеграція 1С-Бітрікс з системою ЕДО СБІС Компанія втрачає до 80% часу співробітників на ручне введення документів у веб-кабінет СБІС. Один наш клієнт — оптовий постачальник продуктів — витрачав 15 хвилин на створення кожного документа. При 500 замовленнях на місяць це 125 годин роботи одного мен
Послуги, які ми пропонуємо
Показано 1 з 1Усі 1626 послуг
Інтеграція 1С-Бітрікс з ЕДО СБІС: автоматизація документообігу
Середній
~1-2 тижні

Наші компетенції:

Часті запитання

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1442
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    1013
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    752
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    873
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    794
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    1154

Інтеграція 1С-Бітрікс з системою ЕДО СБІС

Компанія втрачає до 80% часу співробітників на ручне введення документів у веб-кабінет СБІС. Один наш клієнт — оптовий постачальник продуктів — витрачав 15 хвилин на створення кожного документа. При 500 замовленнях на місяць це 125 годин роботи одного менеджера. Після інтеграції з Бітрікс документи йдуть автоматично при зміні статусу замовлення. Технічно СБІС (Тензор) надає власний JSONRPC-протокол, відмінний від REST-концепції Діадока. Для інтеграції знадобиться PHP-клієнт з сесійною авторизацією, підтримкою хмарного підпису та обробкою роумінгу. Нижче — як це реалізувати та уникнути типових помилок.

Вибір СБІС часто вимушений — якщо контрагент використовує лише цього оператора. Але інтеграція окупається: знижується час обробки замовлень, зникають помилки ручного введення. Ми провели понад 50 інтеграцій з ЕДО та накопичили типові рішення. Середня економія за рік становить 1,8 млн грн, а при обсязі від 1000 документів на місяць — до 3 млн грн на операційних витратах.

Як працює API СБІС?

СБІС використовує JSONRPC-подібний протокол. Всі виклики йдуть на єдиний endpoint POST https://online.sbis.ru/service/ з тілом у форматі:

{ "jsonrpc": "2.0", "method": "СБИС.АутентифицироватьПоПаролю", "params": { "Логин": "[email protected]", "Пароль": "***" }, "id": 1 } 

Методи називаються російською. Це нетипово, але стабільно працює — Тензор підтримує цю нотацію багато років.

Робота з API: авторизація, відправка та статуси

Авторизація та сесія

class SbisClient { private string $baseUrl = 'https://online.sbis.ru/service/'; private ?string $sid = null; public function __construct( private string $login, private string $password, private string $inn ) {} public function authenticate(): void { $response = $this->call('СБИС.АутентифицироватьПоПаролю', [ 'Логин' => $this->login, 'Пароль' => $this->password, ]); $this->sid = $response['result']; } public function call(string $method, array $params): array { $payload = [ 'jsonrpc' => '2.0', 'method' => $method, 'params' => $params, 'id' => uniqid(), ]; $headers = ['Content-Type: application/json; charset=utf-8']; if ($this->sid) { $headers[] = 'X-SBISSessionID: ' . $this->sid; } $ch = curl_init($this->baseUrl); curl_setopt_array($ch, [ CURLOPT_POST => true, CURLOPT_POSTFIELDS => json_encode($payload), CURLOPT_HTTPHEADER => $headers, CURLOPT_RETURNTRANSFER => true, ]); $body = curl_exec($ch); return json_decode($body, true); } } 

Сесія зберігається в Redis/APC і перевикористовується. При вичерпанні (зазвичай 24 години) — автоматична реавторизація.

Відправка документа

public function sendDocument(\Bitrix\Sale\Order $order): string { $document = [ 'Документ' => [ 'Тип' => 'ДокОтгрВх', 'Дата' => date('d.m.Y'), 'Номер' => (string)$order->getId(), 'Сумма' => $order->getPrice(), 'НДС' => $this->calculateVat($order), 'Контрагент' => [ 'ИНН' => $this->getOrderInn($order), 'КПП' => $this->getOrderKpp($order), ], 'Вложение' => [[ 'Имя' => "UPD_{$order->getId()}.xml", 'ДвоичныеДанные' => base64_encode($this->generateXml($order)), ]], ], ]; $result = $this->call('СБИС.ОтправитьДокумент', ['Документ' => $document]); return $result['result']['Идентификатор'] ?? ''; } 

Структура документа в СБІС відрізняється від Діадока — назви полів російською, але логіка та ж: XML з підписом КЕП + метадані.

Отримання статусів

public function getDocumentStatus(string $documentId): string { $result = $this->call('СБИС.ПолучитьДокумент', [ 'Идентификатор' => $documentId, ]); return $result['result']['Документ']['Состояние'] ?? 'Неизвестно'; } 

Можливі статуси: 'Отправлен', 'Доставлен', 'Подписан', 'Отказано', 'Аннулирован'. Для наочності зведемо їх у таблицю.

Статус Опис
Отправлен Документ передано в СБІС, очікує обробки
Доставлен Документ отримано контрагентом
Подписан Контрагент підписав документ (ЕДО завершено)
Отказано Контрагент відмовився від підписання
Аннулирован Відправку скасовано (до підписання)

Хмарний підпис та роумінг

СБІС підтримує хмарний підпис через сервіс «СБІС Облачная подпись» — сертифікат зберігається на серверах Тензора, підпис відбувається через API без необхідності встановлювати КриптоПро на продакшн-сервері. Це суттєво спрощує деплой. Хмарний підпис виконується викликом методу СБИС.ПодписатьОблачнойПодписью, куди передаються ідентифікатор сертифіката та xml-вміст. Хмарний підпис скорочує час розгортання інтеграції в 2 рази порівняно з налаштуванням КриптоПро CSP.

СБІС підтримує роумінг з Діадоком та іншими операторами. Документ, відправлений через СБІС, доставляється контрагенту в Діадоку автоматично. Це знімає проблему «у нас СБІС, у них Діадок» у більшості випадків. У коді це означає: один API-виклик до СБІС, доставка прозора для відправника.

Як налаштувати інтеграцію за 3 кроки?

  1. Отримати доступ до API СБІС. Переконайтеся, що тариф включає ЕДО, і отримайте логін/пароль від акаунту.
  2. Реалізувати PHP-клієнт. Використовуйте наведений вище клас SbisClient — він покриває аутентифікацію, відправку та статуси.
  3. Прив'язати до подій Бітрікс. Навісьте обробник на зміну статусу замовлення (наприклад, OnSaleOrderSaved) для автоматичної відправки.

Цей базовий сценарій займає 3–4 тижні з урахуванням налагодження. При необхідності додайте обробку хмарного підпису та роумінгу.

Кейс з практики: інтеграція для постачальника продуктів харчування

Наш клієнт — оптовий постачальник продуктів — працював через кілька ЕДО-операторів одночасно (частина контрагентів — через Діадок, частина — через СБІС, частина — через ЕДО Лайт ФНС). Завдання: єдиний інтерфейс в Бітрікс для роботи з усіма ЕДО без перемикання між веб-кабінетами.

Архітектура:

Створено абстрактний клас EdoProvider з методами send(), getStatus(), getList(). Реалізації: DiadokProvider, SbisProvider, FnsEdoProvider. Вибір провайдера — через реєстр, ключ — BoxId контрагента.

interface EdoProviderInterface { public function send(\Bitrix\Sale\Order $order, string $recipientId): string; public function getStatus(string $documentId): EdoStatus; public function cancel(string $documentId, string $reason): bool; } 

При створенні замовлення система автоматично визначає ЕДО-оператора контрагента через загальний довідник. Менеджер бачить у картці замовлення Бітрікс єдиний блок «Документи ЕДО» незалежно від того, через якого оператора працює контрагент.

Результати:

Показник До Після
Операторів ЕДО в роботі 3 (перемикання вручну) 3 (єдиний інтерфейс)
Час створення документа 15 хв/замовлення Автоматично при зміні статусу
Помилки маршрутизації ~8%/міс 0%
Витрати на документообіг 120 000 грн/міс 30 000 грн/міс

Для кожного провайдера реалізовано власний формат XML-документа. СБІС вимагає російськомовні назви тегів, Діадок — англійські. Перетворення виконується в адаптері. Статуси синхронізуються за розкладом cron кожні 10 хвилин.

Що входить в роботу?

  • Реєстрація в СБІС, отримання API-доступу
  • Налаштування хмарного підпису або КриптоПро CSP
  • Розробка PHP-клієнта СБІС API
  • Генерація XML-документів у форматі ФНС
  • Обробники подій Бітрікс: відправка при зміні статусу замовлення
  • Синхронізація статусів через polling (cron)
  • Відображення статусу в картці замовлення
  • Документація та навчання менеджерів
  • Підтримка після запуску (2 тижні)

Терміни орієнтовно

Базова інтеграція з одним оператором — 3–4 тижні. При роботі з кількома ЕДО-операторами через єдиний інтерфейс — 8–12 тижнів. Вартість розраховується індивідуально після аналізу ваших процесів.

Які помилки виникають при інтеграції?

  • Неправильний вибір оператора. Якщо контрагент використовує інший ЕДО, необхідно налаштувати роумінг. СБІС підтримує його з більшістю операторів, але список потрібно перевіряти.
  • Відсутність повторних спроб. API може тимчасово не відповідати — додавайте retry з експоненційною затримкою.
  • Витікання сесії. Сесія СБІС живе 24 години — реалізуйте автоматичну реавторизацію.

Переваги інтеграції під ключ

Ми виконали понад 50 інтеграцій з різними ЕДО, працюємо з Бітрікс понад 10 років. Ваш проект отримає готове рішення з гарантією стабільності та підтримкою. Зв'яжіться з нами для оцінки вашого проекту. Замовте інтеграцію під ключ — отримайте єдиний інтерфейс для всіх ЕДО без головного болю.