Top.Mail.Ru
АДВИЖЕН Digital
Разработка и сопровождение сайтов
zakaz@advigen.ru
+7 (812) 467-42-72
Стать клиентом plus icon
Создание сайтов
  • Корпоративные сайты
  • Интернет-магазины
  • Сайты на 1С-Битрикс
    • Сайты-визитки
    • Каталог + Услуги
    • Интернет-магазины
    • Переезд на Битрикс
    • Решения Аспро
  • Дизайн/редизайн
  • Одностраничные сайты
Поддержка и доработки
  • Аудит сайта
  • Битрикс поддержка
    • Доработка сайтов
    • Настроить обмен с 1С
    • Переход на PHP8
    • Ускорить сайт
    • Сайты на АСПРО
  • Администрирование
  • SEO-оптимизация
  • Удаление вирусов
  • Перенос на хостинг
CRM Битрикс24
Все услуги
  • Создание сайтов
    • Landing Page
    • Корпоративный сайт
    • Интернет магазин
    • Сайты на Битрикс
    • Сайты на шаблонах АСПРО
    • Перенос сайта на Битрикс
    • Сайты на Tilda
    • Дизайна сайта
  • CRM Битрикс24
    • Внедрение Битрикс24
    • Настройка Битрикс24
    • Бизнес процессы
    • Интернет-магазин + CRM
