Пытаюсь создать создать своё приложения для Б24 (коробка, последние стабильные обновления) с интерфейсом на портале. Ознакомился с докой, и не одной, пересмотрел видеоуроки от Сергея Вострикова, но встрял в самом начале.
1. Код из примера расположен на сервере 1 (БУС, работает по https) 2. На портале (тоже работет по https) создано приложение, выданы права на модуль пользователей, в качестве адреса указан файл на сервере 1.
Из примечательного, обратил внимание на то, что на каждый хит приложения (если обновить страницу с ним 5 раз подряд) для одного и того же member_id на сервер отправляются разные AUTH_ID, APP_SID и REFRESH_ID, несмотря на то, что AUTH_EXPIRES час.
По запросу в ТП сделано: 1. Исправлены все ошибки в Проверке Системы на портале (были проблемы с сокетами); 2. В таблице b_module удалена строчка с ID oauth; 3. Перевыпущены ключ и кодприложения, т.е. создавал его заново; 4. Переустанавливался модуль REST; 5. После каждого действия вычищался весь кеш; 6. От себя пробовал переводить хранение сессий в БД модуля.
Всё тщетно, проблема не решается. Буду рад любым советам, спасибо!
Сходу не нашел, как стандартными средствами подключить автоподгрузку классов из собственного пространства имён
На данный момент для этого используется сторонняя библиотечка, что не есть хорошо: [CODE]if(file_exists($_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/include/classes/psr/Psr4AutoloaderClass.php")) require_once($_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/include/classes/psr/Psr4AutoloaderClass.php");
$loader = new \Example\Psr4AutoloaderClass; $loader->register(); $loader->addNamespace('#mynamespace#', $_SERVER["DOCUMENT_ROOT"] . "/local/php_interface/include/classes/#mynamespace#/");
[/CODE]Самое подходящее что я нашел, так это [URL=http://dev.1c-bitrix.ru/api_d7/bitrix/main/loader/registerautoloadclasses.php]registerAutoLoadClasses[/URL] , но проблема в том, что на текущий момент не планируется оборачивать этот функционал в отдельный модуль.
Итого, сформулирую конкретнее, как правильно зарегистрировать с помощью API собственное пространство имен в битриксе?
Подскажите, пожалуйста, что не усмотрел. Суть задачи - после выгрузки из 1С склеить три свойства в одно множественное типа "список" для фильтрации в публичной части сайта.
Как решилось - по окончанию выгрузки запускаю обработчик, в котором получаю значения этих трех свойств, сравниваю эти значения с уже имеющимися в итоговом свойстве, если таковых нет - добавляю новые и формирую массив id-шников для установки значений. Запись происходит следующим методом: [CODE]\CIBlockElement::SetPropertyValuesEx($arElement["ID"], $arElement["IBLOCK_ID"], array("KALIBR_FOR_SITE" => $arNewPropID));[/CODE]Т.е. склейка проходит корректно, при редактировании элемента в административной части видно, что значения данного свойства успешно добавлены и установлены. НО!!! В публичной части в умном фильтре они не появляются! Сброс кеша через админку не помогает.
Есть занимательная особенность, что если после склейки зайти в редактирование элемента и нажать кнопку сохранить/применить (ничего не меняя), то значения свойства конкретно этого элемента сразу появляются и в умном фильтре, даже без сброса кеша.
Подозреваю, что может решить проблему использование CIBlockElement::Update(), но не хотелось бы, потому что это весьма ресурсоемко и нужно заморачиваться с сохранением других свойств.
Может кто подскажет, как решить этот вопрос програмно? Возможно какой-то дополнительный кеш нужно сбросить в базе? Заранее благодарен.