Антон Пащенко, я тебе немного о другом говорю ты не понял. Я тебе говорю что потенциально звонки связываются АВТОМАТИЧЕСКИ. Ты это делаешь в коде. Ну, делай если у тебя дубли не отображаются пока что, значит все ок. Но надо иметь ввиду что не все проблемы битрикса решаются кодом. Я все таки установил 1 сценарий когда звонки не цепляются автоматически когда по идее должны цепляться но ты в коде не сможешь на событии OnCallEnd это сделать, но пока такого запроса не поступало так что надеюсь и не поступит. Ну и да чтоб ты понимал связывать звонки к смарт процессам и связывать лиды к смарт процессам это вообще не одно и тоже а у тебя изначально запрос про это был и тебе код скинули который это и делает. Я именно про это пишу а не про твои лиды и сделки. Просто смотри, если ты хочешь получать готовые ответы не погружаясь как это работает, я тогда не буду лезть. Но рано или поздно ты приплывешь потому что это битрикс 24. Тебе просто скинули то что можно было и так нагуглить легко на форуме первым же запросом выплывет. То что я тебе пытаюсь объяснить - ты похоже не понял или не хочешь понять. Пойду дальше джуниорами заниматься а вы тут дальше копируйте друг другу документацию.
Антон Пащенко, То есть вероятность есть. Короче у меня недавно похожая задача была тока там надо было связать звонки со смарт процессом если из смарт процесса звонили. Ну типа нажимаешь на телефон возле контакта который привязан к смарт процессу - типичная ситуация в общем, но звонки не связывались с этим смарт процессом а только с контактом. По итогу оказалось что они все таки связываются (!) но чтобы отобразить эту связь надо в фильтре таймлайна (в карточке смарт процесса - это правая часть где события отображаются) фильтрануть "КОММУНИКАЦИИ" и тогда связи отображаются. Возможно у тебя не тот случай а возможно ты по 2 раза привязываешь один и тот же звонок ( ну тогда ты это по идее должен будешь увидеть)
Вроде никак, не вмешиваясь в код (но это не 100% точно). Вмешательство состоит в отлове события завершения звонка (а он завершается если абонент положит трубку) и на это событие создать лид (а не звонок). Хотя может и есть галочка где нить в настройках но я не увидел.
Антон Пащенко, А эти сущности чьи звонки ты связываешь (лид, сделка) могут быть связаны со смарт процессом как либо? Ну там например когда создавал смарт процесс указал что он связан с одной из указанных сущностей?
Важный вопрос - ты хочешь связывать просто левые звонки или именно те звонки что были каким либо образом сделаны из карточки смарт процесса? Я понимаю что вроде ответ нашли но я нашел ньюанс зависит от твоего ответа теперь надо его учесть или нет.
Можешь пока не думать про PSR но стоит подумать что если в битриксе в базу данных напрямую сохранятся то не вызываются обработчики. Например, когда привязывается активити вызываются методы синхронизации, ведется статистика и так далее. Поищи это все в файле crm_activity.php. Там я где то видел нужный метод. Он должен быть на 2638 строчке но это не точно, и вообще как я вижу он вызывается вообще на массив связей а не на одну связь как ты хотел - возможно надо при добавлении новой связи новую добавлять в массив старых связей и уже на этот массив вызвать метод.
попробуй так в постмане в Body в raw только вместо ACTIVE свое свойство а вместо true свое значение
{
"select": [
"ID"
],
"filter": {
"ACTIVE": [
"ACTIVE",
"=",
"true"
]
}
}
А ты в настройках смарт процесса установил в разрешенные связи сделку? Если да то поле для связи появится. Про api это уже отдельный вопрос но смотри в сторону метода Container::getInstance()->getRelationManager()->bindItems().
Привет) Взлетело! ураа! До первого обновления.
1) Ты скопировал весь компонент а не шаблон. У битрикса есть инструменты для доработок без копирования всего компонента. Лучше копировать шаблон и добавлять result_modifier (самый простой вариант)
2) После обновления битрикса высока вероятность что что то не будет работать (просто поверь на слово)
3) Как ты видишь, пришлось копировать не 1 компонент а аж целых 2. Через неделю надо будет еще пару раз скопировать и вот у тебя уже 10 компонентов скопировано и не понятно какой сейчас отрабатывает.
Попробуй посмотреть про контроллеры. Мне не раз помогала подмена контроллера в модуле. Ну то есть вместо того чтобы 10 компонентов копировать и каждый править можно всего лишь подменить 1 контроллер (ну унаследоваться от нужного класса контроллера и добавить наследника в нужное пространство имен) и вуаля - ты изменил логику не копируя ни одного компонента всего лишь 20 строчками кода (если доработка не большая).
Ну и в целом это правило хорошего тона дорабатывать как завещал битрикс без жесткого копирования компонента. Даже у них в документации написано что это самый крайний случай когда по другому ну прям никак и вы готовы взять на себя риски.
Дмитрий Баскаков, Боюсь что Эдуард прав что если надо чтобы помогли - платите денюшки. Да, у битры плохая дока, да, они сами пишут в доке что "если вы опытный вы можете залезть в наше ядро и все сами посмотреть". Битриксойды тратят на это время и потом у них не остается желания и сил расписывать гайды как это сделать. Это все не очень хорошо, я сам постоянно мучаюсь с этим но это реальность - либо сами разбирайтесь либо платите опытным программистам. Ну и самое важное что я понял за годы работы - нельзя просто взять что то на форуме найти и бац - все работает (иногда можно). Придется потратить часы, дни чтобы с самого начала, с самой базы все изучить и да, уйдет много времени. Это конечно не пол жизни на документацию но это неизбежно. Представь что тебе щас объяснили что делать, скинули код. Ты на следующей же задаче откиснешь, например, когда надо будет в смарт-процессах добавить элемент. Ну и да, все знают что прежде чем вопрошать надо показать где у тебя не получается а не просто "скиньте мне как должно быть"
Точно! А я голову ломал как и автор. Самое смешной - я уже делал такую реализацию но спустя пол года когда надо было помочь ответить, я не смог разобраться в своем же коде...
Присоединяюсь к вопросу. Я заметил что у смарт процессов (и сущностей что полностью перешли на новое api) есть подобие кастомного вывода если выбрать ошибку в обработчике. Например когда ошибку при смене стадий в смарт-процессе выбрасываешь то в карточке смарт-процесса выше блока со стадиями будет блок с ошибкой. По итогу я создал расширение js чтобы на js создать этот блок и выводить в нужный момент но тут проблема - из событий я никак не смог кинуть js событие что мол надо блок показать (при этом из консоли браузера все работает - то есть само расширение js не глючное). Я и addjs пытался, и echo 'script' с самовызывающейся функцией пытался - ничего не помогает.