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 возможных смарт-процесса.