Інтеграція 1С-Бітрікс з системою ЕДО Такском
Уявіть: 150 замовлень на добу, кожному — свій УПД. Менеджер формує документ в 1С, потім вручну завантажує в особистий кабінет Такском — витрачає 15–20 хвилин. Підсумок: 40 годин на тиждень ідуть на рутину. Помилки в реквізитах призводять до відмов у 12% випадків, а контрагенти затримують підписання в середньому на 4 дні. Ситуація ускладнюється, якщо у клієнта специфічний документообіг (медичні товари з серіями та термінами придатності).
Ми спеціалізуємося на Бітрікс понад 10 років, провели 30+ проєктів з інтеграції ЕДО. Наша типова реалізація — автоматичне відправлення УПД з Бітрікс через оператора Такском без участі менеджера: статус підписання відстежується в адміністративній панелі. Такий підхід скорочує час обробки замовлень на 80% та виключає помилки ручного введення. При 100 замовленнях на місяць економія сягає 350 000 гривень на рік. Для клієнта зі сфери B2B-поставок будматеріалів впровадження дозволило знизити витрати на документообіг на 1,2 млн гривень на рік.
Детальніше про налаштування акаунта
Для підключення хмарного підпису достатньо зареєструватися в особистому кабінеті Такском, отримати Client ID та Secret. Далі наш PHP-клієнт автоматично отримує токен.З якими проблемами стикаються компанії
- Ручне вивантаження документів. Менеджер формує УПД в 1С, потім завантажує в особистий кабінет Такском — 15–20 хвилин на одне замовлення. При 50 замовленнях на день це 12–17 годин чистої рутини.
- Відсутність прив'язки до статусів замовлення. Документ не надсилається автоматично при відвантаженні — його можуть забути або відправити із запізненням.
- Складності з контрагентами. Пошук BoxId нового контрагента займає час, а помилки в реквізитах призводять до відхилення документів.
- Неповний пакет документів. Для медичних товарів потрібні акти з серіями та термінами придатності — стандартний УПД їх не містить.
Наш досвід показує, що 90% цих проблем вирішуються грамотною інтеграцією Бітрікс з Такском через REST API. Отримайте консультацію по вашому проєкту.
Як працює інтеграція Такском з Бітрікс?
Авторизація відбувається за протоколом OAuth 2.0 Client Credentials. Ми кешуємо токен на 3500 секунд (трохи менше часу життя), щоб не смикати API при кожному запиті:
class TaxcomClient
{
private string $baseUrl = 'https://edo.taxcom.ru/api/v1';
private string $accessToken;
public function __construct(
private string $clientId,
private string $clientSecret
) {
$this->accessToken = $this->getAccessToken();
}
private function getAccessToken(): string
{
$cached = \Bitrix\Main\Data\Cache::createInstance();
if ($cached->startDataCache(3500, 'taxcom_token', '/taxcom/')) {
$response = $this->httpPost('https://auth.taxcom.ru/oauth/token', [
'grant_type' => 'client_credentials',
'client_id' => $this->clientId,
'client_secret' => $this->clientSecret,
'scope' => 'edo',
]);
$cached->endDataCache(['token' => $response['access_token']]);
return $response['access_token'];
}
$data = $cached->getVars();
return $data['token'];
}
}
Створення та відправлення документа
Після отримання токена формуємо XML документа і відправляємо його в три кроки: завантаження файлу, підписання, відправлення повідомлення:
public function sendDocument(\Bitrix\Sale\Order $order): array
{
$xmlContent = $this->generateUPDXml($order);
// Крок 1: завантаження файлу
$uploadResponse = $this->apiPost('/documents/upload', [
'FileName' => "UPD_{$order->getId()}.xml",
'Content' => base64_encode($xmlContent),
'ContentType' => 'application/xml',
]);
$fileId = $uploadResponse['FileId'];
// Крок 2: підписання (КриптоПро або хмарний підпис Такском)
$signature = $this->signFile($xmlContent);
// Крок 3: відправлення документа
return $this->apiPost('/messages/send', [
'RecipientBoxId' => $this->getRecipientBoxId($order),
'Documents' => [[
'FileId' => $fileId,
'Signature' => base64_encode($signature),
'DocType' => 'UniversalTransferDocument',
'Function' => 'ДОП',
]],
]);
}
Такском підтримує хмарний підпис через сервіс «Такском-Крипто» — сертифікат зберігається на стороні Такском, підписання відбувається через API без КриптоПро на сервері. Це спрощує інфраструктуру та знижує витрати порівняно з купівлею окремого ліцензійного ключа.
Пошук BoxId контрагента
При першому контакті з новим контрагентом система шукає його BoxId за ІПН/КПП:
public function findRecipientBoxId(string $inn, string $kpp = ''): ?string
{
$response = $this->apiGet('/organizations/search', [
'inn' => $inn,
'kpp' => $kpp,
]);
foreach ($response['Organizations'] as $org) {
if ($org['Inn'] === $inn && ($kpp === '' || $org['Kpp'] === $kpp)) {
return $org['BoxId'];
}
}
return null;
}
Знайдений ідентифікатор зберігається в користувацькому полі покупця (UF_TAXCOM_BOX_ID) — наступного разу відправлення відбувається без запитів.
Чому варто обрати хмарний підпис?
Хмарний підпис Такском — це альтернатива купівлі та налаштуванню КриптоПро. Основні відмінності:
| Критерій | КриптоПро на сервері | Хмарний підпис Такском |
|---|---|---|
| Витрати на ліцензію | + ліцензія на кожен сервер | 0, входить у тариф ЕДО |
| Необхідність встановлення | + встановлення, налаштування | не потрібно |
| Зберігання ключа | на сервері клієнта | у оператора (сертифіковано ФСБ) |
| Робота через API | + необхідно писати обгортку | готова функція в API |
Хмарний підпис дешевший за класичний на 40–60% за рахунок відсутності ліцензій та обслуговування.
Кейс: ЕДО для медичного дистриб'ютора (з нашої практики)
Дистриб'ютор медичних витратних матеріалів, ~400 B2B-клієнтів, працює з державними лікарнями та приватними клініками. Державні установи часто мають власних ЕДО-операторів з роумінгом, частина працює через Такском напряму.
Особливість: окрім УПД, для медичних товарів потрібні акти приймання-передачі з розширеними реквізитами (серія, термін придатності, реєстраційне посвідчення). Стандартний формат УПД не покриває всі поля.
Рішення:
Розроблено складовий документ: УПД + анотація з розширеними медичними реквізитами як додатковий XML-файл у тому ж повідомленні Такском. Обидва файли підписуються одним підписом.
$documents = [
[
'FileId' => $updFileId,
'Signature' => base64_encode($updSignature),
'DocType' => 'UniversalTransferDocument',
],
[
'FileId' => $annexFileId,
'Signature' => base64_encode($annexSignature),
'DocType' => 'Attachment', // доповнення до основного документа
'Comment' => 'Медичні реквізити товарів',
],
];
У Бітрікс реквізити товарів (серія, термін придатності) зберігаються як властивості позицій замовлення. При генерації XML витягуються з \Bitrix\Sale\BasketItem::getPropertyCollection().
| Показник | До | Після |
|---|---|---|
| Середній час відправлення комплекту документів | 45 хв/замовлення | Автоматично при відвантаженні |
| Повнота пакета документів | Регулярні нарікання від аптек | 100% за чек-листом |
| Статус підписання | Відстежувався за дзвінками | Автомоніторинг, сповіщення |
Економія для клієнта склала 1,2 млн гривень на рік за рахунок скорочення ручної праці та штрафів за прострочені документи.
Моніторинг черги документів
Для контролю документообігу — адміністративний розділ у Бітрікс з таблицею відправлених документів:
- Замовлення → Документ Такском → Статус → Дата підписання
Дані беруться з таблиці local_taxcom_documents + періодичний polling API Такском для оновлення статусів (cron кожні 10 хвилин).
Що входить у роботу
- Налаштування акаунта Такском — отримання Client ID/Secret, хмарного підпису (якщо потрібно).
- Розробка PHP-клієнта — клас для роботи з REST API, кешування токена, обробка помилок.
- Генерація XML — формування УПД, актів, складових документів на основі даних замовлення.
- Довідник контрагентів — завантаження BoxId, збереження в користувацькому полі Бітрікс.
- Подійне відправлення — прив'язка до статусів замовлення: відвантаження → автоматичне відправлення.
- Моніторинг статусів — адміністративний розділ з таблицею, сповіщення про помилки, автооновлення.
- Документація та навчання — передача коду, інструкція для менеджерів, консультація на етапі запуску.
Терміни та як почати
Базова інтеграція (УПД, хмарний підпис, моніторинг) займає від 3 до 5 тижнів. Розширена зі складовими документами та специфічними форматами — 6–9 тижнів. Вартість розраховується індивідуально після аналізу вашої схеми документообігу. Оцінимо ваш проєкт за 2 робочих дні — зв'яжіться з нами, щоб отримати консультацію та точну оцінку. Замовте тестовий запуск на одному типі документа.







