Інтеграція 1С з сайтом: замовлення, товари, залишки

Наша компанія займається розробкою, підтримкою та обслуговуванням сайтів будь-якої складності. Від простих односторінкових сайтів до масштабних кластерних систем, побудованих на мікро сервісах. Досвід розробників підтверджено сертифікатами від вендорів.

Розробка та обслуговування будь-яких видів сайтів:

Інформаційні сайти або веб-програми
Сайти візитки, landing page, корпоративні сайти, онлайн каталоги, квіз, промо-сайти, блоги, ресурси новин, інформаційні портали, форуми, агрегатори
Сайти або веб-програми електронної комерції
Інтернет-магазини, B2B-портали, маркетплейси, онлайн-обмінники, кешбек-сайти, біржі, дропшиппінг-платформи, парсери товарів
Веб-програми для управління бізнес-процесами
CRM-системи, ERP-системи, корпоративні портали, системи управління виробництвом, парсери інформації
Сайти або веб-програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, конструктори сайтів, портали надання електронних послуг, відеохостинги, тематичні портали

Це лише деякі з технічних типів сайтів, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 2062 послуг
Інтеграція 1С з сайтом: замовлення, товари, залишки
Складний
~5 днів
Часті запитання

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

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.webp
    Розробка сайту компанії B2B ADVANCE
    1358
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1250
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    956
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1188
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    929
  • image_bitrix-bitrix-24-1c_fixper_448_0.webp
    Розробка веб-сайту для компанії ФІКСПЕР
    947

Ручне введення даних з 1С на сайт і назад — джерело постійних помилок і втраченого часу. Інтеграція 1С з сайтом вирішує цю проблему. За 10 років ми інтегрували 1С:Підприємство та 1С Enterprise з десятками сайтів на різних CMS: від 1C-Bitrix до самописних рішень на Laravel. Кожна конфігурація 1С унікальна — типова вивантаження CommerceML часто не покриває бізнес-логіку. Ми будуємо надійну архітектуру інтеграції 1С з сайтом для обміну даними 1С, що виключає втрати даних і блокування. Гарантуємо стабільну синхронізацію 1С та сайту з будь-яким обсягом даних.

Один із наших проєктів — мережа з 50 магазинів — щодня передавав 10 000 замовлень через RabbitMQ. Після впровадження час обробки замовлення скоротився з 30 хвилин до 30 секунд — це у 60 разів швидше. Економія часу — до 80%. Вартість базової інтеграції починається від 2000 USD, а повноцінна двостороння синхронізація 1С — від 8000 USD. Середня економія на супроводі після впровадження становить 15 000 USD на рік. Ми маємо понад 10 років досвіду, більше 50 успішних проектів з інтеграції 1С.

Архітектурні варіанти інтеграції

Варіант 1: 1С як майстер даних 1С зберігає актуальні дані (залишки, ціни, номенклатуру), сайт періодично синхронізується. Підходить, якщо 1С — основна облікова система, а сайт — просто вітрина.

Варіант 2: Двостороння синхронізація Замовлення створюються на сайті та передаються в 1С. Оновлення даних йдуть з 1С на сайт. Вимагає ретельної логіки вирішення конфліктів.

Варіант 3: Сайт як майстер для замовлень Сайт керує замовленнями, 1С отримує їх для обліку та виробництва/відвантаження. Дані каталогу надходять з 1С.

Як вибрати метод інтеграції?

Якщо навантаження невелике та простота важливіша за відмовостійкість — підійдуть прямі web-сервіси. Для високонавантажених проєктів наша інтеграція в 3 рази надійніша за пряме HTTP-з'єднання завдяки схемі з брокером повідомлень. При рідкому оновленні каталогу (раз на добу) можна обійтися CommerceML інтеграцією.

Архітектура Опис Коли застосовувати
1С як майстер 1С — джерело даних, сайт — вітрина Рідкі зміни каталогу, немає онлайн-залишків
Двостороння Повна синхронізація замовлень і залишків Інтернет-магазин з актуальними залишками та замовленнями
Сайт як майстер Сайт керує замовленнями, 1С — облік Офлайн-продажі + онлайн, спрощена логіка

Методи підключення до 1С

1С web-сервіси (SOAP/REST) — 1С публікує HTTP-сервіс через веб-сервер (Apache/IIS). Сайт звертається до нього напряму. Вимагає публікації 1С на зовнішню адресу або VPN.

