Для диагностики обмена заказов, интернет-магазина на 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 + "&" + токен
Вот в общем-то и все. Диагностируйте с удовольствием!

Выполнить PHP команду
Цитата |
---|
COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y" ![]() ![]() |
И еще пишите более подробно а то не понятно что такое (+ "&" + токен + "&version=2.08" ). Вот мне как новичку хоть об стену убейся ничего не понятно

Цитата |
---|
Алексей Микрюков пишет: НА 15.5.9 не работает. И еще пишите более подробно а то не понятно что такое (+ "&" + токен + "&version=2.08" ). Вот мне как новичку хоть об стену убейся ничего не понятно |
А по поводу более понятного написания, учту
Пытался разобраться. кое-как вкурил что в этом мусоре высматривать благодаря статье тут, потом перелапатя кучу форумов.
Начал пробовать по вашему методу с токеном, в 17.8 - матерится на запрет доступа. Пришлось откапывать дистрибьютив 16 и лишь тогда заработало и я победил проблему.
P.S В новых версиях вводить команду отката надо после каждого обмена т.к перепрыгивает на новую схему. а не один раз

Цитата |
---|
Сергей Милин написал: В новых версиях старый эмулятор практически бесполезен даже с переводом на классическую схему работы. Пытался разобраться. кое-как вкурил что в этом мусоре высматривать благодаря статье тут , потом перелапатя кучу форумов. Начал пробовать по вашему методу с токеном, в 17.8 - матерится на запрет доступа. Пришлось откапывать дистрибьютив 16 и лишь тогда заработало и я победил проблему. P.S В новых версиях вводить команду отката надо после каждого обмена т.к перепрыгивает на новую схему. а не один раз |
Цитата |
---|
Николай Сухих пишет: Как вернуть заказам 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); } |