LabAndor Описать задачу

Данные и парсинг

  • Парсинг сайтов

Импорт и интеграции

Боты и автоматизация

Сайты и инфраструктура

  • Парсинг сайтов

Ремонт интеграции · 1С ↔ Битрикс

Диагностика и исправление обмена 1С с 1С-Битрикс

Обмен товарами и остатками между 1С и сайтом на Битрикс сломался, задваивает карточки или молча перестал обновлять цены. Сначала разбираем лог и файлы обмена, потом говорим, что чинить и сколько это стоит.

Пришлите доступ к логу обмена и файлам выгрузки из 1С — посмотрим, где встаёт процесс.

1С 1С-Битрикс

Диагностика раньше правок

Семь шагов, по которым разбираем сломанный обмен: от лога до контрольного прогона. Выберите шаг — покажем, что именно смотрим.

Шаг 1 · Обмен обрывается по таймауту

Первым делом смотрим, где именно обрывается сессия: лимиты веб-сервера чаще всего убивают длинную выгрузку.

POST /bitrix/admin/1c_exchange.php?type=catalog&mode=import

import progress: 42%
import progress: 57%
FastCGI: comm with server aborted: read timeout (30s)
HTTP 504 Gateway Time-out
→ проверяем max_execution_time, лимиты прокси и шаг сессии обмена

Шаг 2 · Разбираем import.xml

Сверяем структуру каталога: группы, товары, идентификаторы. Дубли и «потерянные» разделы почти всегда видны уже здесь.

import.xml · Классификатор / Каталог
<Группы> … 629 узлов ok
<Товары> … 12 737 позиций ok
<Ид>c69e…-42a1</Ид> ↔ XML_ID совпадает
→ фиксируем эталонные идентификаторы до правок

Шаг 3 · Проверяем offers.xml

Цены и остатки идут отдельным файлом. «Цены не обновляются» чаще всего означает сбой именно на этом шаге.

offers.xml · Пакет предложений
<Предложения> … 12 629 позиций
<Цены><Цена><ИдТипаЦены>b8c1… не найден на сайте
price type mismatch: «Розничная» ≠ BASE
→ сверяем типы цен 1С ↔ Битрикс и валюту

Шаг 4 · XML_ID и соответствие карточек

Дубли появляются, когда идентификаторы разъехались: сайт перестаёт узнавать товар и создаёт его заново.

SELECT ID, XML_ID FROM b_iblock_element WHERE …
1204 строк
ID 8812 · XML_ID c69e…-42a1 ok
ID 9145 · XML_ID c69e…-42a1 (дубль)
→ восстанавливаем маппинг, дубли сливаем без потери ссылок

Шаг 5 · Блокировка параллельных обменов

Два обмена одновременно портят данные незаметно. Ставим блокировку: новый запуск ждёт, пока закончится предыдущий.

cron: */30 * * * * exchange.sh
08:00:01 exchange started (pid 4312)
08:30:00 exchange started (pid 5127) — предыдущий ещё работает
+ flock: second run skipped, lock held by 4312
→ обмены больше не пересекаются

Шаг 6 · Расписание и журналирование

Обмен должен запускаться сам и оставлять след: когда прошёл, сколько объектов, какие предупреждения.

exchange.log
08:00 запуск по расписанию ok
08:01 выгрузка из 1С: 12 737 товаров ok
08:01 предупреждений: 0 · ошибок: 0
→ журнал доступен заказчику, сбой виден сразу

Шаг 7 · Контрольный прогон

Финальная проверка на полном каталоге: цифры сходятся с 1С, ошибок нет — только после этого передаём работу.

контрольный прогон · полный каталог
товаров: 12 737 ok
с ценами: 12 629 ok
разделов: 629 ok
время: ~1,5 мин · ошибок: 0 ok
→ скорость зависит от объёма и хостинга — результат конкретной работы

Как выглядит сломанный обмен

Если узнали свою ситуацию хотя бы в одном пункте — обмен чинится. Вопрос только в том, где именно он падает.