Проміжна шина (брокер) — рекомендований варіант для продакшну. RabbitMQ або Redis Queue між сайтом і агентом 1С. Агент — окремий процес (Node.js, Go, Python), який читає чергу та викликає COM-об'єкт 1С або його HTTP-сервіс.

Сайт → RabbitMQ (exchange: site_to_1c) → 1С-агент → 1С
1С → RabbitMQ (exchange: 1c_to_site) → PHP Worker → Сайт

CommerceML (1С→сайт) — XML-формат вивантаження каталогу з 1С. Детальніше в описі CommerceML.

1С:Коннектор для сайтів — готовий модуль для інтеграції 1С з Bitrix. Для інших CMS — потрібна розробка.

Які дані синхронізуємо?

Синхронізація номенклатури З 1С вивантажуються: артикул, найменування, опис, характеристики (колір, розмір), одиниця виміру, ПДВ, зображення (посилання або base64), штрихкоди. Формат вивантаження номенклатури 1С: JSON через REST API 1С або XML за протоколом CommerceML.

// Обробка отриманої номенклатури
foreach ($nomenclature as $item) {
    Product::updateOrCreate(
        ['sku_1c' => $item['code']],
        [
            'name'        => $item['name'],
            'description' => $item['description'],
            'price'       => $item['price'],
            'stock'       => $item['stock']
        ]
    );
}

Синхронізація залишків 1С на сайті та цін Залишки 1С на сайті та ціни змінюються частіше, ніж номенклатура. Для них потрібна частіша синхронізація (кожні 15–30 хвилин). Оптимально — інкрементальне вивантаження: тільки змінені позиції з моменту останньої синхронізації.

-- У 1С: вивантажувати тільки змінені з останньої синхронізації
ВИБРАТИ Номенклатура.Код, ЗалишкиТоварів.КількістьЗалишок
З РегістрНакопичення.ТовариНаСкладах.Залишки ЯК ЗалишкиТоварів
ДЕ ЗалишкиТоварів.Період > &ОстанняСинхронізація

Передача замовлень до 1С Замовлення передається в 1С після підтвердження та оплати. Формат залежить від конфігурації 1С. Для "Управління торгівлею" — об'єкт "Замовлення покупця":

{
    "Номер": "SITE-12345",
    "Дата": "2024-01-01T10:30:00",
    "Контрагент": {
        "ІНН": "7712345678",
        "Найменування": "ФОП Іванов"
    },
    "Товари": [
        {
            "Артикул": "ART-001",
            "Кількість": 2,
            "Ціна": 1500.00,
            "Сума": 3000.00,
            "СтавкаПДВ": "20%"
        }
    ],
    "СумаДокумента": 3000.00,
    "Коментар": "Доставка кур'єром"
}

Довідники: контрагенти, склади, організації Перед передачею замовлення може знадобитися створення або пошук контрагента в 1С за ІНН або email. Це окремий запит до 1С-сервісу. Якщо контрагент не знайдений — створюється новий.

Також налаштовується передача замовлень з 1С на сайт для оновлення статусів.

Типові помилки та їх вирішення

1С — система з обмеженою відмовостійкістю. Типові помилки:

  • 1С заблокована іншим користувачем (монопольний режим)
  • Порушення посилальної цілісності (товар у замовленні відсутній у 1С)
  • Таймаут при великому обсязі даних

Усі операції логуються в sync_log з деталями запиту та помилок. Алерти при серії помилок — у Telegram/email.

Тип помилки Причина Вирішення
Блокування 1С Монопольний доступ Використовувати транзакції з таймаутами
Посилальна цілісність Товар видалено з 1С Ввести прапорець деактивації, не видаляти одразу
Таймаут Великий обсяг даних Розбивати на пакети по 100 записів

Поетапний план інтеграції

  1. Аудит поточної конфігурації 1С та сайту
  2. Проєктування архітектури інтеграції
  3. Розробка REST API/шини/CommerceML
  4. Налаштування синхронізації номенклатури, залишків і замовлень
  5. Тестування та налагодження на бойових даних
  6. Документація та навчання ваших співробітників
  7. Технічна підтримка після запуску

Чому важлива безпека?

1С не повинна бути прямо доступна з інтернету. Інтеграція 1С Enterprise вимагає особливої уваги до безпеки. Рекомендується:

  • VPN або виділена мережа між сервером сайту та 1С
  • Брокер повідомлень як єдина точка зв'язку
  • IP-whitelist для REST-сервісу 1С

