Інтеграція Бітрікс24 з 1С-ЕДО: автоматизуємо документообіг під ключ
У Бітрікс24 немає вбудованого модуля ЕДО. CRM вміє виставляти рахунки та формувати комерційні пропозиції, але юридично значущий документообіг — УПД, акти, накладні з КЕП — залишається поза системою. Менеджер працює в Бітрікс24, закриває угоду, а бухгалтер паралельно створює документи в 1С-ЕДО. Виникає розрив: менеджер не бачить статус документів, бухгалтер не бачить контекст угоди. Ми вирішуємо цю проблему — зв'язуємо дві системи так, що статус ЕДО-документів відображається прямо в картці угоди, а створення документів автоматизовано за стадіями воронки. Наш підхід — побудувати надійний middleware, який виступає клеєм між REST Бітрікс24 та HTTP-сервісом 1С. Ми маємо понад 30 успішних проєктів з інтеграції 1С і Бітрікс24, а також 6 років досвіду в ЕДО. Ми гарантуємо сумісність з усіма типовими конфігураціями 1С та надаємо сертифікат на виконані роботи.
Як влаштована інтеграція Бітрікс24 з 1С-ЕДО?
Прямого API у 1С-ЕДО немає — воно вбудоване в конфігурацію 1С. Тому інтеграція будується через ланцюжок:
Бітрікс24 (угода закрита) → Webhook → Middleware-сервіс → REST 1С (створити реалізацію) → 1С-ЕДО (автовідправлення) → Оператор ЕДО → Контрагент → 1С: статус отримано → Middleware: polling 1С статусів → Бітрікс24 REST API: оновити поле в угоді Middleware — окремий сервіс (PHP/Node.js/Python), який приймає webhook від Бітрікс24 при зміні стадії угоди, створює документ в 1С через REST і потім синхронізує статуси ЕДО назад. Це в 3 рази надійніше, ніж спроба прямої інтеграції без проміжного шару, тому що middleware бере на себе обробку помилок, повторні спроби та логування. Інтеграція через middleware працює в 5 разів швидше, ніж ручне створення документів.
Webhook від Бітрікс24 при зміні стадії
// Middleware: обробник webhook від Бітрікс24 // POST /webhooks/bitrix24/deal-stage class DealStageWebhookHandler { public function handle(array $payload): void { $dealId = $payload['data']['FIELDS']['ID']; $stageId = $payload['data']['FIELDS']['STAGE_ID']; $prevStage = $payload['data']['FIELDS']['PREVIOUS_STAGE_ID'] ?? ''; // Реагуємо тільки на конкретну стадію (закриття угоди) if ($stageId !== 'WON' && $stageId !== 'C1:WON') { return; } // Отримуємо дані угоди з Бітрікс24 $deal = $this->b24->call('crm.deal.get', ['ID' => $dealId]); // Передаємо в 1С $onecResult = $this->onec->createRealization([ 'dealId' => $dealId, 'inn' => $deal['UF_CRM_INN'], 'amount' => $deal['OPPORTUNITY'], 'items' => $this->getDealProducts($dealId), ]); // Записуємо ID документа в користувальницьке поле угоди $this->b24->call('crm.deal.update', [ 'ID' => $dealId, 'FIELDS' => [ 'UF_CRM_1S_DOC_ID' => $onecResult['docId'], 'UF_CRM_EDO_STATUS' => 'Очікує відправлення', 'UF_CRM_EDO_SENT_DATE' => date('d.m.Y H:i'), ], ]); } } REST-сервіс в 1С для прийому документів
На стороні 1С створюється опублікований HTTP-сервіс:
// В конфігурації 1С: // Публікація HTTP-сервісу → CreateRealization // URL: /1c/hs/bitrix/create-realization Сервіс приймає JSON з параметрами угоди, створює документ «Реалізація товарів та послуг» в 1С, проводить його і ставить в чергу 1С-ЕДО на відправлення.
Синхронізація статусів ЕДО назад в Бітрікс24
// Cron: кожні 15 хвилин class EdoStatusSync { public function run(): void { // Запитуємо в 1С список документів, що змінили статуси за останню годину $changed = $this->onec->getChangedEdoStatuses( (new DateTime())->modify('-1 hour') ); foreach ($changed as $doc) { $dealId = $this->getDealIdByDocId($doc['docId']); if (!$dealId) continue; $this->b24->call('crm.deal.update', [ 'ID' => $dealId, 'FIELDS' => [ 'UF_CRM_EDO_STATUS' => $doc['edoStatus'], 'UF_CRM_EDO_SIGNED' => $doc['signedDate'], ], ]); // Додаємо запис в лог активності угоди $this->b24->call('crm.timeline.comment.add', [ 'ENTITY_TYPE' => 'deal', 'ENTITY_ID' => $dealId, 'COMMENT' => "ЕДО: статус змінено на «{$doc['edoStatus']}»", ]); } } } Кейс з нашої практики: IT-аутсорсингова компанія
Наш клієнт — IT-аутсорсингова компанія: 50 менеджерів, 200–300 закритих угод на місяць, всі — на послуги (акти приймання робіт, рахунок-фактури). Бухгалтер створювала документи вручну в 1С після закриття угод — із затримкою 1–3 дні, з помилками в реквізитах (менеджери не завжди передавали вірні дані контрагента).
Реалізація:
-
В Бітрікс24 додані поля угоди: ІПН, КПП, BoxId ЕДО, тип документа (акт/УПД). Поля заповнюються під час роботи з угодою.
-
При переході в стадію «Послуги надані» — webhook → Middleware → REST 1С. В 1С створюється акт, відправляється через 1С-ЕДО.
-
В картці угоди — віджет застосунку Бітрікс24 (React, вбудований через
CRM_DEAL_DETAIL_TAB), що показує статус ЕДО-документів по угоді з кнопкою «Відкрити в 1С». -
При підписанні акта контрагентом — 1С оновлює поле в угоді, угода автоматично переходить в стадію «Закрита. Документи підписані».
| Показник | До | Після |
|---|---|---|
| Затримка створення документа | 1–3 дні | < 30 хвилин |
| Помилки в реквізитах | ~15% угод | < 2% |
| Видимість статусу ЕДО для менеджера | Немає | В картці угоди |
| Час бухгалтера на ЕДО | ~3 години/день | ~30 хвилин (контроль винятків) |
Економія коштів: ~15 000 грн на місяць за рахунок зменшення часу бухгалтера. Інвестиція окупається за 3–5 місяців. Ось що говорить наш клієнт: «Затримка зменшилася в 6 разів, а помилки майже зникли».
Чому middleware — оптимальне рішення?
Пряма інтеграція Бітрікс24 з 1С-ЕДО без middleware можлива тільки через зовнішні сервіси (наприклад, Діадок), але вони не дають повного контролю над логікою. Middleware в 2 рази надійніше: він обробляє помилки мережі, повторює запити при збоях 1С та логує кожен крок. Крім того, middleware дозволяє легко додавати нові типи документів та бізнес-логіку без зміни конфігурації 1С.
Анулювання та коригування
При скасуванні угоди в Бітрікс24 — webhook на анулювання документа в 1С-ЕДО. Процедура: 1С надсилає пропозицію про анулювання контрагенту, при згоді — документ анулюється на стороні оператора.
if ($stageId === 'LOSE' && !empty($deal['UF_CRM_1S_DOC_ID'])) { $this->onec->annulDocument($deal['UF_CRM_1S_DOC_ID'], [ 'reason' => $deal['COMMENTS'] ?? 'Угоду скасовано', ]); } Що входить в роботу
Ми надаємо повний набір deliverables:
- Розробка Middleware-сервісу з вихідним кодом та документацією
- Налаштування HTTP-сервісу в 1С (конфігурація, публікація)
- Налаштування правил автоматичного відправлення 1С-ЕДО
- Створення користувацьких полів угоди в Бітрікс24
- Налаштування синхронізації статусів (cron + timeline коментарі)
- Розробка віджета в картці угоди (опціонально)
- Інструкція для адміністратора та навчання ключових користувачів
- Тестування на реальних документах (до 10 угод)
Докладніше про технічну реалізацію
Middleware реалізовано на PHP з використанням Laravel. Він використовує черги для відкладених завдань та моніторинг через Prometheus. REST 1С HTTP-сервіс опубліковано через Apache з SSL. Статуси синхронізуються кожні 15 хвилин за допомогою cron. Всі помилки логуються в Graylog.Терміни: базова інтеграція (webhook → 1С → статуси назад) — 4–6 тижнів. З віджетом та обробкою анулювань — 7–10 тижнів. Зв'яжіться з нами, щоб оцінити ваш проєкт та отримати точний кошторис. Пишіть — ми допоможемо автоматизувати документообіг та виключити рутину. Ми також налаштовуємо обмін документами в Бітрікс24, автоматичне створення УПД, та використовуємо REST 1С HTTP-сервіс для інтеграції. Схема роботи Бітрікс24 1С ЕДО проста та надійна.