Падает по таймауту

Выгрузка доходит до середины и обрывается; в логе — timeout или 504.

Товары без цен и остатков

Позиции на сайте есть, но offers.xml не применяется или применяется частично.

Разделы дублируются

После каждой выгрузки каталог обрастает копиями категорий.

Заказы не уходят в 1С

Менеджеры перебивают заказы с сайта руками.

Картинки не доходят

import.xml ссылается на файлы, которые до сайта не добираются.

Обмены накладываются

Ночная выгрузка ещё идёт, утренняя стартует поверх — данные бьются.

Диагностика раньше правок

Не трогаем работающее и не «переустанавливаем всё». Сначала находим точку падения, потом чиним её.

  1. 01

    Логи обмена

    Читаем журнал на стороне сайта и в 1С: на каком шаге и с какой ошибкой обрывается сессия.

  2. 02

    Воспроизведение

    Запускаем обмен вручную на копии и ловим падение в контролируемых условиях.

  3. 03

    Причина, а не симптом

    Таймаут, нехватка памяти, битые данные или конфликт шагов — причину фиксируем письменно до правок.

  4. 04

    Исправление

    Чиним обработку, ставим лок от параллельных запусков, настраиваем cron и логирование.

  5. 05

    Контрольный прогон

    Полная выгрузка со сверкой счётчиков по каждой сущности: товары, разделы, цены, остатки.

Сущности и направления обмена

Полный двусторонний обмен нужен не всегда. Разбираем по сущностям, что и куда должно идти, и фиксируем в ТЗ.

Товары (1С) Каталог сайта CommerceML, import.xml
Разделы и категории Структура каталога без дублей
Цены Цены на сайте offers.xml
Остатки Наличие на сайте offers.xml
Характеристики Свойства товаров
Изображения Галереи товаров
Заказы с сайта Документы в 1С направление зависит от сущности

Схема из реального проекта: направления для разных сущностей отличаются — это нормально и настраивается.

Контрольный прогон флагманского проекта

12 737
товаров прошло выгрузку
12 629
позиций с ценой
629
разделов каталога
~1,5 мин
импорт на стороне сайта
0
ошибок в контрольном прогоне

Цифры контрольного прогона одного проекта (1С-Битрикс, полный обмен). Скорость зависит от объёма и хостинга — это результат конкретной работы, а не универсальная гарантия.

Флагманский кейс

Обмен 1С с интернет-магазином: от падений по таймауту до стабильной синхронизации Принят без замечаний

Полный обмен в обе стороны с направлениями по сущностям: товары, разделы, цены, остатки, характеристики, изображения. Приём CommerceML, обработка import.xml и offers.xml, снятие таймаута, cron, лок от параллельных запусков, логирование, попутные исправления корзины и структуры каталога.

12 737
товаров в каталоге
629
разделов
~1,5 мин
контрольный импорт на стороне сайта
Без замечаний
приёмка заказчиком

Как заказать

  1. Заявка

    Опишите, как проявляется сбой, и какая версия Битрикс — этого достаточно для старта.

  2. Диагностика

    По логам и копии находим точку падения и называем причину письменно.

  3. ТЗ и цена

    Фиксируем объём правок и стоимость до начала работ.

  4. Ремонт и прогон

    Чиним, ставим защиту от повторения, делаем контрольный прогон со сверкой.

После согласования ТЗ отправим персональную ссылку на оплату.

Стоимость

Диагностика и исправление обмена — от 25 000 ₽, типовой проект около 30 000 ₽. Точную стоимость называем после разбора лога обмена и файлов выгрузки: она зависит от объёма и характера сбоя.

от 25 000 ₽

Узнать цену своей задачи

Частые вопросы

Проверить ошибку обмена

Пришлём предварительную оценку после уточнения. Финальные цену и срок подтверждает специалист.

Куда прислать ответ *

Опишите задачу

Уточним детали и вернёмся с предварительной оценкой в выбранный канал. Финальные цену и срок подтверждает специалист.

Куда прислать ответ *