TypeTable
Класс-таблет для работы с таблицей смарт-процессов
ORM-объект: \Bitrix\Crm\Model\Dynamic\Type
.
Подробнее о хранении значений пользовательских полей.
Цепочка наследования
Является наследником базового класса Bitrix\Main\UserField\Internal\TypeDataManager.
Bitrix\Crm\Model\Dynamic\TypeTable extends Bitrix\Main\UserField\Internal\TypeDataManager
Методы класса
Генерация значений полей
Метод | Описание | С версии |
---|---|---|
public static function generateName( string $title = null, int $try = 0 ): ?string | Метод генерирует новое значение для колонки NAME на основе заголовка смарт-процесса $title . Метод рекурсивный, поэтому в $try лежит счетчик вызовов. Метод вернет значение поля или null . |
|
public static function getNextAvailableEntityTypeId(): ?int | Метод возвращает следующий возможный идентификатор типа смарт-процесса. Если метод вернул null , значит, доступные идентификаторы закончились. |
Чтение данных
Метод | Описание | С версии |
---|---|---|
public static function getByEntityTypeId( int $entityTypeId ): QueryResult | Метод вернет результат запроса к таблице с фильтром по $entityTypeId |
Обработчики событий
Класс имеет набор методов-обработчиков событий. В этих обработчиках проверяется состояние связанных таблиц и могут прерываться некоторые действия. Например, нельзя удалить смарт-процесс, если у него есть элементы.
После удаления смарт-процесса из связанных таблиц удаляются все данные, привязанные к этому смарт-процессу. Также удаляются таблица элементов и таблица полнотекстового индекса.
При создании новой записи создаются связанные таблицы, генерируются значения системных полей.
Метод | Описание | С версии |
---|---|---|
public static function createItemIndexTable( $type ): Result | Создает таблицу для хранения полнотекстового индекса элементов процесса. Возвращает объект \Bitrix\Main\Result |
Поля таблицы
Поле | Описание | Обяз. |
---|---|---|
ID | Идентификатор смарт-процесса. | Да |
NAME | Строковый идентификатор смарт-процесса. Генерируется автоматически. | Да |
TABLE_NAME | Название таблицы, где хранятся элементы этого смарт-процесса. Генерируется автомтически как b_crm_dynamic_items_{ENTITY_TYPE_ID} . | Да |
TITLE | Заголовок смарт-процесса. | Да |
CODE | Символьный код смарт-процесса, который можно заполнить через REST. | |
CREATED_BY | Идентификатор пользователя, который создал смарт-процесс. | Да |
ENTITY_TYPE_ID | Идентификатор типа смарт-процесса в рамках CRM. | |
IS_CATEGORIES_ENABLED | Включены ли направления у смарт-процесса. | |
IS_STAGES_ENABLED | Включены ли стадии у смарт-процесса. | |
IS_BEGIN_CLOSE_DATES_ENABLED | Включены ли поля "Дата начала" и "Дата окончания". | |
IS_CLIENT_ENABLED | Включено ли поле "Клиент" (привязка к компании и контактам). | |
IS_USE_IN_USERFIELD_ENABLED | Доступен ли смарт-процесс в пользовательском поле типа "Привязка к элементам CRM". | |
IS_LINK_WITH_PRODUCTS_ENABLED | Включен ли функционал товаров. | |
IS_CRM_TRACKING_ENABLED | Включена ли работа с utm-метками (пока не используется). | |
IS_MYCOMPANY_ENABLED | Включено ли поле "Реквизиты моей компании". | |
IS_DOCUMENTS_ENABLED | Включена ли печать документов. | |
IS_SOURCE_ENABLED | Включено ли поле "Источник" и "Подробнее об источнике". | |
IS_OBSERVERS_ENABLED | Включено ли поле "Наблюдатели". | |
IS_RECYCLEBIN_ENABLED | Включен ли функционал корзины. | |
IS_AUTOMATION_ENABLED | Включены ли роботы и триггеры. | |
IS_BIZ_PROC_ENABLED | Включен ли дизайнер бизнес-процессов. | |
IS_SET_OPEN_PERMISSIONS | Открывать ли доступ к новому направлению всем ролям. |
Примечание: На данный момент поле ENTITY_TYPE_ID
может принимать значения от 128 до 192. Это связано с тем, что соответствующая колонка в некоторых таблицах имеет размерность TINYINT
(например, поле OWNER_TYPE_ID
в таблице b_crm_act
). В будущем планируется изменение структуры таблиц и расширение диапазона возможных значений, чтобы снять ограничение на 64 возможных смарт-процесса.
Пользовательские комментарии
Мы будем рады, если разработчики добавят свои комментарии по практическому использованию методов системы.Для этого нужно всего лишь авторизоваться на сайте
Но помните, что Пользовательские комментарии, несмотря на модерацию, не являются официальной документацией. Ответственность за их использование несет сам пользователь.
Также Пользовательские комментарии не являются местом для обсуждения функционала. По подобным вопросам обращайтесь на форумы.