Интеграция 1С-Битрикс с Контур.Бухгалтерия: автоматизация обмена

Ручная передача данных тормозит бизнес Небольшой интернет-магазин продаёт через Битрикс, а бухгалтер ведёт учёт в Контур.Бухгалтерии. Каждый месяц бухгалтер вручную переносит данные о продажах, накладных и оплатах — это отнимает 2–4 часа монотонной работы. Ошибки при копировании приводят к расхож
Услуги, которые мы предлагаем
Показано 1 из 1Все 1626 услуг
Интеграция 1С-Битрикс с Контур.Бухгалтерия: автоматизация обмена
Средний
~1-2 недели

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

Часто задаваемые вопросы

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

  • image_website-b2b-advance_0.webp
    Разработка сайта компании B2B ADVANCE
    1428
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Разработка веб-сайта для компании ФИКСПЕР
    1008
  • 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 Appointment Booking Widget for a Medical Center
    745
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Разработка на базе 1С Предприятие для компании МИРСАНБЕЛ
    869
  • image_crm_dolbimby_434_0.webp
    Разработка сайта на CRM Битрикс24 для компании DOLBIMBY
    782
  • image_crm_technotorgcomplex_453_0.webp
    Разработка на базе Битрикс24 для компании ТЕХНОТОРГКОМПЛЕКС
    1149

Ручная передача данных тормозит бизнес

Небольшой интернет-магазин продаёт через Битрикс, а бухгалтер ведёт учёт в Контур.Бухгалтерии. Каждый месяц бухгалтер вручную переносит данные о продажах, накладных и оплатах — это отнимает 2–4 часа монотонной работы. Ошибки при копировании приводят к расхождениям: одна лишняя цифра в ИНН — и налоговая требует уточнений. Мы сталкивались с кейсами, где из-за этого задерживалась сдача отчётности, а штрафы за неправильные данные достигали 20% от суммы операции. Решение — настроить автоматический обмен через REST API Контур.Бухгалтерии. Это исключает человеческий фактор, сокращает время обработки заказа до секунд и гарантирует, что документы попадают в бухгалтерию без опозданий. Наша команда имеет 5+ лет опыта в интеграции Битрикса с внешними сервисами и реализовала более 30 подобных проектов. Автоматизация позволяет экономить до $14k–20k в год на трудозатратах бухгалтерии, а также снижает риск штрафов. Мы предлагаем интеграцию под ключ: от аудита текущей схемы до запуска и мониторинга. Закажите консультацию — оценим ваш проект и предложим сроки.

API Контур.Бухгалтерии для автоматизации учёта

Контур.Бухгалтерия предоставляет REST API (документация). Авторизация через OAuth 2.0 или API-ключ (зависит от тарифа). Доступные сущности: контрагенты, договоры, документы (накладные, акты, счета), банковские операции, статьи расходов. Для интернет-магазина ключевые операции: создание и поиск контрагентов по ИНН, создание документов реализации (накладные, акты) и фиксация оплат. Автоматизация в 60 раз быстрее ручного ввода — 2–5 секунд против 2–5 минут на один заказ. API имеет ограничение 100 запросов в минуту, что достаточно даже для высоконагруженных магазинов. При сетевых ошибках мы используем retry с экспоненциальной задержкой, чтобы гарантировать доставку каждого документа.

Авторизация в API

