Битрикс как работает обмен с 1с
Перейти к содержимому

Битрикс как работает обмен с 1с

  • автор:

Статьи 1С Битрикс | Описание процесса обмена с 1С

Вот алгоритм обмена данными между сервером 1с и битрикс, в случаи если у Вас нет установленной 1с и требуется эмулировать загрузку:

Шаг 1: Заходим по адресу test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth Сервер отвечает: PHPSESSID 123456789 PHPSESSID=123456789 09.01.2018T10:10:10

Шаг 2: Заходим по адресу: test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=init&version=2&PHPSESSID=123456789 Сервер отвечает: zip=yes file_limit=10000 PHPSESSID=123456789 version=2

Шаг 3: Заходим по адресу: test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=catalog.zip&PHPSESSID=123456789 Сервер отвечает: success

ТУТ заходим в папку /upload/1c_exchange/ и кладем туда файл с catalog.zip (в нем уже должен быть import.xml и т.п.)

Третий шаг закончен. Приступаем к шагу 4: Заходим по адресу: test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=catalog.zip&PHPSESSID=123456789 Он ответит progress и описание. Выполняем этот запрос пока он не скажет success или failed

Сервер отвечает: progress Распаковка архива завершена.

Ответ сервера: progress Временные таблицы удалены.

Шаг 7 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Ответ сервера: progress Временные таблицы созданы.

Шаг 8 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Сервер отвечает progress Файл импорта прочитан.

Шаг 9 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Сервер отвечает: progress Временные таблицы проиндексированы.

Шаг 10 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Сервер отвечает: progress Метаданные импортированы успешно.

Шаг 11 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Сервер отвечает: progress Группы импортированы.

