gifts2017

Отладка обмена с web-сайтом на Битрикс

Опубликовал Виталий Гуляев (vital1c) в раздел Обмен - Интеграция с WEB

Часто возникает необходимость отладки обмена между 1С и web-сайтом на Битрикс. Разберемся, какие инструменты есть для этого...

Мне часто приходится заниматься интеграцией 1С с интернет-магазинами на Битрикс, и часто возникают непонятные ситуации при обмене на стороне сайта, и без пошаговой отладки много времени уходит на выяснение причин этих ошибок...

Расскажу, чем пользуюсь я в этих случаях.

Что нам понадобится:

1. Вирутальная машина битрикс, я пользуюсь версией под VirtualBox

2. Среда разработки PHP, я пользуюсь phpStorm

Теперь что делаем:

1. Устанавливаем VirtualBox и запускаем в нем скачанную виртуальную машину Битрикс, предварительно настроив сетевое подключение:

После запуска виртуальной машины мы увидим ip адрес виртуальной машины, с помощью этого адреса и зайдем на свеже развернутый сайт

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

Пока резервная копия разворачивается, нужно включить модуль xdebug в вирутальной машине, он там уже есть, просто отключен. Заходим в консоль BitrixVM под root (стандартный пароль bitrix).  И добавляем в файл  /etc/php.d/15-xdebug.ini следующий текст:

 

zend_extention=/usr/lib64/php/modules/xdebug.so
xdebug.remote_enable=on
xdebug.remote_host=192.168.99.150  // ip адрес вашего компьютера
xdebug.remote_port=9000
xdebug.idekey=phpstorm

затем? после восстановления резервной копии сайта, нужно перезагрузить виртуальную машину.

для проверки правильности работы xdebug можно посмотреть информацию в /phpinfo.php, должно быть так:


Теперь настроим PhpStorm. Создаем новый проект из существующих файлов: меню File - New project from existing files... и выбираем расположение файлов на удаленном сервере через SFTP:

Дальше указываем имя проекта и путь к нему, Далее указываем адреса sftp и http нашей виртуальной машины Битрикс, Далее будет предложено выбрать путь на sftp сервере загрузки файлов проекта:

 

выбираем путь /home/bitrix/www и жмем ProjectRoot.

Пока проект синхронизирует файлы, перейдем к 1С:

Нам понадобится добавить в план обмена Б_ОбменССайтом строковый реквизит - КлючОтладки, 10 символов достаточно, и вынести этот ревизит на форму узла. И в общем модуле Б_ОбщиеПроцедурыИФункцииОбменаССайтом в функции ПолучитьДанныеССервера изменить первые строки кода следующим образом:

     Если ПараметрыОбмена.Ссылка.КлючОтладки <> "" Тогда
		КодОтладки =  "&XDEBUG_SESSION_START=" + ПараметрыОбмена.Ссылка.КлючОтладки;
	Иначе
		КодОтладки = "";
	КонецЕсли;
	
	ИмяФайлаОтвета = ПолучитьИмяВременногоФайла();
	
	Попытка
		
		Соединение.Получить(СокрЛП(ПараметрыЗапроса) + КодОтладки, ИмяФайлаОтвета, СокрЛП(Заголовки));
		
	Исключение
		
		СообщитьПодробно("Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль," + Символы.ПС + "а также настройки подключения к Интернет.", ПараметрыОбмена)
		
	КонецПопытки;

Теперь запускаем нашу конфигурацию на отладку, форме узла плана обмена указываем КлючОтладки "phpstorm". В PhpStorm включаем ожидание отладки кнопкой:

Теперь включаем точки останова на необходимом коде обмена с 1с, например:

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

Будут вопросы - задавайте!

См. также

Подписаться Добавить вознаграждение

Комментарии

1. script Мальчинко (script) 05.04.16 00:21
Будьте добры. Пожалуйста, продолжайте статьи по этой теме с примерами. Это очень актуально.
2. Капитан Немо (capitan) 05.04.16 21:45
3. Александр Савченко (invertercant) 06.04.16 17:37
Хотел написать похожую статью по отладке на php в eclipse из 1с, но что то откладывал все.
4. Артано Майаров (Артано) 24.06.16 10:14
(2) Неужели это бессовестный плагиат?!
5. Виталий Гуляев (vital1c) 24.06.16 15:06
(4) Артано, конечно плагиат, плагиат мануалов phpstorm и xdebug
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа