Пользователь 111813 Постоянный посетитель Сообщений: 162 |
#1 06.02.2015 12:41:56 Здравствуйте. Мы используем два механизма обмена с 1С — один от Битрикса (для обмена заказами) и другой от сторонней компании (обмен товарами). При обмене заказами битрикс ставит флаг использования новой версии обмена, и при обмене товарами (модуль от сторонней фирмы) выпадается ошибка «Ошибка проверки источника запроса. Обновите модуль обмена или отключите проверку в настройках компонента». Далее я выполняю следующие команды, что бы Битрикс воспринял обмен по старому формату (в этом случае обмен проходит нормально. но после обмена заказами снова выдаётся ошибка и необходимо заново вызывать данные команды)
Можно ли сделать, что бы Битрикс так не капризничал? Сильно ли изменился новый механизм обмена и на сколько сложно страрый обмен переделать под новый обмен? |
||
Александр Денисюк
Администратор Сообщений: 4928 |
#2 06.02.2015 15:07:34
Новый обмен несовместим со старым. Изменились http запросы. Появились критичные параметры session id + № версии. |
||||
Александр Денисюк, а можете подсказать как долго битрикс продолжить поддерживать старый обмен? Просто может получиться так, что если мы останемся на старом обмене, то в какой-то момент Битрикс резко прекратит поддержку и де-факто мы останемся не с чем |
|
Юрий Волошин
Администратор Сообщений: 1376 |
#4 06.02.2015 16:00:09
Мы не можем точно сказать срок такой поддержки, достаточно много клиентов использует предыдущий обмен, и мы его будем поддерживать продолжительное время. Но риск остается, что в какой та момент времени, пусть не завтра, обмен может перестать работать. Рассмотрите все-таки возможность перехода, это изменение сделано по причине безопасности, а передаются все-таки коммерческие данные. |
||
Добрый день |
|
Александр Денисюк
Администратор Сообщений: 4928 |
#6 24.02.2015 11:17:07
Все актуальные модули тут http://1c.1c-bitrix.ru/ecommerce/download.php Новый модуль — это модуль, который 4 версии |
||
Пользователь 426591 Заглянувший Сообщений: 2 |
#7 17.12.2015 19:28:54
На главной странице! 1с-битрикс написано что интеграция 1С и 1с- Битрикс доступна из коробки! |
||
Пользователь 506671 Заглянувший Сообщений: 1 |
#9 27.02.2016 17:45:34
УТ10.3 модуль и 5.0.0.5 и 6.0.0.1, а ошибка все та же — «обновите модуль» |
||||
Пользователь 428983 Заглянувший Сообщений: 9 |
#10 13.08.2016 07:09:51 Доброго здравия! Модуль 4.0.5.1 будет работать с Управление сайтом 16.0.8? В логах обнаружена ошибка: Ошибка Скажите, как можно запустить скрипт?
|
||
Командная php строка там выполнить этот код |
|
Пользователь 428983 Заглянувший Сообщений: 9 |
#12 15.08.2016 11:39:42
Владимир, благодарю за ответ, но я скорее программист 1С, чем web кодер, даже не представляю, как вызвать php строку. Подскажите, пожалуйте, ссылкой на какую-нибудь инструкцию? |
||
Не помогло, ни запуск скрипта, ни обновление до версии 6. На что может влиять данная ошибка? |
|
Пользователь 930959 Заглянувший Сообщений: 2 Web Developer |
#15 28.03.2017 18:51:56
Спасибо. Работает, помогло. |
||
В 1С используется стандартный механизм обмена данными с сайтом. Битрикс 17.0.15, 1С 11.3.4.93. С ошибкой при отправке заказов на сайт «Ошибка проверки источника запроса. Обновите модуль обмена или отключите проверку в настройках компонента» мы разобрались. Как-то можно привести в соответствие встроенный модуль обмена с сайтом и битриксовый, чтобы обмен происходил по новому формату без применения дополнительного модуля обмена от Битрикс? |
|
Пользователь 1392443 Заглянувший Сообщений: 2 |
#17 26.10.2017 15:31:27
+1 |
||
Добрый день. Используем облачную версию УНФ и 1С управление сайтом «Малый бизнес». За обновление облака следит 1С, за обновлением сайта — я. Все обновляется, но с июля месяца у нас перестал работать обмен заказами и товарами с сайта. Ранее все работало, что сейчас происходит не пойму. ___________________________________________________________________ Интерактивный обмен В том числе для каталога Основной каталог товаров: 10/26/2017 9:08:14 PM Выгрузка на сайт завершилась с ошибками. __________________________________________________________________________ Что делать? |
|
Пользователь 63774 Посетитель Сообщений: 47 |
#19 17.07.2018 16:24:33 Такая же проблема:
Версия модуля обмена 7.0.1.6
тоже не помогает:( |
||||
Пользователь 4790846 Заглянувший Сообщений: 1 |
#21 22.12.2021 19:31:41 А как импортировать reference, интересно, через модуль 1с_exchange если на стороне 1с не отправляется сессионная кука, а в компоненте catalog.import.hl лежит потрясающее условие elseif(!check_bitrix_sessid()), а в коде check_bitrix_sessid идет безусловное сравнение либо с $_REQUEST[<sessid (по умолчанию)>] либо со значением заголовка X-Bitrix-Csrf-Token. И ЭТО ОТКЛЮЧИТЬ НЕЛЬЗЯ НИКАК, кука не отправилась — хоть оботправляйся этот токен, bitrix_sessid() ему никогда соответствовать не будет!!!!! |
При выборе редакции 1С-Битрикс Заказчики часто решают, что полная редакция «Бизнес» им не нужна, и останавливаются на редакции «Малый бизнес».
Однако, такое решение имеет ряд ограничений:
- нельзя добавлять несколько видов цен. И скидки тоже нельзя. Если вы работаете с оптовиками или имеете партнерскую программу, эта редакция не для вас.
- в системе допустим только 1 склад. Если у вас несколько магазинов или точек выдачи, придется покупать «Бизнес».
- нельзя работать с наборами и комплектами. А это очень удобная штука в сочетании со складским учетом.
- не получится продавать электронный контент. Так что для торговли книгами, музыкой или ПО тоже не годится.
- еще еще ряд ограничений, не столь важных.
Также при интеграции данной версии с 1С можно столкнуться с очень распространенными проблемами. Что это за проблемы и как их решить с минимальными затратами:
I. «Ошибка импорта метаданных. Количество импортированных складов превышает разрешённое для данной редакции».
Тут все понятно из самой ошибки. Даже если первичная выгрузка прошла, но в системе присутствует несколько складов, то обновление товаров работать не будет. Если вам требуется несколько складов в системе, то придется переходить на редакцию «Бизнес». Если достаточно одного, то необходимо сделать следующее:
- проверить, что в выгрузке из 1С упоминается только один склад. При необходимости убрать из выгрузки дополнительные склады.
- проверить, что в Битрикс указан только один склад. При необходимости удалить лишние.
- убедиться, что внешний код склада в Битрикс совпадает с кодом склада в выгрузке. При необходимости указать этот код в настройках склада. Если этого не сделать, Битрикс будет воспринимать склад в выгрузке как новый, и выдаст ту же ошибку.
II. «Ошибка проверки источника запроса. Обновите модуль обмена или отключите проверку в настройках компонента».
Такое часто случается, если в 1С используется старый модуль для обмена. По-хорошему здесь необходимо обновить модуль обмена в 1С, но если это по каким-то причинам невозможно или ошибка не пропадает, то можно отключить проверку. Для этого идем в файл /local/php_interface/init.php и добавляем код:
COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y");
COption::SetOptionString("sale", "secure_1c_exchange", "N");
Код принудительно переведет компонент обмена на устаревшую версию, и ошибка пропадет.
Всем рабочих сайтов!
Ошибка при синхронизации МойСклад и Битрикс
Задача заказчика
Все работало, потом резко перестало. Кроме стандартного обмена, еще есть скрипт, который особым образом обрабатывает новые товары (он работает, его не трогаем). Не передаются остатки и цены.
сама ссылка /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml
Ответ поддержки МойСклад
У вас ошибки при обмене. Ошибка на стороне интернет магазина: Server returned HTTP response code: 504 for URL Такая ошибка может быть при проблемах на стороне сайта или хостинга. Либо не проходит обращение к сайту по запросу, либо не хватает каких-то прав
Решение
Ошибка «Остатки: Получен ответ на запрос. Отправлен каталог товаров. Отправлены остатки. Ошибка на стороне интернет магазина: Server returned HTTP response code: 504 for URL «
при переходе по ссылке /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml выдается следующая ошибка «failure
Ошибка проверки источника запроса. Обновите модуль обмена или отключите проверку в настройках компонента. «
Необходимо обновить модуль обмена со страницы http://1c.1c-bitrix.ru/ecommerce/download.php или как он просит отключить проверку командами
COption::SetOptionString("catalog", "DEFAULT_SKIP_SOURCE_CHECK", "Y"); COption::SetOptionString("sale", "secure_1c_exchange", "N");
Данные настройки — служебные и их нет в виде опций в настройках модуля. Поэтому их нужно установить программно из битрикс Настройки -> Инструменты -> Командная PHP-строка -> Выполнить или прописав в коде вашего сайта.
После выполнения последних команд и при переходе по ссылке /bitrix/admin/1c_exchange.php?type=catalog&mode=import&filename=import.xml выдается информация «progress Временные таблицы созданы.» означающая, что ошибка побеждена
Ошибка «Остатки: Получен ответ на запрос. Отправлен каталог товаров. Отправлены остатки. Превышен лимит попыток проверки статуса отправки каталога (5)»
Данная ошибка означает, то что когда сервис МойСклад посылает на наш сайт файлы с остатками и каталогом, сайт должен отдавать ответы на запрос, но этого не происходит. Далее, запрос посылается повторно и снова без ответа. После 5 повторений этой ситуации обмен прекращается. Искать решение данной проблемы нужно на стороне сайта или сервера, на котором он расположен.
Вероятнее всего ресурсов на стороне битрикса недостаточно и в логи сервера падает ошибка «client request body is buffered to a temporary file»
скорее всего размер загружаемого файла больше, чем буфер памяти, установленной для закачки файлов Нужно настроить переменную client_body_buffer_size 256м
Напиши в тех поддержку сервера к сис админам. Пусть посмотрят логи и поправят.
Тех поддержка ответила что данный параметр установлен client_body_buffer_size 256м и увеличили time-out до 180, т.к. в логах ошибка Timeout waiting for output from CGI script
Проблема не ушла. Принято решение, что данная проблема связана с сервером и с его настройками. Проверил производительность конфигурации. На 13.06.2018 16:19:27 составляет 2.42 из 30 Нужно настраивать сервер под битрикс или переезжать на новый vps сервер и ставить Web окружение битрикс. Тут необходимы силы системного администратора. Поиграть с настройками сервера и по изучать логи
Изменения протокола обмена между 1С-Битрикс и 1С Предприятие
Вот такую веселую ошибку при обмене заказами могут наблюдать Битрикс-администараторы, накатившие свежие обновления на Битрикс, но не обновившие модуль обмена на стороне 1С
failure Ошибка проверки источника запроса. Обновите модуль обмена.
Видимо, битриксоиды отказались от поддержки ранее описанного ими же здесь протокола обмена:
http://dev.1c-bitrix.ru/api_help/sale/orders_protocol.php
Напомню, каким раньше был протокол:
- Обмен заказами начинается с того, что 1С посылает http-запрос вместе с http-авторизацией следующего вида: http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=checkauth
На этот запрос система 1С-Битрикс отвечает тремя строками (используется разделитель строк «n»):
- слово «success»;
- имя Cookie;
- значение Cookie.
Примечание:
все последующие запросы к 1С-Битрикс сопровождаются выставлением со стороны 1С имени и значения Cookie, полученными по команде «checkauth».- Далее следует запрос 1С вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=initВ ответ 1С-Битрикс выдает две строчки:
- zip=yes, если сервер поддерживает обмен в zip-формате. В этом случае файлы на следующем шаге должны быть упакованы в zip-формате
или
zip=no, в таком случае файлы не должны быть упакованы, а передаются каждый по отдельности.- file_limit=<число>, где <число> — максимально допустимый размер файла в байтах для передачи за один запрос. Если размер файла больше, то он должен быть порезан на части.
- Затем отправляется запрос вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=queryСайт отдает заказы в формате CML 2. В случае успешного получения и записи заказов в 1С совершается запрос вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=success- Затем из 1С отправляется запрос вида:
http://<сайт>/bitrix/admin/1c_exchange.php?type=sale&mode=file&filename=<имя файла>
который загружает на сервер файл обмена, посылая содержимое файла в виде POST.
Конечно, странно, что сейчас битриксоиды полностью отказались от поддержки модуля обмена, который идет в 1С УТ 11 без дополнений
Что делать, если такое произошло на вашем проекте с ранее настроенной интеграцией? Конечно, если интеграция вашего сайта сделана без кастомизации на стороне 1С, проще всего накатить на 1С свежее битриксовое дополнение. Что же делать, если модуль обмена на стороне 1С у вас кастомизирован, и в ваши планы сейчас не входит делать всю работу на стороне 1С заново на основе нового модуля обмена (а ее придется делать заново – изменения модуля обмена глубоки, и обычным слиянием с использованием 1С-совской системы контроля версий тут не обойдешься — проверила), тогда проще использовать на стороне сайта модуль обмена, выдранный из старой версии Битрикс.
Я думаю, каждый, кто захочет сделать себе деградацию модуля обмена на стороне Битрикс – сделает ее. А я сейчас расскажу, как сделать, чтобы ваш модуль обмена на стороне сайта был зафиксирован, никогда не обновлялся, не преподносил сюрпризов вашей кастомной 1С-ке при сохранении возможности обновления всех остальных модулей.
Идем в папку /bitrix/components/bitrix/ (на сайте, на котором обмен уже настроен и версия обмена вас устраивает) и копируем компоненты обмена
catalog.export.1c
catalog.export.1c
sale.export.1c
в свое пространство имен. Соответсвенно я копирую их в папку
/local/components/bedrosova/
Далее нам необходимо скопировать классы обмена. Мы не будем их наследовать в этот раз, а сделаем копии. Заводим свой файлик, не важно по сути, где он будет лежать и как называться, к примеру, можно положить его в /local/php_interface/lib/exchange.php
Открываем файл /www/bitrix/modules/iblock/classes/general/cml2.php и копируем класс class CIBlockCMLImport в свой файлик с другим именем, например с именем CIBlockCMLImport2, аналогично поступаем с файлом CIBlockCMLExport из того же файла.
Аналогично поступаем с классом CAllSaleExport из файла /bitrix/modules/sale/general/ export.php и с классом CSaleExport из /bitrix/modules/sale/mysql/export.php (делаем ему class CSaleExport2 extends CAllSaleExport2)
Далее в наших компонентах обмена из нашего пространства имен подключаем наш файл с нашими классами-копиями, после чего заменяем в компонентах все вызовы CIBlockCMLImport, CIBlockCMLExport и CSaleExport на вызовы CIBlockCMLImport2, CIBlockCMLExport2 и CSaleExport2
После этого идем в /bitrix/admin/ содаем там новый файл 1c_exchange2.php, копируем туда содержимое файла /bitrix/modules/sale/admin/1c_exchange.php
Заменяем в нашем файле /bitrix/admin/1c_exchange2.php вызовы стандартных компонентов битрикс bitrix:sale.export.1c, bitrix:sale.export.1c и bitrix:catalog.export.1c на вызовы наших кастомных (я заменяю на bedrosova:sale.export.1c, bedrosova:sale.export.1c и bedrosova:catalog.export.1c), прописываем в 1С путь к нашему скрипту обмена /bitrix/admin/1c_exchange2.php
Наслаждаемся!
Теперь можем спокойно обновлять битрикс, и не ждать сюрпризов по части обмена с 1С.
Примечание! Наши скопированные классы продолжают использовать стандартные языковые файлы.