Шаг 12 Ещё раз обращаемся по той же строчке: (то есть по строчке http://test.ru/bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml&PHPSESSID=123456789)

Сервер отвечает: progress Деактивация/удаление групп завершено.

и так далее пока сервер не ответит success Импорт успешно завершен.

Благодарю пользователя форума Битрикс — Андрея Николаева, за помощь и разъяснения по данному вопросу на этапе практических тестов.

Протокол обмена с сайтом

Данный открытый протокол разработан компаниями «1С» и «1С-Битрикс».

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

  • выгрузка на сайт торговых предложений (каталогов продукции), данных об остатках на складах (с разбивкой и сводно), данных только о ценах и остатках (без описания номенклатуры);
  • обмен информацией о заказах.

Первый блок обеспечивает публикацию на сайте каталога номенклатурных позиций и данных. Второй блок необходим для передачи с сайта в систему «1С: Предприятие» информации о заказах интернет-магазина, и дальнейшую синхронизацию статусов и параметров заказов.

В обоих случаях инициатором обмена выступает система «1С: Предприятие». Обмен электронными документами осуществляется в соответствии с правилами и форматами, описанными в стандарте CommerceML 2.

При инициализации взаимодействия устанавливается HTTP соединение. Система «1С: Предприятие» запрашивает у сайта необходимые параметры, такие, как максимальный объем пакета, поддержка сжатия и др. На основании этих данных система 1С: Предприятие формирует XML сообщения и передает их на сайт.

Выгрузка на сайт

Данные для публикации на сайте выгружаются одним пакетом.

A. Начало сеанса

Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=checkauth.

  • слово «success»;
  • имя Cookie;
  • значение Cookie.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

B. Запрос параметров от сайта

Далее следует запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=init

  1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
    или
    zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.
  2. file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С: Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

C. Выгрузка на сайт файлов обмена

Затем «1С: Предприятие» запросами с параметрами вида
http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=file& filename=<имя файла>
выгружает на сайт файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST.

В случае успешной записи файла система управления сайтом выдает строку «success».

D. Пошаговая загрузка данных

На последнем шаге по запросу из «1С: Предприятия» производится пошаговая загрузка данных по запросу с параметрами вида http://<сайт>/<путь> /1c_exchange.php? type=catalog& mode=import& filename=<имя файла>

  1. Если в первой строке содержится слово «progress» — это означает необходимость послать тот же запрос еще раз. В этом случае во второй строке будет возвращен текущий статус обработки, объем загруженных данных, статус импорта и т. д.
  2. Если в ответ передается строка со словом «success», то это будет означать сообщение об успешном окончании обработки файла.

Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса. Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

Примеры файлов выгрузки

Обмен информацией о заказах

Заказы, оформленные на сайте, загружаются в систему «1С: Предприятие».

  1. Заказ оформляется на сайте
  2. При передаче в систему «1С: Предприятие» в заказе устанавливается категория «Заказ с сайта».
    При формировании заказа в системе «1С: Предприятие» записываются номер и дата заказа, с которыми он оформлен на сайте. Поиск контрагента осуществляется по ИНН или наименованию, в зависимости от указанных настроек.
  3. При загрузке заказа производится поиск договора с контрагентом. Договор ищется среди существующих договоров с клиентом, с признаком ведения взаиморасчетов по заказам (по указанной в настройках загрузки Организации). Если не находится ни один договор, то создается новый.
  4. При загрузке заказа загружаются все его свойства, переданные с сайта. Свойства ищутся в системе «1С: Предприятие» по наименованию. Если с таким наименованием свойства нет, то заводится новое свойство со значениями типа строка или число.
  5. Заказ может модифицироваться в системе «1С: Предприятие», при этом его изменения будут выгружаться на сайт
  6. Если заказ оплачивается или отгружается в системе «1С: Предприятие», то состояния заказа по оплате и по отгрузке выгружаются на сайт только при полном выполнении операции (полной оплате и полной отгрузке). До этого момента заказ считается не оплаченным и не отгруженным.
  7. При попытке в системе «1С: Предприятие» изменить заказ, по которому произведена оплата или отгрузка, заказ на сайт не загрузится как измененный. При этом пользователь получит об этом сообщение.
  8. После каждой выгрузка заказа на сайт, на стороне сайта определяются значения его категорий (ссылка на категории). Эти значения устанавливаются в системе «1С: Предприятие» так, как они присвоены заказу на сайте

A. Начало сеанса

Выгрузка данных начинается с того, что система «1С: Предприятие» отправляет http-запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=checkauth.

  • слово «success»;
  • имя Cookie;
  • значение Cookie.

Примечание. Все последующие запросы к системе управления сайтом со стороны «1С: Предприятия» содержат в заголовке запроса имя и значение Cookie.

B. Уточнение параметров сеанса

Далее следует запрос следующего вида:
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=init

  1. zip=yes, если сервер поддерживает обмен в zip-формате — в этом случае на следующем шаге файлы должны быть упакованы в zip-формате
    или
    zip=no — в этом случае на следующем шаге файлы не упаковываются и передаются каждый по отдельности.
  2. file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если системе «1С: Предприятие» понадобится передать файл большего размера, его следует разделить на фрагменты.

C. Получение файла обмена с сайта

Затем на сайт отправляется запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=query.

Сайт передает сведения о заказах в формате CommerceML 2. В случае успешного получения и записи заказов «1С: Предприятие» передает на сайт запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=success

D. Отправка файла обмена на сайт

Затем система «1С: Предприятие» отправляет на сайт запрос вида
http://<сайт>/<путь> /1c_exchange.php? type=sale& mode=file& filename=<имя файла>,
который загружает на сервер файл обмена, посылая содержимое файла в виде POST.

В случае успешной записи файла система управления сайтом передает строку со словом «success». Дополнительно на следующих строчках могут содержаться замечания по загрузке.

Примечание. Если в ходе какого-либо запроса произошла ошибка, то в первой строке ответа системы управления сайтом будет содержаться слово «failure», а в следующих строках — описание ошибки, произошедшей в процессе обработки запроса.
Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то будет возвращен html-код.

Процесс обмена Битрикса и 1С

Неопытным разработчикам кажется, что это процесс обмена Битрикса и 1С это очень сложный процесс, но с опытом понимаешь, что это не просто сложно: это вообще полная жесть. Попробую описать словами этот процесс. Добро пожаловать в ад описание обмена с 1с.

Инициатором любого обмена является 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:

После этого 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).

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

