• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/internals/task/label.php
  • Класс: BitrixTasksInternalsTaskLabelTable
  • Вызов: LabelTable::getMap
static function getMap(): array
{
	return [
		new IntegerField(
			'ID',
			[
				'primary' => true,
				'autocomplete' => true,
				'title' => Loc::getMessage('TAG_ENTITY_ID_FIELD'),
			]
		),
		new IntegerField(
			'USER_ID',
			[
				'default' => 0,
				'title' => Loc::getMessage('LABEL_ENTITY_USER_ID_FIELD'),
			]
		),
		new StringField(
			'NAME',
			[
				'required' => true,
				'validation' => [__CLASS__, 'validateName'],
				'title' => Loc::getMessage('TAG_ENTITY_NAME_FIELD'),
			]
		),
		new IntegerField(
			'GROUP_ID',
			[
				'default' => 0,
				'title' => Loc::getMessage('LABEL_ENTITY_GROUP_ID_FIELD'),
			]
		),
		//references
		(new Reference(
			'USER',
			UserTable::class,
			Join::on('this.USER_ID', 'ref.ID')
		))->configureJoinType(Join::TYPE_INNER),

		(new Reference(
			'GROUP',
			WorkgroupTable::class,
			Join::on('this.GROUP_ID', 'ref.ID')
		))->configureJoinType(Join::TYPE_INNER),

		(new Reference(
			'TASK_TAG',
			TaskTagTable::class,
			Join::on('this.ID', 'ref.TAG_ID')
		))->configureJoinType(Join::TYPE_INNER),

		(new ManyToMany(
			'TASKS', TaskTable::class
		))
			->configureTableName('b_tasks_task_tag')
			->configureLocalReference('TAG')
			->configureJoinType(Join::TYPE_INNER)
	];
}