Що входить у роботу

  • Аудит поточної конфігурації 1С та сайту
  • Проєктування архітектури інтеграції
  • Розробка REST API/шини/CommerceML
  • Налаштування синхронізації номенклатури, залишків і замовлень
  • Тестування та налагодження на бойових даних
  • Документація та навчання ваших співробітників
  • Технічна підтримка після запуску

Економія часу на обробку замовлень — до 80%, а середня економія на супроводі — 40% після впровадження.

Термін розробки: 6–10 тижнів залежно від конфігурації 1С, обсягу даних та обраного методу інтеграції.

Отримайте консультацію щодо вашого проєкту. Замовте аудит поточної інтеграції. Ми маємо багаторічний досвід та десятки успішних проєктів з 1С.

Як вирішити проблеми синхронізації з 1С?

Ранок понеділка. Менеджер відкриває сайт і бачить, що позицію, яку розпродали в п'ятницю, досі «в наявності». Три клієнти вже оплатили товар, якого немає. Ми стикаємося з цим болем регулярно: відсутність синхронізації між 1С та інтернет-магазином б'є по грошах та репутації. Вирішуємо проблему під ключ — налаштовуємо обмін так, щоб облікова система та вітрина оновлювалися синхронно, без втрати даних та з гарантією консистентності. Після нашої інтеграції один із клієнтів скоротив кількість повернень на 50% і зекономив понад 20 000 грн за перший місяць.

1С — облікова система більшості українських компаній. Сайт — вітрина. Вони мають говорити однією мовою і робити це регулярно, надійно та без втрати даних. Наш досвід — понад 50 успішних інтеграцій для замовників з каталогами від 500 до 200 000 SKU.

Чому стандартний CommerceML не завжди рятує?

CommerceML — стандартний протокол обміну, який підтримують 1С:Управління торгівлею, 1С:Комплексна автоматизація та ряд інших конфігурацій. WooCommerce, Shopify та інші CMS мають плагіни для роботи з CommerceML (наприклад, «1С-Бітрікс» для своїх продуктів, окремі плагіни для WordPress). Потік: 1С ініціює обмін → надсилає ZIP-архів з XML на endpoint сайту → сайт розбирає, оновлює каталог.

Формат CommerceML — XML зі своєю схемою: КоммерческаяИнформация, Классификатор, Каталог, ПакетПредложений. Категорії, товари, характеристики, зображення, ціни, залишки. Головна складність — ієрархія характеристик в 1С та атрибути товарів на сайті не завжди збігаються один до одного. Потрібен мапінг. Для глибокого розуміння протоколу рекомендуємо документацію Wikipedia — там розглянуто всі нюанси схеми.

Як ми обходимо обмеження CommerceML

Для нестандартних конфігурацій 1С або коли CommerceML не підходить — пишемо HTTP-сервіс в 1С (вбудована можливість починаючи з версії 8.3) і взаємодіємо через REST JSON. Це дає повний контроль над структурою даних та частотою синхронізації, але вимагає розробки з боку 1С-програміста.

Для enterprise-завдань з кількома обліковими системами — Message Broker (RabbitMQ, Apache Kafka) як посередник. 1С публікує події в чергу, сайт підписується і обробляє. Гарантована доставка, буферизація при недоступності однієї зі сторін.

Що синхронізуємо і як

Каталог (товари, категорії, характеристики). Найоб'ємніша частина. Повне вивантаження при першому запуску, дельта-оновлення в подальшому. При імпорті CommerceML: парсимо XML через PHP SimpleXML або XMLReader (для великих файлів — тільки XMLReader, інакше memory limit). Зіставляємо товари за GUID з 1С, який зберігаємо в окремому полі БД. Якщо товар видалено в 1С — приховуємо на сайті, не видаляємо (історія замовлень може посилатися).

Залишки та ціни — окремий ПакетПредложений в CommerceML, оновлюється частіше каталогу. Критично робити атомарно: не оновлювати залишок по одному, а транзакцією. Інакше в момент оновлення користувач може побачити неконсистентний стан. Частота: раз на годину для спокійного режиму, раз на 5–15 хвилин для активної торгівлі.

Замовлення — двосторонній обмін. Сайт → 1С: нове замовлення передається з номенклатурою, кількістю, цінами, контактними даними покупця. 1С → сайт: статус замовлення (оплачено, зібрано, відвантажено, доставлено). Для передачі замовлень — або той же CommerceML (блок Документи), або прямий REST-виклик при створенні замовлення на сайті.

