• Модуль: tasks
  • Путь к файлу: ~/bitrix/modules/tasks/lib/control/tag.php
  • Класс: BitrixTasksControlTag
  • Вызов: Tag::addToGroup
private function addToGroup(int $groupId, array $tags): array
{
	if (empty($tags))
	{
		return [];
	}

	$implode = [];
	$names = [];

	foreach ($tags as $tag)
	{
		$names[] = trim($tag['NAME']);
		$name = Application::getConnection()->getSqlHelper()->forSql(trim($tag['NAME']));
		$implode [] = "('{$name}', {$groupId})";
	}

	$implode = implode(',', $implode);

	$sql = 'INSERT IGNORE INTO ' . LabelTable::getTableName() . " (`NAME`, `GROUP_ID`) VALUES {$implode}";
	Application::getConnection()->query($sql);

	$idRows = LabelTable::getList([
		'select' => [
			'ID',
		],
		'filter' => [
			'=GROUP_ID' => $groupId,
			'=NAME' => $names,
		],
	])->fetchAll();

	$idList = [];
	foreach ($idRows as $row)
	{
		$idList[] = (int)$row['ID'];
	}

	return $idList;
}