success

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

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

Модификация

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

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

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

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

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

Экспорт заказов в 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, то можно отключить проверку источника запроса, для этого нужно выполнить:

Статья будет дополняться по мере появления новой информации и вдохновения.

Битрикс и интеграция с 1С
[краткий ликбез для начинающих]

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

Осталось только загрузить реальный каталог из 1С — это означает, что впереди еще много работы. Придется добиться, чтобы все нужные данные выгружались вообще и выгружались в нужное место. Иначе придется подгонять проект под структуру данных из 1С.

Вопрос интеграции поднимается на каждом более-менее крупном интернет-магазине. Часто разработчикам, не только начинающим, трудно понять, как работает механизм обмена. Полезная информация разбросана по интернету, будет удобно собрать её в одном месте.

Цели статьи

  • Коротко изложить основные возможности обмена и его алгоритм работы;
  • Дать ссылки на официальные и прочие полезные источники;
  • Ответить на частые вопросы;
  • Прояснить, с чего начать интеграцию и как ее успешно завершить.

Стандартный обмен между 1С-Битрикс и 1С

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

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

Что умеет штатный механизм обмена

  • Импорт каталога товаров из 1С на сайт;
  • Экспорт каталога товаров с сайта в 1С;
  • Экспорт заказов с сайта в 1С;
  • Импорт заказов из 1С на сайт;
  • Импорт справочников (highload-инфоблоков) из 1С на сайт.

Полезные ссылки

Алгоритм выгрузки данных на сайт

Инициатором обмена всегда выступает 1С, по соображениям безопасности — даже если сайт взломают, атаковать 1C будет невозможно, так как сайт не умеет обращаться к 1С и вообще ничего не знает про нее.

Обмен работает посредством последовательных http GET/POST запросов от 1С к сайту, к скрипту /bitrix/admin/1c_exchange.php.

Обмен состоит из нескольких ключевых этапов

  • Авторизация 1с на сайте;
  • Загрузка файлов из 1с на сайт;
  • Чтение xml файлов во временную таблицу;
  • Обработка данных.

Этапы загрузки, чтения и обработки — делаются за множество шагов. Время длительности каждого шага задается в настройках обмена на стороне сайта. На стороне 1С ограничение на длительность шага должно совпадать.

Процесс выгрузки данных из 1С на сайт можно представить в виде следующей схемы

Схема процесса выгрузки данных из 1С на сайт

Полезные ссылки

Формат данных для обмена с 1С

1C загружает на сайт xml файлы, и картинки при импорте товаров.

Если включено zip-сжатие в настройках обмена на стороне сайта (по-умолчанию включено), то 1C загружает один архив, иначе все файлы по отдельности.

Формат xml файлов

Информация в файлах структурирована в соответствии со стандартом обмена коммерческой информацией CommerceML2.

Информация о товарах передается на сайт в следующих файлах

    — товары, группы (разделы инфоблока), типы цен, склады, свойства товаров и единицах измерения; — торговые предложения (ТП) товаров и их свойствах; — цены ТП; — остатки ТП; — пользовательские справочники (HL-инфоблоки).

Файлы import.xml и offers.xml содержат описания свойств, типов цен, и прочую информацию, которая относится в равной степени ко всем товарам/ТП.

Если каталог большой, в целях оптимизации, описания выгружаются в отдельных “заголовочных” файлах. Это такие же файлы import.xml и offers.xml, только не содержат ничего кроме описаний. В таком случае заголовочные файлы обрабатываются только в самом начале обмена.

Информация о заказах передается на сайт в следующих файлах

    — документы (заказы); — контрагенты (пользователи-покупатели).

Полезные ссылки

Куда на сайт загружаются файлы выгрузки

