О web-разработке
и даже немного больше...

«Не удалось установить соединение с сервером. Проверьте …».

Интеграция 1С и Bitrix не всегда проходит гладко, даже можно сказать что практически всегда возникают разного рода «подводные камни», с которыми приходится бороться. Вроде сделали всё по документации, но частенько можно столкнуться с разного рода ошибками. Довольно распространённая из них – появление при попытке соединения модуля обмена с сайтом, сообщение вида: «Не удалось установить соединение с сервером. Проверьте имя пользователя и пароль».

Решение этой проблемы может быть разным, как на стороне 1С, так и на стороне сайта. По этой причине решил сделать вроде некого чек-листа, который позволит пройтись просмотреть каждый из пунктов и решить эту проблему без длительных поисков по разным ресурсам.

1. На компьютере, где запускается обмен с 1С — проверяем доступность сайта. 1C использует настройки подключения браузера Internet Explorer, поэтому стоит проверить открывается ли ваш сайт в этом браузере. Добавьте исключение для сайта – бывает соединение блокируется.

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

3. Очень часто бывает проблема с настройками временной зоны сервера базы данных. Т.е. временная зона базы данных должна быть выставлена правильно. Лечится очень просто, открываем файл /bitrix/php_interface/after_connect.php, и дописываем туда строку:

$DB->Query("SET LOCAL time_zone='".date('P')."'");

4. Ещё одна банальная причина – неправильный адрес указан в настройках подключения. Часто бывает ошибка именно в недоступности ссылки по http/https. Путь подключения по умолчанию должен быть такой:

рабочий_протокол://домен_вашего_сайта/bitrix/admin/1c_exchange.php

5. Если вышеуказанное не помогло, так же бывает ошибка может возникать при работе PHP в режиме CGI. В некоторых случаях бывают проблемы с передачей данных авторизации HTTP в PHP. Посмотреть в каком режиме отрабатывает PHP можно через функцию phpinfo() – если в режиме CGI, то будет «Server API: CGI». Простое решение – добавить в .htaccess строки вида:

RewriteEngine on
RewriteRule .* - [E=REMOTE_USER:%{HTTP:Authorization},L]

Далее в файле Bitrix/admin/.htaccess следует закомментировать строки, отключающие mod_rewrite:

#<ifmodule mod_rewrite.c="">
# RewriteEngine Off
#</ifmodule>

После этого в файле bitrix/php_interface/dbconn.php добавляем строки:

$remote_user = $_SERVER["REMOTE_USER"] 
? $_SERVER["REMOTE_USER"] : $_SERVER["REDIRECT_REMOTE_USER"];
$strTmp = base64_decode(substr($remote_user,6));
if ($strTmp)
    list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', $strTmp);

Стоить помнить, что описанное в этом пункте – это так называемый «костыль», по-хорошему лучше понастроить сервер под Bitrix или обратиться к тех поддержке хостинга.
Тут собраны самые распространённые причины данного вида ошибки. Если вы решили свою проблему иным путём, делитесь им в комментариях.

Опубликован: 29.05.2022 г.

См. также:

Получение Email-адреса покупателя в заказе (Bitrix D7)
Работа с URL-адресами в Bitrix D7
Работа с купонами в Bitrix API
Добавляем пункт меню для списков в админке Битрикс
Диалоговые окна в Bitrix API
Создание инфоблока при установке модуля
Создание копии корзины из заказа на Bitrix D7
Создание копии заказа в Bitrix D7

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

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

Комментарии
  • Загрузка...
Друзья сайта