Типові проблеми, які вирішуємо

Дублювання товарів. 1С-оператор створив позицію з помилкою в артикулі, потім виправив. На сайті — два товари. Рішення: зіставлення за GUID з 1С (не за артикулом), GUID незмінний.

Кирилиця в XML та кодування. 1С історично працює з Windows-1251. CommerceML файл може прийти в CP1251, PHP очікує UTF-8. mb_convert_encoding() або iconv() в перших рядках парсера — обов'язково.

Тайм-аути при великому вивантаженні. Каталог з 100 000 позицій — це 50–200MB XML. PHP default execution time 30s не вистачить. Рішення: CLI-команда (Laravel Artisan або Symfony Console), запускається через cron, без HTTP timeout. Або chunked processing через XMLReader з частковими комітами в БД. Для обробки великих масивів даних використовуємо LazyCollection в Laravel — це дозволяє тримати в пам'яті лише один чанк.

Зображення. 1С може передавати зображення Base64 всередині XML (роздуває файл в 1.3 рази) або посиланнями на файли. Другий варіант кращий. Скачуємо асинхронно, конвертуємо в WebP, кладемо в медіабібліотеку.

Кейс: інтернет-магазин запчастин, 85 000 SKU

Синхронізація через CommerceML кожні 30 хвилин. Проблема: повне вивантаження займало 18 хвилин, в результаті нове вивантаження починалося, поки старе ще йшло. Рішення: lock через Redis (SET nx ex), дельта-вивантаження (тільки змінені позиції за останні 2 години через фільтр в 1С), обробка через чергу з 20 паралельними workers. Час синхронізації: 18 хвилин → 2.5 хвилини, конфліктів немає. Економія ресурсів сервера — до 40% навантаження CPU.

Як відбувається синхронізація даних з 1С?

Порівняння методів інтеграції

Метод Швидкість синхронізації Гнучкість налаштування Ресурсоємкість
CommerceML Висока (бінарний XML) Низька (фіксована схема) Низька (майже не тисне на сервер)
REST API напряму Середня (JSON) Висока (будь-яка модель) Середня (потрібні два HTTP-сервери)
Message Broker (RabbitMQ/Kafka) Дуже висока (асинхронно) Середня (подійна архітектура) Висока (потрібен кластер брокера)

CommerceML в типових сценаріях швидше REST для синхронізації каталогу в 2-3 рази за рахунок бінарної упаковки XML та компактного формату. Однак, якщо потрібна кастомна логіка обміну, REST дає повну гнучкість.

Процес і терміни

Покроковий алгоритм налаштування інтеграції:

  1. Аудит конфігурації 1С (версія, тип конфігурації, можливості вивантаження).
  2. Проектування мапінгу даних — узгодження полів 1С та атрибутів сайту.
  3. Розробка приймача на сайті та відправника в 1С (плагін або кастомний модуль).
  4. Тестування на реальних даних: вивантаження каталогу, перевірка залишків, створення тестового замовлення.
  5. Налаштування розкладу синхронізації (cron, черги) та моніторингу перших обмінів.
  6. Документування схеми мапінгу та логіки обробки помилок.

Участь 1С-програміста з боку клієнта — обов'язково, або ми залучаємо перевіреного спеціаліста. Замовте аудит вашої системи обліку — ми оцінимо складність інтеграції за один робочий день.

Сценарій Термін
CommerceML, каталог + залишки, WooCommerce 2–4 тижні
Двосторонній обмін замовленнями +2–3 тижні
Кастомна конфігурація 1С, REST API 4–8 тижнів
Enterprise: кілька баз 1С, шина даних 2–4 місяці

Що входить в результат (deliverables)

  • Документація: схема мапінгу, формати даних, логіка обробки помилок.
  • Налаштований розклад синхронізації з логами виконання.
  • Доступ до моніторингу (Grafana/ELK — за домовленістю).
  • Навчання менеджерів: як запускати ручний обмін, як читати логи.
  • Гарантійна підтримка після запуску — 2 тижні (виправлення інцидентів).

Отримайте консультацію

Вартість інтеграції розраховується індивідуально після аудиту — залиште заявку на консультацію. Зв'яжіться з нами, щоб отримати детальний план інтеграції для вашого бізнесу. Понад 7 років досвіду в інтеграціях з 1С — гарантуємо стабільну синхронізацію без сюрпризів.