• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/classes/general/tasktags.php
  • Класс: CTaskTags
  • Вызов: CTaskTags::Add
function Add($arFields, $effectiveUserId = null)
{
	if ($this->CheckFields($arFields, false, $effectiveUserId))
	{
		$result = LabelTable::add([
			'NAME' => $arFields['NAME'],
			'USER_ID' => $arFields['USER_ID'],
			'GROUP_ID' => $arFields['GROUP_ID'] ?? 0,
		]);

		$tagId = LabelTable::getList([
			'select' => [
				'ID',
			],
			'filter' => [
				'=NAME' => $arFields['NAME'],
				'=GROUP_ID' => $arFields['GROUP_ID'] ?? 0,
				'=USER_NAME' => $arFields['USER_ID'],
			]
		])->fetchAll();

		$tagId = array_map(static function($el): int{
			return (int)$el['ID'];
		}, $tagId);

		if (count($tagId) !== 1)
		{
			return false;
		}

		$tagId = $tagId[0];

		$finalResult = TaskTagTable::add([
			'TAG_ID' => $tagId,
			'TASK_ID' => $arFields["TASK_ID"],
		]);

		if ($result->isSuccess() && $finalResult->isSuccess())
		{
			return $result->getId();
		}
	}
	return false;
}