В папку /upload/1c_catalog/. Перед каждым обменом эта папка очищается. То есть в этой папке всегда находятся файлы последнего обмена.

Можно включить "режим отладки” обмена — отключить перезапись файлов в папке 1c_catalog. Таким образом можно отключить удаление файлов выгрузки после завершения обмена.

Для этого нужно объявить константу в файле dbconn.php:

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

Включенный режим отладки обмена

Чем больше число у папки, тем новее эта папка.
Однако, самая новая папка всегда будет без чисел, и только со следующим обменом она будет переименована.

Важно помнить, что с включенным режимом отладки очень быстро идет расход места на диске. Поэтому после отладки следует отключить лог и удалить все лишние папки обмена.

Что нужно для обмена на стороне сайта

  • редакция битрикса “Малый бизнес” или “Бизнес”
  • создать пользователя и группу “Обмен с 1С” для обмена, настроить права
    • разрешить группе выполнять выгрузку товаров/заказов (в настройках параметров)
    • разрешить группе доступ на чтение папки /bitrix/admin/

    Что нужно для обмена на стороне 1С

    Полезные ссылки

    Структура каталога в 1С и на сайте

    Что делать если структура каталога в 1С не совпадает со структурой на сайте?

    В 1С можно задать какие товары и разделы выгружать.

    Часто в 1С товары хранятся не так, как они будут выводиться на сайте, поэтому можно на стороне 1С настроить виртуальный каталог для выгрузи на сайт: создать нужную структуру разделов и разложить по ним товары.

    Так же можно задать условия отбора товара (не все товары нужны на сайте) для выгрузки на сайт и свойства (в 1С много св-в, не все нужны на сайте).

    Виды выгрузок из 1С

    Полная выгрузка

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

    • Выгружаются все товары.
    • Картинки выгружаются только у новых или измененных товаров.

    Краткая выгрузка

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

    Полная принудительная выгрузка

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

    Обычно используется только при отладке обмена.

    С чего начать интеграцию c 1C

    Если вы делаете новый сайт и планируете интеграцию с 1С в дальнейшем, то первым следует установить битрикс и сделать тестовый обмен. Вот, что это даст:

    • Будет создан тип иблока;
    • Будет создан иблок;
    • Будут созданы св-ва и справочники;
    • Будут созданы разделы каталога;
    • Будут созданы элементы каталога;
    • Будут созданы торговые предложения.

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

    Как завершить интеграцию

    Сопоставить структуры данных на сайте со структурой в 1С — вот главная цель интеграции.

    Чтобы успешно завершить интеграцию, когда у вас уже есть полностью работающий проект, с актуальными данными, то нужно добиться, чтобы выгрузка из 1С проиcходила:

    • В существующий инфоблок;
    • В существующие св-ва;
    • В существующие разделы инфоблока;
    • В существующие товары и торговые предложения;
    • В существующие типы цен.

    Все эти задачи решаются путем настройки одинаковых идентификаторов (XML_ID), то есть у вас должны совпадать все внешние коды на сайте с внешними кодами из 1С.

    Таким образом, если вы сначала сделали сайт, а потом решили прикрутить к нему обмен с 1С, то нужно будет получить все XML_ID из 1С и обновить их на сайте (написать служебный скрипт для этих целей).

    Так как на стороне 1С часто нет возможности поменять эти коды (по опыту общения с программистами 1С). Толковый 1сник может сформировать csv файл со списком разделов и кодами в 1С, далее надо обновить эти коды на сайте.

    Подведем итоги

    Начинать разработку сайта с настройки обмена с 1С по разным причинам не имеет смысла.

    Однако, если вы заранее знаете, что вам предстоит делать интеграцию — начните с изучения файлов выгрузки и тестовой выгрузки на сайт «как есть».

    Чем раньше вы поймете, что предстоит дорабатывать в обмене, чтобы все работало как надо, тем лучше.

    Скоро я планирую подготовить статьи по отладке выгрузки и кастомизации. Не переключайтесь.

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *