• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/deps.php
  • Класс: Bitrix\Crm\WebForm\Options\Deps
  • Вызов: Deps::setData
public function setData(array $data)
{
	$deps = [];
	$groups = [];
	foreach ($data as $index => $group)
	{
		if (empty($group['id']))
		{
			$group['id'] = "n-$index";
		}
		if (empty($group['typeId']))
		{
			$group['typeId'] = WebForm\Internals\FieldDepGroupTable::TYPE_DEF;
		}

		$list = array_map(
			function ($dep) use ($group)
			{
				return [
					'GROUP_ID' => $group['id'],
					'IF_FIELD_CODE' => $dep['condition']['target'],
					'IF_ACTION' => $dep['condition']['event'],
					'IF_VALUE' => $dep['condition']['value'],
					'IF_VALUE_OPERATION' => $dep['condition']['operation'],
					'DO_FIELD_CODE' => $dep['action']['target'],
					'DO_ACTION' => $dep['action']['type'],
					'DO_VALUE' => $dep['action']['value'],
				];
			},
			self::filterDependencies($group['list'] ?? [])
		);
		$deps = array_merge($deps, $list);

		if (!$list)
		{
			continue;
		}

		$groups[] = [
			'ID' => $group['id'],
			'TYPE_ID' => $group['typeId'],
		];
	}

	$this->form->merge([
		'DEPENDENCIES' => $deps,
		'DEP_GROUPS' => $groups,
	]);

	return $this;
}