Спасибо за ответ, он тоже пригодился, про EntityRelationTable Антон Горбылев подсказал, но что обращаться нужно через StorageStrategy у Вас подсмотрел) Но суть вопроса не в том как найти, а в том когда эти данные появляются в базе.
При интерактивном добавлении дочернего смарт-процесса(СмП), на его форме родительский элемент виден. Но через бизнес-процессы доступа к нему нет, более того при попытке поискать через relationmanager получаем нулевой результат. Видимо в RelationManager данные пишутся уже после вызова всех обработчиков.
Например, есть сделка. Есть привязанный к ней СмП с привязкой к клиенту, если из карточки сделки добавить новый элемент СмП, то штатно заполнить поле клиент из сделки не возможно пока новый элемент полностью не запишется и не пропишутся связи.
Сейчас в шаблоне БП при создании СмП вызываю другой БП, в котором через паузу ищу родителя в RelationManager. Это очень криво.
Нужно либо в шаблон БП при создании пеередавать идентифер родительского объекта, либо в RelationManager писать до вызова пользовательского обработчика.
$childs = \Bitrix\Crm\Service\Container::getInstance()->getRelationManager()->getChildElements($parent); // или getElements вернет и родительские и дочерние связи $ar=[];
foreach ($childs as $i => $child) { if ( $child->getEntityTypeId()==\CCrmOwnerType::Order) { ar[]=$child->getEntityId(); } }
В настройках смарт-процессов есть галочка "Использовать в смарт-процессе свои стадии и канбан", если её отключить, то отключается вывод канбана для смарт-процесса, нельзя выбрать стадию и направление, нельзя настроить роботов по стадия - это логично, но почему перестают работать бизнес-процесс привязанный к смарт-процессу через CRM - Настройки - Роботы и бизнес-процессы - Бизнес-процессы - Вид смарт-процесса - Список шаблонов?
Точнее они работают и даже запускаются, но внутри бизнес-процесса нельзя получить данные документа связанного с бизнес-процессом. Похоже это ошибка платформы.
Простой тест. Делаем новый смарт-процесс Тестовый по сценарию "с чистого листа". Ставим галку использовать дизайнер бизнес-процессов. Заходим CRM - Настройки - Роботы и бизнес-процессы - Бизнес-процессы - Тестовый - Список шаблонов - Добавить шаблон Ставим запускать при создании и изменении. Добавляем активити "Уведомление пользователя" Текст = Название {{Название}}. Создаем новый элемент смарт-процесса, сохраняем. В уведомлении нет названия. Это касается всех полей документа.
Ставим галочку использовать стадии и канбан - все работает.
Убился искать, почему один смарт-процесс нормально работает, а другой по-проще, типа подчиненного списка не работает толком.
Возникла необходимость к ком.пред к каждому товару добавлять произвольный текст-комментарий. В документации описана возможность хранить пользовательские поля CRM_LEAD_SPD CRM_DEAL_SPD CRM_ORDER_SPD CRM_INVOICE_SPD CRM_(смарт-процесс)_SPD CRM_QUOTE_SPD
Добавить поле через админку все понятно, а вот как настроить отображения данных полей в карточке сущности(закладка товары) и далее выводить в шаблоне документа с привязкой к строка товаров?
Спасибо за ответ. Где можно почитать про подобные обещания или анонсы от разработчиков?
Чтение данных crm тоже не читает данные из смарт-процессов по id? Список связанных (подчиненных) смарт-процесов получить или родительский id - слишком много хочу?)
БЫла мысль на смарт-процессах реализовать свою бизнес-логику с управлением несколькими подчиненными смарт-процессами аля список(без стадий), вроде бы по связям, ссылкам и полям все сложилось, заполнение вручную дает красивую картинку, но на уровне автоматизации уткнулся в ограничение функциональности стандартных активити.
В активити "Создание элемента списка" доступно создание элемента универсального списка и создание бизнес-процесса. В активити "Создать документ" - создание нового смарт-процесса такого же типа. Копировать смарт-процесс - аналогично создать только в себе подобный.
Каким образом можно в дизайнере бизнес-процессов создать новый смарт-процесс другого вида?
Задача выглядит так, в Битриксе есть Лиды, по которым работают менеджеры. В 1С есть Заказы клиентов, которые выгружаются в Битрикс как сделки.
Заказ клиента должен выгрузиться в Битрикс и подвязаться к лиду. Думал достаточно модуль выгрузки из 1С допилить, в тело запроса добавить &fields[LEAD_ID]=108, но ничего не происходит, потом нашел что https://dev.1c-bitrix.ru/rest_help/crm/fields.php LEAD_ID доступна только на чтение.
Как правильно конвертировать Лид в сделку, когда в 1С оператор внесет заказ клиента, в котором в определенное поле внесет id лида??