Доброго времени суток! такой вопрос, есть в CRM Сделка - https://%SITE%.ru/crm/deal/details/%DEAL_ID%/ , в ней есть табы (закладки), вида "Сделка / Общие / Товары / Предложения / Счета / Заказы" и т.д. собственно вопрос - как там создать свой "таб" со своим функционалом (на уровне бекенда) ?
короче, в 2ух словах, ибо я уверен что еще многие столкнутся с этой проблемой, ибо тут как всегда через одно место все работает... и документация такая же...
- заходим в https://%SITE%.ru/marketplace/local/ - создаем приложение с правами на CRM и Встраивание приложений (placement) - указываем ссылку на свое приложение (я разместил в /local/components/custom/***) - сохраняем - в файле с приложением своим подключаем <script type="text/javascript" src="//api.bitrix24.com/api/v1/"></script> , что б можно было юзать BX24 библиотеку - там делаем BX24.install( BX24.callMethod() ) (методы в посте выше) И САМОЕ ГЛАВНОЕ! не забываем делать BX24.installFinish() ( https://dev.1c-bitrix.ru/support/forum/forum48/topic117719/ ) - далее, в том же https://%SITE%.ru/marketplace/local/ находим свое приложение, клацаем по выпадающему меню слева от названия и выбираем "перейти к приложению" - ПЕРЕЛОГИНИВАЕМСЯ! И ТОЛЬКО ТОГДА... вы увидите обновление на сайте...
все, спасибо за внимание! Битрикс, такой Битрикс... через пол года-год опять что-нибудь поменяют...
а, ну и добавлю, что в $_REQUEST на файл вашего приложения, приходят много полезных параметров таких как AUTH_ID, REFRESH_ID, member_id и IDник Лида/Сделки/Контакта, короче, всего того что вы запросите в параметре PLACEMENT в BX24.callMethod('placement.bind')
Да это шиздец а не документация. Проще послать нафиг, чем там что-то найти. Уже сутки бьюсь над простой казалось бы задачей, но плейсмент как не привязывался, так и не привязывается. Разработчики понаделали видео вместо того, чтобы написать доходчивый текст, по которому можно было бы найти то, что нужно в любой момент. Кроме того как и в какой момент работает привязка вообще не понятно. Добавляешь строку install - работает только инсталяция, убираешь - работает основная. Почему при этом ничего не появляется - не известно. А на видео всё так просто - используйте ту библиотеку (по которой даже доков нет), то другую.
Извините, наболело. Иногда кажется, что дока пишется только для тех, кто был с битриксом с самого начала, 10 лет назад, и знает всё на зубок.
Ребята, в двух словах, чтобы было понятно.. Локальное приложение требует инсталляции на обеих сторонах, на стороне Битрикс24 и на стороне вашего локального приложения. Начинается инсталляция на стороне Битрикс, в знакомом вам месте Разработчикам / Другое / Локальное приложение
Здесь вы указываете путь к хандлеру вашего приложения. Хандлер - это скрипт, который вызывается из Битрикс24 при любом способы вызова вашего локального приложения. Вызывается методом POST и открывается в iframe тэге.
Здесь же вы указываете путь к скрипту инсталляции, причем есть готовый скрипт, от разработчика. Где его взять? скачать из документации по установке исходящего вэбхука или с гитхаба - https://github.com/bitrix-tools/crest/tree/master/src (качать надо все файлики, не только install.php)
Как проходит инсталляция?
1. При нажатии кнопки сохранить нового локального приложения происходит вызов скрипта install.php на стороне вашего хостинга локального приложения. В качестве параметров передаются некоторые инициализирущие значения oAuth. Скрипт инсталл обращается к серверу oAuth, получает токен, сохраняет его на стороне вашего локального приложения в файлике settings.json и возвращает в ответ простенькую html страничку со скриптами. Битрикс24 открывает эту страницу в отдельном фрэйме и запускает эти скрипты, суть которых - запуск BX24.installFinish()
2. Получив команду installFinish от вашего локального приложения Битрикс 24 перезагружает вкладку инсталляции локального приложения и показывает вам два ключа - CLIENT_ID и CLIENT_SECRET, которые вы должны сохранить на стороне локального приложения. Если вы качнули с гитхаба скрипты инсталляции, то там же есть класс crest.php, который будет использовать эти значения без вашего участия. тем он и удобен для использования, что все вопросы с токенами решены под капотом, рекомендую юзать этот класс.
3. теперь, когда Битрикс24 знает, что у вас есть установленное локальное приложение, он будет запускать скрипт хандлера, когда вы захотите приложение открыть.
4. Если вам нужно расширить права доступа для локального приложения, то Битриксу нужно снова запустить скрипт install.php. Делается это кнопкой Переустановить на вкладке настроек вашего локального приложения. Открыть эту вкладку можно так: Разработчикам / Интеграции - двойной клик по вашему локальному приложению в списке. Обратите внимание, что исходящий вэб хук и локальное приложение - это одно и тоже по сути! просто у исходящего вэб хука нет интерфейса, он ничего не должен возвращать.
PS - если в каких то деталях я не прав - это не меняет сути процесса и не искажает понимания шагов инсталляции
PPS почему нельзя выполнить инсталляцию просто вызвав из браузера install.php ? потому что вызов должен быть POST и в нем должны быть определены некоторые важные параметры для oAuth. Можете попробовать, ничего страшного не приозойдет: install.php напишет, что ему не хватаее. Но из браузера полезно запустить checkserver.php - он проводит диагностику хостинга.