Интеграция 1С-Битрикс с ЭДО Такском — под ключ

Ручная обработка документов отнимает время и приводит к ошибкам, особенно при большом потоке заказов. Мы разрабатываем интеграцию 1С-Битрикс с ЭДО Такском, автоматизируя отправку УПД и отслеживание статусов. Наша команда реализует проект под ключ — от настройки до сопровождения, обеспечивая надёжный и масштабируемый документооборот.

Интеграция 1С-Битрикс с ЭДО Такском — под ключ

Интеграция с 1ССредний~1-2 недели
Часто задаваемые вопросы

Интеграция 1С-Битрикс с системой ЭДО Такском

Представьте: 150 заказов в сутки, каждому — свой УПД. Менеджер формирует документ в 1С, затем вручную загружает в личный кабинет Такском — тратит 15–20 минут. Итог: 40 часов в неделю уходят на рутину. Ошибки в реквизитах ведут к отказам в 12% случаев, а контрагенты задерживают подписание в среднем на 4 дня. Ситуация усугубляется, если у клиента специфический документооборот (медицинские товары с сериями и сроками годности).

Мы специализируемся на Битрикс более 10 лет, провели 30+ проектов по интеграции ЭДО. Наша типовая реализация — автоматическая отправка УПД из Битрикс через оператора Такском без участия менеджера: статус подписания отслеживается в административной панели. Такой подход сокращает время обработки заказов на 80% и исключает ошибки ручного ввода. При 100 заказах в месяц экономия достигает $3.1k–4.5k в год. Для клиента из сферы B2B-поставок стройматериалов внедрение позволило снизить затраты на документооборот на $11k–16k в год.

Подробнее о настройке аккаунтаДля подключения облачной подписи достаточно зарегистрироваться в личном кабинете Такском, получить 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% по чек-листу
Статус подписания Отслеживался по звонкам Автомониторинг, уведомления

Экономия для клиента составила $11k–16k в год за счёт сокращения ручного труда и штрафов за просроченные документы.

Мониторинг очереди документов

Для контроля документооборота — административный раздел в Битрикс с таблицей отправленных документов:

  • Заказ → Документ Такском → Статус → Дата подписания

Данные берутся из таблицы local_taxcom_documents + периодический polling API Такском для обновления статусов (cron каждые 10 минут).

Что входит в работу

  1. Настройка аккаунта Такском — получение Client ID/Secret, облачной подписи (если требуется).
  2. Разработка PHP-клиента — класс для работы с REST API, кеширование токена, обработка ошибок.
  3. Генерация XML — формирование УПД, актов, составных документов на основе данных заказа.
  4. Справочник контрагентов — загрузка BoxId, сохранение в пользовательском поле Битрикс.
  5. Событийная отправка — привязка к статусам заказа: отгрузка → автоматическая отправка.
  6. Мониторинг статусов — административный раздел с таблицей, уведомления об ошибках, автообновление.
  7. Документация и обучение — передача кода, инструкция для менеджеров, консультация на этапе запуска.

Сроки и как начать

Базовая интеграция (УПД, облачная подпись, мониторинг) занимает от 3 до 5 недель. Расширенная с составными документами и специфическими форматами — 6–9 недель. Стоимость рассчитывается индивидуально после анализа вашей схемы документооборота. Оценим ваш проект за 2 рабочих дня — свяжитесь с нами, чтобы получить консультацию и точную оценку. Закажите тестовый запуск на одном типе документа.

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

Последние работы

  • Разработка сайта компании B2B ADVANCE
    Разработка сайта компании B2B ADVANCE
    1543
  • Разработка веб-сайта для компании ФИКСПЕР
    Разработка веб-сайта для компании ФИКСПЕР
    1060
  • Разработка виджета онлайн-записи на прием для медицинского центра
    Разработка виджета онлайн-записи на прием для медицинского центра
    837
  • Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    928
  • Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    865
  • Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1223