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
        • zakaz@advigen.ru
        • Пн. – Пт.: с 9:30 до 18:00
        Главная
        —
        Блог
        —
        Статьи об обмене с 1С
        —Отладка интеграции между Битрикс и 1С

        Отладка интеграции между Битрикс и 1С

        Отладка интеграции между Битрикс и 1С
        Обмен с 1С
        1495


        5 июня 2023
        Администратор
        Веб студия АДВИЖЕН Digital
        Адвижен Digital
        Скриптом можно запустить обмен с сайтом заказами, справочниками, товарами. Нужно скачать файл bx_1c_sync.php на компьютер и загрузить в корневую папку сайта.

        Настройка скрипта

        Перед запуском, в начале скачанного файла в строке $password = ''; нужно указать пароль, по которому можно авторизовываться.

        Работать со скриптом, нужно в режиме браузера инкогнито, чтобы не получилось, что мы работаем от админа и всё хорошо, а 1С потом работает от другого пользователя и всё ломается.

        Для эмуляции выгрузки товаров из 1С на сайт, предварительно надо произвести обмен, установив сохранение файлов. Делается это добавлением строки в /bitrix/php_interface/dbconn.php, которая включает сохранение файлов в папке upload/1c_catalog:

        define("BX_CATALOG_IMPORT_1C_PRESERVE", true);

        Запуск скрипта

        Первоначально у вас будет такое окно:

        1 (1).jpg
















        Если интеграция не переделывалась на сайте, то адрес выгрузки у вас будет стандартный /bitrix/admin/1c_exchange.php

        Логин и пароль - те, что использует 1С для доступа к сайту.

        Тип обмена и операция - выбираете нужные из списка.

        Если требуется - выбираете файл. Чаще всего сайт работает с архивами. Загружая архив, укажите имя xml файла в архиве.


        При использовании метода get_catalog, сайт отдает товары по одному. Если у вас 1000 товаров, то потребуется как минимум 1000 запросов. Поэтому скрипт не пытается выкачать все товары, а получает только первые 5.

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

        1. Узнать у 1Сников на какой адрес они делают выгрузку
        2. В этот файл добавить логирование всех входящих запросов, например так:
          file_put_contents(__FILE__ . '.log', date('r') . '->' . $_SERVER['REQUEST_URI'] . PHP_EOL, FILE_APPEND);
        3. Устанавливаем константу BX_CATALOG_IMPORT_1C_PRESERVE в true
        4. Выполняем полную выгрузку
        5. Смотрим изменилось ли то, что должно измениться
        6. Смотрим файлы в /upload/1c_catalog
        7. С помощью скрипта по ссылке выше сами проводим выгрузку на тот же адрес, куда выгружает 1С
        8. Смотрим изменилось ли то, что должно измениться
        9. Сравниваем запросы он 1С и от скрипта, должны быть одинаковые
        10. Вручную запускаем скрипт и дебажим, смотрим где какое условие не так как надо отрабатывает и определяем как это исправить

        Стадии обмена

        Обмен идёт всегда в кодировке windows-1251. Всего есть шесть типов запросов в обмене, о них поговорим далее.

        По умолчанию точкой входа является файл /bitrix/admin/1c_exchange.php, все запросы отправляются туда:

        https://example.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth

        Первый запрос всегда checkauth, через HTTP basic authentication передаются логин и пароль, ответ подобен этому:

        success
        PHPSESSID
        c84bba7587de83c2b7f88a837ffc4237
        sessid=641ec5e7f1547d4934458141ec237512
        timestamp=1623238486

        Если удачно, первая строка success. Вторая строка имя куки, третья значение куки. Далее параметры, которые стоит передавать во всех следующих запросах.

        Файлы передаются в теле запроса, на сервере файлы берутся не из $_FILES, а из php://input. То есть данные разделены не как в обычном POST запросе через boundary, а все отправляемые данные это и есть файл.

        Тип sale - импорт и экспорт заказов интернет магазина


        • checkauth проверка авторизации, никаких действий не происходит
        • init удаляет файлы из папки обмена 1c_exchange, проверяет файл .htaccess, устанавливает если требуется режим zip
        • query выгрузка заказов по фильтру, выгружает заказы которые были обновлены после последней выгрузки
        • success после query, устанавливает время окончания последней выгрузки
        • file загрузка файла, если на init было zip=yes, файл должен быть в формате zip. Для старых версий обмена еще проверка валидности xml
        • import только в новой версии распаковка архива. Обработка файла без создания временных таблиц
        • info получение справочников интернет магазина на сайте


        Тип crm - для работы 1С с Битрикс 24


        То же что и sale, не используется zip, возможно сжатие через gz, можно получать конкретные заказы по ID, можно указать дату, начиная с которой выгружать заказы



        Тип catalog - импорт товаров на сайт


        • checkauth проверка авторизации, никаких действий не происходит, в ответе присутствует параметр timestamp
        • init инициализация обмена, удаляет файлы из папки обмена 1c_catalog, проверяет файл .htaccess, устанавливает, если требуется режим zip
        • file загрузка файла, если на стадии init было zip=yes, файл должен быть в формате zip
        • import - импорт данных в несколько шагов:
          1. Если используется zip распаковка
          2. Удаление старых временных таблиц
          3. Создание временных таблиц, вызывается событие OnBeforeCatalogImport1C
          4. Чтение XML и перенос данных во временные таблицы
          5. Создание индексов во временных таблицах
          6. Импорт метаданных
          7. Импорт разделов
          8. Деактивация старых разделов
          9. Импорт товаров
          10. Деактивация старых товаров
          12. Удаление кеша инфоблока, окончание работы, вызов события OnSuccessCatalogImport1C
        • deactivate деактивация старых разделов и товаров на сайте, которые старше чем timestamp. Из 1С на сайт передается timestamp, который был получен в методе checkauth
        • complete событие успешного окончания обмена, запуск события OnCompleteCatalogImport1C

        Именно через привязку к событию OnSuccessCatalogImport1C многие делают доработку импорта, так как на этом шаге можно обратиться к файлу и получить оттуда любое поле. Коллбек принимает два параметра: "Параметры подключения компонента обмена" типа массив и "Полный путь к XML-файлу обмена" типа строка.



        Тип reference - загрузка на сайт справочников (HL блоков)


        • checkauth проверка авторизации, никаких действий не происходит
        • init удаляет файлы из папки обмена 1c_highloadblock, проверяет файл .htaccess, устанавливает, если требуется режим zip
        • file загрузка файла, если на стадии init было zip=yes, файл должен быть в формате zip
        • import импорт данных, в начале обработки данных вызывается событие OnBeforeCatalogImportHL, в конце OnSuccessCatalogImportHL


        Тип get_catalog - экспорт товаров с сайта


        • init проверка авторизации, никаких действий не происходит
        • query получаем файл


        Тип listen - ожидание изменений


        Запрос на ожидание изменений в заказах. Ожидание ответа сервера идет 1 минуту, если были изменения - ответ success, требуется обмен заказами. Если изменений не было, ответ нет, код /code>HTTP 304 Not Modified. Далее 1С снова отправляет запрос с ожиданием изменений.



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

        Поддержка сайта
        22 ноября 2024
        946
        Отключаем ленивую загрузку изображений (lazyload)
        Поддержка сайта
        18 октября 2024
        1601
        Как запретить доступ к сайту для иностранных IP адресов
        Поддержка сайта
        08 октября 2024
        1352
        Кодировка поля "SITE_ID" таблицы "b_abtest&qu...
        Поддержка сайта
        13 августа 2024
        1368
        Как узнать какие таблицы БД в Битрикс имеют большой объем да...
        Поддержка сайта
        08 августа 2024
        1471
        Добавляем тег rel=canonical на страницы сайта Битрикс
        Поддержка сайта
        01 августа 2024
        795
        Как узнать какие свойства инфоблока не заполнены у товаров и...
        Поддержка сайта
        27 мая 2024
        995
        РейтингРунета 2024 обновился
        Поддержка сайта
        08 мая 2024
        741
        Поздравляем вас с Днем Победы!
        Назад к списку


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