Увидеть файл заказов который передаст Битрикс в 1С

Просмотров: 27707

Для диагностики обмена заказов, интернет-магазина на 1С Битрикс с 1С Управление Торговлей, нужно увидеть xml файл с заказами который сформирует сайт для следующей передачи в 1С. Есть два способа

Полуофициальный способ

Заключается в скачивании файла диагностики с официальной документации Битрикс. Просто закидываете файл в корень сайта, авторизуетесь администратором и открыаете этот файл в браузере

Увидите вот такое окно: в котором можно открыть XML файл заказов

Скачать скрипт диагностики

Но данный скрипт не работает с Битрикс редакций выше 14.4. Лично у меня, выдает вот такую адракадабру. Дело в том, что скрипт не учитывет новый функционал заказов

Думаем как 1С УТ

По сути, метод заключается в иммитации работы 1С. Управление торговлей, просто выполняет ряд запросов к сайту, к скрипту 1c_exchange.php. В ответ получает xml файл с заказами в виде потоковых данных. Нам нужно, просто сымитировать эти запросы.

В командной PHP строке выполняем команды:
COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y" ); COption::SetOptionString("sale", "secure_1c_exchange", "N" );

Заходим на сайт администратором и последовательно выполняем запросы, не меняя окна браузера

http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=init
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=query

После этого получим xml заказа прямо в окне браузера

Если не получилось по второму способу

Если вместо xml выдало ошибку доступа. Нужно чуть изменить ссылки. Однако скажу точно (проверено прямо перед написанием заметки). У меня второй способ сработал сразу на версии битрикс 16.5 со всеми обновлениями на 10 ноября 2016 года

Однако если нет:
Сначала нужно выполнить
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth
В четвертой строке сайт вернет токен(session id)


затем
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=init + "&" + токен + "&version=2.08"

затем
http://ВАШ_САЙТ/bitrix/admin/1c_exchange.php?type=sale&mode=query + "&" + токен

Вот в общем-то и все. Диагностируйте с удовольствием!

Михаил Базаров 14.11.2016
Временное включение старого режима обмена
Выполнить PHP команду

Цитата


COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y" ;) ; COption::SetOptionString("sale", "secure_1c_exchange", "N" ;) ;
Алексей Микрюков 23.01.2017
НА 15.5.9 не работает.
И еще пишите более подробно а то не понятно что такое (+ "&" + токен + "&version=2.08" ). Вот мне как новичку хоть об стену убейся ничего не понятно
Михаил Базаров 24.01.2017
Цитата
Алексей Микрюков пишет:
НА 15.5.9 не работает.
И еще пишите более подробно а то не понятно что такое (+ "&" + токен + "&version=2.08" ). Вот мне как новичку хоть об стену убейся ничего не понятно
Первый способ работает на 15-ой и на 14-ой версии. Что-то делаете не так.
А по поводу более понятного написания, учту
Сергей Милин 15.03.2018
В новых версиях старый эмулятор практически бесполезен даже с переводом на классическую схему работы.
Пытался разобраться. кое-как вкурил что в этом мусоре высматривать благодаря статье тут, потом перелапатя кучу форумов.
Начал пробовать по вашему методу с токеном, в 17.8 - матерится на запрет доступа. Пришлось откапывать дистрибьютив 16 и лишь  тогда заработало и я победил проблему.

P.S В новых версиях вводить команду отката надо после каждого обмена т.к перепрыгивает на новую схему. а не один раз
Михаил Базаров 15.03.2018
Цитата
Сергей Милин написал:
В новых версиях старый эмулятор практически бесполезен даже с переводом на классическую схему работы.
Пытался разобраться. кое-как вкурил что в этом мусоре высматривать благодаря статье  тут , потом перелапатя кучу форумов.
Начал пробовать по вашему методу с токеном, в 17.8 - матерится на запрет доступа. Пришлось откапывать дистрибьютив 16 и лишь  тогда заработало и я победил проблему.

P.S В новых версиях вводить команду отката надо после каждого обмена т.к перепрыгивает на новую схему. а не один раз
Да, одноразовая метода. Проверил, обменялся с 1С и снова откатывать.
Николай Сухих 22.01.2019
Как вернуть заказам UPDATED_1C = "N" чтобы 1ц тоже выгрузила их после моих тестов?
Николай Сухих 22.01.2019
Цитата
Николай Сухих пишет:
Как вернуть заказам UPDATED_1C = "N" чтобы 1ц тоже выгрузила их после моих тестов?
Как то так: (:

Код
$dbSales = CSaleOrder::GetList(
    array(
        "ID" => "DESC"
    ),
    array(
        "UPDATED_1C" => "Y"
    )
);

while ($aSales = $dbSales->Fetch()) {
    $arFields = array(
        "UPDATED_1C" => "N"
    );
    CSaleOrder::Update($aSales["ID"], $arFields);
}
Сергей Кондратьев 11.07.2019
Есть обработка для 1С, которая позволяет посмотреть файл заказов: https://infostart.ru/public/1080600/

Блог-note: заметки разработчика

Создание блога с комментариями, оценками и просмотрами на сайте с 1С-Битрикс

Если на вашем сайте требуется создание раздела с блогом или новостями, статьями. Записям в которых, посетители смогу ста...

Перенос Битрикс сайта с хостинга на хостинг, инструкция

Достаточно часто спрашивают как перенести сайт работающий на 1С Битрикс с одного хостинга на другой, как раз подвернулас...

Вывод элементов с помощью API битрикс

Иногда, выводить элементы инфоблока с помощью компонентов, может оказаться избыточным. Например, если нужно вывести элем...

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

Достаточно частая задачка для каталога или интернет-магазина: вывести список производителей с подробными описаниями, а т...

Отключить поиск по описаниям товаров в Битрикс

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

Данные о заказе текущего пользователя

Иногда нужно получить данные о заказе текущего пользователя. Не через компонент, а непосредственно через API Битрикс. Ва...

Смена вида карточек товаров в catalog.section с иммитацией AJAX

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

Уникальная СЕО информация для каждого торгового предложения в каталоге 1С-Битрикс

Задача: реализовать уникальную мета-информацию для каждого SKU в каталоге. У каждого ТП должны быть свои: заголовок h1, ...

Установить цену товара из свойства инфоблока

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