class KonturBukhClient { private string $apiKey; private string $accountId; // ID организации в Контур.Бухгалтерии private string $baseUrl = 'https://api.kontur.ru/budget/v1'; public function __construct(string $apiKey, string $accountId) { $this->apiKey = $apiKey; $this->accountId = $accountId; } public function request(string $method, string $path, array $data = []): array { $url = "{$this->baseUrl}/accounts/{$this->accountId}{$path}"; $ch = curl_init($url); $options = [ CURLOPT_RETURNTRANSFER => true, CURLOPT_HTTPHEADER => [ 'Content-Type: application/json', "X-Api-Key: {$this->apiKey}", ], ]; if ($method === 'POST' || $method === 'PUT') { $options[CURLOPT_CUSTOMREQUEST] = $method; $options[CURLOPT_POSTFIELDS] = json_encode($data); } elseif ($method === 'GET' && $data) { $url .= '?' . http_build_query($data); curl_setopt($ch, CURLOPT_URL, $url); } curl_setopt_array($ch, $options); $response = json_decode(curl_exec($ch), true); $httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE); curl_close($ch); if ($httpCode >= 400) { throw new \RuntimeException("Kontur API error {$httpCode}: " . json_encode($response)); } return $response ?? []; } } 

Синхронизация контрагентов

Перед созданием документа нужно убедиться, что контрагент существует в Контур.Бухгалтерии. Типичная ошибка — попытка создать документ без предварительной синхронизации. Мы используем поиск по ИНН: если контрагент уже есть, используем его ID; если нет — создаём нового. Это предотвращает дублирование записей.

public function findOrCreateContragent(\Bitrix\Sale\Order $order): string { $props = $order->getPropertyCollection(); $inn = $props->getItemByOrderPropertyCode('INN')->getValue(); $name = $props->getItemByOrderPropertyCode('COMPANY')->getValue(); // Поиск по ИНН $found = $this->client->request('GET', '/counterparties', ['inn' => $inn]); if (!empty($found['items'])) { return $found['items'][0]['id']; } // Создание нового $contragent = $this->client->request('POST', '/counterparties', [ 'name' => $name, 'inn' => $inn, 'kpp' => $props->getItemByOrderPropertyCode('KPP')->getValue() ?? '', 'type' => 'LegalEntity', ]); return $contragent['id']; } 

Создание документа реализации

При смене статуса заказа на «Отгружен» создаём накладную в Контур.Бухгалтерии. Используем событие OnSaleStatusOrder.

AddEventHandler('sale', 'OnSaleStatusOrder', function(string $statusId, \Bitrix\Sale\Order $order) { if ($statusId !== 'D') return; // D = Доставляется/Отгружен $service = new KonturBukhSyncService(); $service->createInvoiceForOrder($order); }); public function createInvoiceForOrder(\Bitrix\Sale\Order $order): void { $contragentId = $this->findOrCreateContragent($order); $orderNumber = $order->getField('ACCOUNT_NUMBER'); $items = []; foreach ($order->getBasket() as $item) { $items[] = [ 'name' => $item->getField('NAME'), 'quantity' => $item->getQuantity(), 'price' => $item->getPrice(), 'vatRate' => $this->getVatRate($item), // 'none'|'vat0'|'vat10'|'vat20' 'unit' => 'шт.', ]; } $document = $this->client->request('POST', '/documents/saleinvoices', [ 'date' => date('Y-m-d'), 'number' => $orderNumber, 'counterpartyId' => $contragentId, 'items' => $items, 'totalAmount' => $order->getPrice(), 'comment' => 'Автоматически создан из заказа #' . $orderNumber, ]); // Сохраняем ID документа в свойствах заказа $order->setField('COMMENTS', $order->getField('COMMENTS') . "\nID документа КБ: " . $document['id'] ); $order->save(); } 

Фиксация оплаты

При изменении статуса оплаты заказа на «Оплачен»:

AddEventHandler('sale', 'OnSalePaymentPaid', function(\Bitrix\Sale\Payment $payment) { $order = $payment->getOrder(); $documentId = $this->getKonturDocumentId($order->getId()); // из хранилища if (!$documentId) return; $this->client->request('POST', "/documents/saleinvoices/{$documentId}/payments", [ 'date' => date('Y-m-d'), 'amount' => $payment->getSum(), 'paymentMethod' => $payment->getPaySystem()->getField('CODE') === 'cash' ? 'Cash' : 'BankTransfer', ]); }); 

Хранение связей

Таблица local_kontur_bukh_sync:

CREATE TABLE local_kontur_bukh_sync ( ORDER_ID INT PRIMARY KEY, KB_DOC_ID VARCHAR(100), SYNCED_AT DATETIME, STATUS ENUM('pending','synced','error') DEFAULT 'pending', ERROR_MSG TEXT ); 

Как настроить интеграцию за 5 шагов?

  1. Получить API-ключ в личном кабинете Контур.Бухгалтерии.
  2. Установить PHP-клиент (код выше) на сервер с Битриксом.
  3. Настроить соответствие полей пользовательских свойств заказа и сущностей API.
  4. Зарегистрировать обработчики событий OnSaleStatusOrder и OnSalePaymentPaid.
  5. Провести тестовую синхронизацию на staging-окружении и запустить мониторинг.

Дополнительно настраивается система уведомлений: при ошибках синхронизации отправляется алерт на почту или в Telegram. Это позволяет оперативно реагировать на сбои.

Что входит в работу по интеграции

Этапы и сроки
Этап Длительность Результат
Аналитика и проектирование 3–5 дней Схема обмена, список полей, спецификация
Разработка клиента API 5–7 дней PHP-класс с обработкой ошибок и ретраями
Синхронизация контрагентов 2–3 дня Поиск/создание по ИНН, проверка дублей
Создание документов 3–5 дней Накладные, акты, счета на основе заказов
Фиксация оплат и возвратов 2–3 дня Обработка платежей
Тестирование и запуск 3–5 дней Тесты на staging, мониторинг ошибок

Итого: от 18 до 28 рабочих дней (3–5 недель). Стоимость рассчитывается индивидуально — зависит от сложности бизнес-логики и количества статусов.

Сравнение: ручная обработка vs автоматизация

Параметр Ручная работа Автоматизация с API
Время на передачу одного заказа 2–5 минут 2–5 секунд
Вероятность ошибки 5–10% <0.1%
Затраты времени бухгалтера в месяц 8–16 часов 0 минут
Задержка при передаче От 1 дня Мгновенно
Штрафы за ошибки в документах Риск до 20% от суммы Минимизирован

Почему стоит доверить интеграцию нам

Мы не просто пишем код — мы проектируем архитектуру, которая будет работать годами. Гарантируем, что документы не потеряются: используем очередь с повторными попытками и логирование всех операций. Наш опыт — 30+ интеграций Битрикса с бухгалтерскими системами (1С, Контур, МойСклад). Хотите оценить, сколько сэкономит ваш бизнес? Свяжитесь с нами — мы бесплатно проанализируем текущую схему документооборота и предложим решение. Закажите интеграцию — и забудьте о ручной передаче данных.