Список ссылок по теме:
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&CHAPTER_ID=1158
Как сэкономить на месте и ускорить выгрузку из 1С
http://dev.1c-bitrix.ru/learning/course/index.php?COURSE_ID=42&LESSON_ID=6626
Итак, как все сказанное выше на словах выглядит технически:
1С отправляет http-запрос вместе с http-авторизацией следующего вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=checkauth
Сайт отвечает тремя строками (с разделителем "\n"):
1. слово "success";
2. имя Cookie;
3. значение Cookie.
Примечание:
Все последующие запросы к сайту сопровождаются выставлением со стороны 1С имени и значения Cookie, полученными по команде "checkauth".
Следующим этапом 1С запрашивает у сайта некоторые параметры, чтобы в дальнейшем вести обмен:
http://<сайт>/bitrix/admin/1c_exchange.php?type=<режим>&mode=init (режимы: catalog или sale, для выгрузки товаров и загрузки заказов соответственно)
В ответ сайт выдает две строчки:
1. zip=yes/no, сообщая о поддержке обмена в zip-формате.
2. file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если размер файла больше, то он должен быть порезан на части.
Когда соединение установлено и параметры определены, начинается основная обмена файлами CommerceML. В зависимости от режима обмена 1С:
а) передает сайту данные по товарной номенклатуре
http://<сайт>/bitrix/admin/1c_exchange.php?type=catalog&mode=file&filename=<имя файла>
1C загружает на сервер файлы обмена в формате CommerceML 2, посылая содержимое файла или его части в виде POST. В случае успешной записи файла сайт выдает "success".
б) запрашивает с сайта заказы покупателей
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=query
Сайт отдает заказы в формате CML 2. В случае успешного получения и записи заказов в 1С совершается запрос вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=success
в) передает сайту данные о результатах обработки ранее полученных заказов
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=file&filename=<имя файла>
загружает на сервер файл обмена, посылая содержимое файла в виде POST. В случае успешной записи файла 1С-Битрикс выдает "success". Дополнительно на следующих строчках могут содержаться замечания по загрузке.
Если в ходе какого-либо запроса произошла ошибка, то ответ системы 1С-Битрикс будет иметь вид: в первой строке слово «failure», а на следующих — описание ошибки, произошедшей в процессе обработки запроса. Если произошла необрабатываемая ошибка уровня ядра продукта или sql-запроса, то в таком случае будет возвращен html-код с сайта.
Вот такая нехитрая, но надежная процедура обмена, которая, повторюсь, основана на трех китах:
- Обмен данными по протоколу HTTP
- Инициатор обмена всегда 1С
- Отрытый формат и протокол обмена