Інтеграція сайту з 1С

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

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

Пропоновані послуги
Показано 15 з 15 послугУсі 2065 послуг
Інтеграція 1С:Бухгалтерія з сайтом
Складна
~3-5 робочих днів
Інтеграція 1С:ERP з сайтом
Складна
від 1 тижня до 3 місяців
Інтеграція 1С через CommerceML з сайтом
Складна
~3-5 робочих днів
Інтеграція МійСклад з сайтом
Середня
~2-3 робочих дні
Інтеграція SAP з сайтом
Складна
від 2 тижнів до 3 місяців
Інтеграція ERP-системи з сайтом
Складна
від 1 тижня до 3 місяців
Інтеграція 1С з OpenCart
Складна
~1-2 тижні
Інтеграція 1С з Magento 2
Складна
~2-4 тижні
Часті питання
Наші компетенції:
Етапи розробки
Останні роботи
  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_web-applications_feedme_466_0.webp
    Розробка веб-додатків для компанії FEEDME
    1171
  • image_websites_belfingroup_462_0.webp
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    874
  • image_ecommerce_furnoro_435_0.webp
    Розробка інтернет магазину для компанії FURNORO
    1094
  • image_crm_enviok_479_0.webp
    Розробка веб-додатків для компанії Enviok
    831
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851

Інтеграція з 1С:Підприємство: обмін товарами, замовленнями, остатками

Утро понеділка. Менеджер відкриває сайт і бачить, що позиція, яку розпродали в п'ятницю, досі «в наявності». Три клієнти вже оплатили замовлення на товар, якого немає. Це класична біль відсутності синхронізації між 1С та інтернет-магазином.

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

Протоколи та підходи

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

CommerceML формат — XML зі своєю схемою: KommercheskayaInformacija, Klassifikator, Katalog, PaketPredlozhenij. Категорії, товари, характеристики, зображення, ціни, остатки. Головна складність — ієрархія характеристик у 1С та атрибути товарів на сайті не завжди співпадають один до одного. Вимагає маппінгу.

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

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

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

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

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

Замовлення. Двосторонній обмін. Сайт → 1С: нове замовлення передається з номенклатурою, кількістю, цінами, контактними даними покупця. 1С → сайт: статус замовлення (оплачено, зібрано, відправлено, доставлено). Для передачі замовлень — або той же CommerceML (блок Dokumenty), або прямий 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 з частковими коммітами в БД.

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

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

Процес та строки

Аудит конфігурації 1С (версія, тип конфігурації, можливості виявлення) → проектування маппінгу даних → розробка приймача на сайті та відправника у 1С → тестування на реальних даних → налаштування розпису → моніторинг перших обмінів.

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

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

Вартість розраховується індивідуально.