Документация для разработчиков
Темная тема

Элементы смарт-процессов

Scope: crm Права на выполнение: для всех

Описание

Так как элементы каждого смарт-процесса хранятся в отдельной таблице, то идентификаторы элементов разных смарт-процессов могут совпадать.

Поэтому во все методы необходимо передавать внешний идентификатор смарт-процесса entityTypeId.


Права доступа

При обращении к методам REST учитываются права доступа пользователя, от которого осуществляется вызов методов.


Булевы значения

Значения некоторых полей имеют булевый тип (например, поле opened - "Доступно для всех").

В этом случае для изменения значения надо передавать "Y" или "N". В ответах на запросы они будут отображаться аналогично.


Привязка к реквизитам

Для управления привязкой реквизитов можно воспользоваться методами crm.requisite.link.*.

Особенности работы с названиями полей

В базе данных имена полей элементов хранятся в UPPER_CASE формате. Но при работе через REST мы преобразуем их в camelCase. Например, поле ASSIGNED_BY_ID преобразуется в assignedById.

Имена пользовательских полей, помимо символа _ и букв, могут содержать цифры. Обычно они идут раздельно, например, поле UF_CRM_10_5186744711 преобразуется в ufCrm10_5186744711.

Чтобы код выглядел более читаемым, подчеркивания между цифрами остаются, а остальные - убираются.

Проблемы начинаются, когда буквы и цифры в поле идут вперемешку. Например, UF_CRM_10_DIGIT10 преобразуется в ufCrm10Digit10. При обратном преобразовании нет никакой возможности определить, исходное поле называлось UF_CRM_10_DIGIT10 или UF_CRM_10_DIGIT_10.

Чтобы разрешить подобные конфликты, с версии CRM 21.1800.0 был внедрен механизм предварительного анализа названий полей, и если в них обнаружены конфликты, то название поля не преобразуется в camelCase, а остается как есть.

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

Например, у элемента есть два поля - UF_CRM_10_DIGIT_10 и UF_CRM_10_DIGIT10.

При вызове метода crm.item.fields название первого поля будет преобразовано в ufCrm10Digit10, а второе останется UF_CRM_10_DIGIT10. При этом по ключу upperName можно прочитать название поля в UPPER_CASE и во всех методах использовать его.

Методы

МетодыОписание
crm.item.fieldsОтдает информацию о полях смарт-процесса.
crm.item.getОтдает информацию об элементе смарт-процесса.
crm.item.listВозвращает массив элементов смарт-процесса.
crm.item.addСоздаёт создает новый элемент смарт-процесса.
crm.item.updateОбновляет элемент смарт-процесса.
crm.item.deleteУдаляет элемент смарт-процесса.

С версии crm 21.800.0

Появляется поддержка полей-родителей при чтении и изменении элементов смарт-процессов.

Каждое поле имеет код parentId + {parentEntityTypeId}.

  • Метод fields в списке полей будет отдавать информацию о полях с родителями.
  • Методы get и list будут отдавать значения полей родителей.
  • Методы add и update будут поддерживать изменения значений этих полей.

Дополнительно



Пользовательские комментарии

Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.

Для этого нужно всего лишь авторизоваться на сайте

Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.

Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.
0
Михаил Кривоносов
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
[QUOTE] пишет:
Уважаемые разработчики. Замечательный функционал. Очень не хватает связи с сущностью сделки на пример. Причем в самом смарт процессе она есть. Но дотянуться до неё REST API никак.[/QUOTE] Связь со сделкой есть, это поле parentId2
Почему именно родитель 2? Да хер знает, битриксу главное быстрее говнокод написать
Потому что есть константы, отвечающие за тип связи
parentId2 - привязка к сделке
parentId3 - привязка к контакту
https://dev.1c-bitrix.ru/rest_help/crm/constants.php
2
Валентин Золотов
Сообщение не промодерировано, возможны ошибки и неточности.
Цитата
пишет:
Уважаемые разработчики. Замечательный функционал. Очень не хватает связи с сущностью сделки на пример. Причем в самом смарт процессе она есть. Но дотянуться до неё REST API никак.
Связь со сделкой есть, это поле parentId2
Почему именно родитель 2? Да хер знает, битриксу главное быстрее говнокод написать
2
Алексей Ковалев
Сообщение не промодерировано, возможны ошибки и неточности.
Поля с типом Да/Нет возвращают 0 и 1, однако на вход они принимают Y и N
0
Иван Муравиков
Сообщение не промодерировано, возможны ошибки и неточности.
Уважаемые разработчики. Замечательный функционал. Очень не хватает связи с сущностью сделки на пример. Причем в самом смарт процессе она есть. Но дотянуться до неё REST API никак.
© «Битрикс», 2001-2024, «1С-Битрикс», 2024