---
title: "1C и n8n: обмен заказами через HTTP | Nodbot"
source_url: "https://nodbot.ru/integrations/onec-http/"
canonical_url: "https://nodbot.ru/integrations/onec-http/"
language: "ru"
content_type: "IntegrationGuide"
section: "integrations"
generated_at: "2026-05-30"
word_count_source: 1000
---

# Интеграция 1C и n8n через HTTP: заказы, остатки и защита от дублей

## AI summary

Problem/Solution-гайд по 1C и n8n: как построить HTTP/OData обмен заказами, остатками и контрагентами без ручных CSV, дублей документов и опасных write-операций.

## Best used for

Страница подходит для специалистов, которым нужна production-интеграция, а не общий обзор: конкретная боль, workflow JSON, payload, Code Node, тесты, риски и чек-лист готовности.

## Key topics

- Проблема и решение
- Архитектура workflow
- Контракт входных данных
- Нормализация и проверка данных
- Готовый workflow JSON
- Пошаговая настройка
- Тесты перед production
- Production-риски
- Критерии готовности

## Source outline

Проблема: 1C часто остаётся системой учёта, а сайт, CRM и маркетплейсы живут своими событиями. Если обмен делать через ручные CSV или прямые записи без договора данных, появляются дубли документов, расхождение остатков и неясно, кто отвечает за ошибку.

Решение: Надёжная интеграция 1C и n8n начинается с договора обмена: external_id, source of truth, формат JSON/XML, idempotency key, статусы, ошибки и ручная очередь. n8n выступает orchestration layer, а не заменяет бизнес-логику 1C.

### Контракт входных данных

```json
{
  "event_id": "shop-order-10492-create",
  "event_type": "order.create",
  "external_order_id": "shop-10492",
  "customer": {
    "name": "Анна Иванова",
    "phone": "+7 999 000-11-22",
    "inn": ""
  },
  "items": [
    {
      "sku": "N8N-001",
      "qty": 2,
      "price": 1490
    }
  ],
  "payment_status": "paid",
  "delivery": {
    "city": "Москва",
    "address": "ул. Примерная, 1"
  },
  "idempotency_key": "shop:order:10492:create",
  "created_at": "2026-05-30T10:00:00+03:00"
}
```

### Code Node

```javascript
const src = $json.body ?? $json;
const externalOrderId = String(src.external_order_id ?? '').trim();
if (!externalOrderId) throw new Error('No external_order_id for 1C exchange');
const items = Array.isArray(src.items) ? src.items : [];
if (!items.length) throw new Error(`Order ${externalOrderId} has no items`);
const payloadFor1c = {
  НомерВнешний: externalOrderId,
  Идемпотентность: src.idempotency_key ?? `shop:order:${externalOrderId}:create`,
  Клиент: {
    Наименование: String(src.customer?.name ?? '').trim(),
    Телефон: String(src.customer?.phone ?? '').replace(/[^0-9+]/g, ''),
    ИНН: String(src.customer?.inn ?? '').replace(/\D/g, '')
  },
  Товары: items.map(i => ({ Артикул: String(i.sku).trim(), Количество: Number(i.qty), Цена: Number(i.price) })),
  Оплата: src.payment_status ?? 'unknown',
  Доставка: src.delivery ?? {},
  ДатаПолучения: new Date().toISOString()
};
return [{ json: { idempotency_key: payloadFor1c.Идемпотентность, endpoint: '/hs/n8n/orders', payload_for_1c: payloadFor1c } }];
```

### Критерии готовности

- Есть договор обмена и владелец каждого поля.
- Повторный заказ не создаёт второй документ в 1C.
- HTTP-сервис защищён, а credentials имеют минимальные права.
- Ошибки разделены на retry, review, incident и idempotent skip.
- Есть журнал exchange_id, request, response, onec_ref и replay policy.

## Related Nodbot pages

- [1C HTTP exchange workflow](/workflows/onec-http-exchange/)
- [МойСклад и n8n](/integrations/moysklad/)
- [Idempotency keys в n8n](/architecture/idempotency-keys/)