Найти услугу
АДВИЖЕН Digital
  • О компании
  • Отзывы
  • Примеры работ
  • Блог
  • 1С-Битрикс
  • Контакты
  • ...
    Создание сайтов
    • Корпоративные сайты
    • Интернет-магазины
    • Сайты на 1С-Битрикс
      • Сайты-визитки
      • Каталог + Услуги
      • Интернет-магазины
      • Переезд на Битрикс
      • Решения Аспро
    • Дизайн/редизайн
    • Одностраничные сайты
    Поддержка и доработки
    • Аудит сайта
    • Битрикс поддержка
      • Доработка сайтов
      • Настроить обмен с 1С
      • Переход на PHP8
      • Ускорить сайт
      • Сайты на АСПРО
    • Администрирование
    • SEO-оптимизация
    • Удаление вирусов
    • Перенос на хостинг
    CRM Битрикс24
    Все услуги
    • Создание сайтов
      • Landing Page
      • Корпоративный сайт
      • Интернет магазин
      • Сайты на Битрикс
      • Сайты на шаблонах АСПРО
      • Перенос сайта на Битрикс
      • Сайты на Tilda
      • Дизайна сайта
    • CRM Битрикс24
      • Внедрение Битрикс24
      • Настройка Битрикс24
      • Бизнес процессы
      • Интернет-магазин + CRM
      АДВИЖЕН Digital
      Создание сайтов
      • Корпоративные сайты
      • Интернет-магазины
      • Сайты на 1С-Битрикс
        • Сайты-визитки
        • Каталог + Услуги
        • Интернет-магазины
        • Переезд на Битрикс
        • Решения Аспро
      • Дизайн/редизайн
      • Одностраничные сайты
      Поддержка и доработки
      • Аудит сайта
      • Битрикс поддержка
        • Доработка сайтов
        • Настроить обмен с 1С
        • Переход на PHP8
        • Ускорить сайт
        • Сайты на АСПРО
      • Администрирование
      • SEO-оптимизация
      • Удаление вирусов
      • Перенос на хостинг
      CRM Битрикс24
      Все услуги
      • Создание сайтов
        • Landing Page
        • Корпоративный сайт
        • Интернет магазин
        • Сайты на Битрикс
        • Сайты на шаблонах АСПРО
        • Перенос сайта на Битрикс
        • Сайты на Tilda
        • Дизайна сайта
      • CRM Битрикс24
        • Внедрение Битрикс24
        • Настройка Битрикс24
        • Бизнес процессы
        • Интернет-магазин + CRM
        АДВИЖЕН Digital

        Меню

        АДВИЖЕН Digital
        • Создание сайтов
          • Создание сайтов
          • Корпоративные сайты
          • Интернет-магазины
          • Сайты на 1С-Битрикс
            • Сайты на 1С-Битрикс
            • Сайты-визитки
            • Каталог + Услуги
            • Интернет-магазины
            • Переезд на Битрикс
            • Решения Аспро
          • Дизайн/редизайн
          • Одностраничные сайты
        • Поддержка и доработки
          • Поддержка и доработки
          • Аудит сайта
          • Битрикс поддержка
            • Битрикс поддержка
            • Доработка сайтов
            • Настроить обмен с 1С
            • Переход на PHP8
            • Ускорить сайт
            • Сайты на АСПРО
          • Администрирование
          • SEO-оптимизация
          • Удаление вирусов
          • Перенос на хостинг
        • CRM Битрикс24
        • Все услуги
          • Все услуги
          • Создание сайтов
            • Создание сайтов
            • Landing Page
            • Корпоративный сайт
            • Интернет магазин
            • Сайты на Битрикс
            • Сайты на шаблонах АСПРО
            • Перенос сайта на Битрикс
            • Сайты на Tilda
            • Дизайна сайта
          • CRM Битрикс24
            • CRM Битрикс24
            • Внедрение Битрикс24
            • Настройка Битрикс24
            • Бизнес процессы
            • Интернет-магазин + CRM
        Стать клиентом plus icon
        • +7 (812) 467-42-72
          • Телефоны
          • +7 (812) 467-42-72
        • Санкт-Петербург, Богатырский пр., 12
        • pro@advigen.ru
        • Пн. – Пт.: с 9:30 до 18:00
        Главная
        —
        Блог
        —
        Статьи об обмене с 1С
        —Обмен 1С с БУC

        Обмен 1С с БУC

        Обмен 1С с БУC
        Обмен с 1С
        1891


        5 июня 2023
        Администратор
        Веб студия АДВИЖЕН Digital
        Адвижен Digital


        Инициатором любого обмена является 1С, сайт не загружает ничего в 1С, сайт только принимает запросы и отдаёт результат. По умолчанию, 1С обращается к скрипту /bitrix/admin/1c_exchange.php. Этот путь указывается в настройках обмена в самой 1С. Из коробки в этом файле включается файл   /bitrix/modules/sale/admin/1c_exchange.php.  Если открыть файл, то видим там подключение нескольких компонентов в зависимости от  $_GET["type"]  .В общем случае интересуют два из них:

        bitrix:catalog.import.1c – импорт каталога.

        bitrix:sale.export.1c – экспорт заказов.

        Импорт товаров из 1С

        Импорт начинается с авторизации, посылается запрос на /bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth с передачей логина и пароля пользователя сайта, которые указали в настройках обмена. После авторизации сайт выдает ID сессии.

        Далее идёт инициализация обмена, URL /bitrix/admin/1c_exchange.php?type=catalog&mode=init&sessid=ID_Сессии. На этом этапе в сессии инициализируется массив данных обмена $_SESSION["BX_CML2_IMPORT"] и сайт отдаёт параметры обмена: возможность использования zip, лимит размера файла и т.д. Также на этом этапе очищается папка для файлов выгрузки. Скорее всего, это будет папка /upload/1c_catalog/. Для отладки можно включить сохранение старых файлов обмена, тогда при новом обмене старые данные будут перемещаться в отдельные папки: 1c_catalog0, 1c_catalog1 и т.д.. Для сохранения данных нужно объявить константу в dbconn.php:

        // Не забудьте убрать эту строку после отладки во избежание переполнения сервера
        define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

        После этого 1С начинает подготовку данных и далее посылает их POST-запросом на сайт частями, URL: /bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=ИМЯ_ФАЙЛА.zip&sessid=ID_Сессии. Запрос продолжается, пока файлы не будут переданы полностью.

        1С передает на сайт xml-файлы с данными товаров и предложений, а также картинки. В случае если сайт разрешил использовать zip, то 1С передает все файлы одним архивом. Тогда следующий шаг начинается с его распаковки.

        В выгрузке могут участвовать xml-файлы:

        • import.xml - товары, разделы, типы цен, склады, свойства товаров и единицы измерения;
        • offers.xml - торговые предложения товаров и их свойства;
        • prices.xml - цены торговых предложений(в новых версиях);
        • rests.xml - остатки торговых предложений(в новых версиях);
        • references.xml - пользовательские справочники (highload-инфоблоки, в новых версиях).

        Узнать подробнее о файлах обмена

        Картинки загружаются в папку /upload/1c_catalog/import_files/.

        Далее начинаются обработка файла и сам импорт данных, 1С раз за разом обращается к URL /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=ИМЯ_ФАЙЛА_ВЫГРУЗКИ.xml, где ИМЯ_ФАЙЛА_ВЫГРУЗКИ - import.xml, offers.xml и т.д. Импорт завершается, когда сайт отдаёт слово "success". За обработку файла выгрузки отвечают классы CIBlockXMLFile (/bitrix/modules/iblock/classes/mysql/cml2.php) и CIBlockCMLImport (/bitrix/modules/iblock/classes/general/cml2.php).

        Импорт состоит из нескольких шагов:

        1. Очистка временной таблицы (таблица b_xml_tree)

          Метод CIBlockXMLFile::DropTemporaryTables(). Обычный drop таблицы b_xml_tree.

        2. Создание временной таблицы

          Метод CIBlockXMLFile::CreateTemporaryTables(). Здесь создается таблица b_xml_tree. Можно, кстати, задать storage engine этой таблицы, равно как и всех создаваемые битриксом, с помощью определения константы MYSQL_TABLE_TYPE.

        3. Чтение файла во временную таблицу

          Метод CIBlockXMLFile::ReadXMLToDatabase().

        4. Индексация временной таблицы

          Метод CIBlockXMLFile::IndexTemporaryTables().

        5. Импорт метаданных

          Метод CIBlockCMLImport::ImportMetaData.

        6. Импорт разделов

          Метод CIBlockCMLImport::ImportSections.

        7. Деактивация разделов и пересчёт левой и правой границ для разделов

          Методы CIBlockCMLImport::DeactivateSections и CIBlockCMLImport::SectionsResort.

        8. Импорт элементов

          Самый длительный процесс, на этом этапе добавляются и обновляются новые товары (если загружается import.xml) или обновляются цены и остатки (если загружаетс offers.xml). Здесь задействован метод CIBlockCMLImport::ImportElements, который вызывает CIBlockCMLImport::ImportElement для товаров или CIBlockCMLImport::ImportElementPrices для остатков/цен.

        9. Деактивация элементов

          Методы CIBlockCMLImport::DeactivateSections и CIBlockCMLImport::SectionsResort.

        10. success

          Импорт файла завершен, сайт отвечат словом "success", 1С считает обмен успешным. При необходимости начинается импорт следующего файла.

        Некоторые шаги могут выполняться за несколько запросов, порциями по несколько секунд (это время настраивается параметров "Интервал одного шага в секундах" в настройках интеграции с 1С в админке Битрикса).

        Модификация

        На шаге 9, т.е. по окончании обработки файла выгрузки (NB: одного файла, например, товаров или предложений) вызывается событие OnSuccessCatalogImport1C модуля catalog. Аргументы обработчика - параметры компонента обмена и путь к файлу выгрузки.

        Также для изменения процесса обмена можно использовать обычные события, например, OnBeforeIBlockElementUpdate или OnBeforeProductAdd. В обработчике, чтобы определить, что событие вызвано именно во время обмена с 1С, я использую такое костыльное условие:

        if (isset($_GET['type'], $_GET['mode']) && $_GET['type'] === 'catalog' && $_GET['mode'] === 'import') {
            // ...
        }

        Ну и, если ничего нельзя решить событиями, всегда можно полностью изменить процесс обмена, скопировав и изменив файл /bitrix/admin/1c_exchange.php, компонент bitrix:catalog.import.1c и класс CIBlockCMLImport.

        Отключение проверки источника запроса

        Как и в случае с выгрузкой товаров, при импорте товаров есть проверка источника запроса. Можно отключить её следующим кодом:

        // old school:
        COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y"); 
        // d7 style:
        \Bitrix\Main\Config\Option::set("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y");

        Экспорт заказов в 1С

        Обмен заказами начинается с авторизации с помощью логина и пароля, который указали в настройках обмена. После авторизации сайт выдает ID сессии, URL: /bitrix/admin/1c_exchange.php?type=sale&mode=checkauth.

        После получения ID сессии идёт инициализация обмена, URL: /bitrix/admin/1c_exchange.php?type=sale&mode=init&sessid=ID_Сессии. На этом этапе сайт отдаёт настройки обмена со стороны сайта.

        Для получения списка заказов запрашивается URL /bitrix/admin/1c_exchange.php?type=sale&mode=query&sessid=ID_Сессии. Выгружаются заказы с полями EXTERNAL_ORDER = "N", UPDATED_1C = "N" и обновившиеся после последней успешной выгрузки в 1С (это проверяется по времени из свойства "last_export_time_committed_/bitrix/admin/1c_excha" модуля sale).

        Флаг EXTERNAL_ORDER указывает, что заказ создан в 1С и его выгрузка в 1С не требуется.

        Флаг UPDATED_1C после успешного импорта из 1С на сайте устанавливается в "Y" и такие заказы не участвуют в дальнейших экспортах до их обновления на сайте. Во время обновлений заказов на сайте UPDATED_1C устанавливается в "N".

        После обработки заказов 1С для завершения обмена запрашивает URL /bitrix/admin/1c_exchange.php?type=sale&mode=success&sessid=ID_Сессии. При этом в свойство "last_export_time_committed_/bitrix/admin/1c_excha" модуля sale записывается время запроса списка заказов (НЕ текущее время, т.к. с момента запроса заказов до их обработки могли добавиться заказы и они попадут в следующую выгрузку с сайта).

        Модификация

        В экспорте заказов участвуют файл /bitrix/admin/1c_exchange.php, компонент bitrix:sale.export.1c и класс CSaleExport. Какие-либо события здесь отсутствуют, поэтому для модификации этого процесса нужно заменить компонент на свой, создать класс-наследник CSaleExport и заменить вызовы в компоненте на него. В последних версиях Битрикс этот класс стал относительно читабельным, в старых там была просто простыня из php и "xml".

        Отключение проверки источника запроса

        С версии 15.5 добавлена дополнительная проверка и если вызвать просто /bitrix/admin/1c_exchange.php?type=sale&mode=query, то получим ошибку "failure Ошибка проверки источника запроса. Обновите модуль обмена". Если нет желания возиться с sessid, то можно отключить проверку источника запроса, для этого нужно выполнить:

        // old school:
        COption::SetOptionString("sale", "secure_1c_exchange", "N");
        // d7 style:
        \Bitrix\Main\Config\Option::set("sale", "secure_1c_exchange", "N");

        Также хотим поделиться важными ссылками, кейсами и ответов разработчиков Битрикс, связанных с особенностями обмена 1С с Битрикс:

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

        2. Документация по Обмену 1С от Битрикс, доступная по ссылке

        3. Разбор типичных ошибок

        4. Ответы на часто задаваемые вопросы

        5. Видео-урок "Обмен данными в реальном времени"

          Видеоролик c YouTube: YouTube video player

        Читайте также

        Поддержка сайта
        08 января 2026
        23
        Логирование PHP ошибок после обновления ядра Битрикса / пере...
        Поддержка сайта
        22 ноября 2024
        1935
        Отключаем ленивую загрузку изображений (lazyload)
        Поддержка сайта
        18 октября 2024
        3491
        Как запретить доступ к сайту для иностранных IP адресов
        Поддержка сайта
        08 октября 2024
        2883
        Кодировка поля "SITE_ID" таблицы "b_abtest&qu...
        Поддержка сайта
        13 августа 2024
        2471
        Как узнать какие таблицы БД в Битрикс имеют большой объем да...
        Поддержка сайта
        08 августа 2024
        2752
        Добавляем тег rel=canonical на страницы сайта Битрикс
        Поддержка сайта
        01 августа 2024
        1654
        Как узнать какие свойства инфоблока не заполнены у товаров и...
        Поддержка сайта
        27 мая 2024
        1585
        РейтингРунета 2024 обновился
        Назад к списку


        • Веб-аналитика 1
        • Интернет-маркетинг 2
        • Контекстная реклама 4
        • Новости 13
        • Обмен с 1С 6
        • Поддержка сайта 18
        • Таргетированная реклама 3
        ВК Интернет-маркетинг Контекстная реклама Маркетинг Одноклассники Таргет УТП Яндекс Директ
        +7 (812) 467-42-72
        -->
        • О компании
        • Отзывы
        • Примеры работ
        • Блог
        • 1С-Битрикс
        • Контакты
        • ...
          Мы в социальных сетях
          Создание сайтов
          Корпоративный сайт
          Интернет магазин
          Поддержка сайтов
          Администрирование
          Доработка сайтов на Битриксе
          Доработка решений АСПРО
          Аудит сайтов 1С-Битрикс
          Комплексное продвижение
          SEO продвижение
          Контекстная реклама
          Таргетированная реклама
          Электронная коммерция
          Сквозная аналитика
          CRM Битрикс24
          Внедрение CRM
          Настройка CRM
          Бизнес процессы
          Интернет-магазин + CRM
          © 2026 АДВИЖЕН
          Политика конфиденциальности
          Подписаться на рассылку