• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/webform/options/integration.php
  • Класс: Bitrix\Crm\WebForm\Options\Integration
  • Вызов: Integration::load
public function load() : array
{
	$linkDb = AdsFormLinkTable::query()
		->setSelect(
			array(
				'ID',
				'LINK_DIRECTION',
				'ADS_FORM_NAME',
				'ADS_FORM_ID',
				'ADS_ACCOUNT_NAME',
				'ADS_ACCOUNT_ID',
				'DATE_INSERT',
				'ADS_TYPE'
			)
		)
		->where('WEBFORM_ID', $this->getForm()->getId())
		->setCacheTtl(300)
		->addOrder('DATE_INSERT','DESC')
		->exec();

	$linkDb->addFetchDataModifier(
		static function (array $raw): array {
			$raw['ADS_FORM_NAME'] = $raw['ADS_FORM_NAME'] ?? $raw['ADS_FORM_ID'];
			$raw['ADS_ACCOUNT_NAME'] = $raw['ADS_ACCOUNT_NAME'] ?? $raw['ADS_ACCOUNT_ID'];
			$raw['LINK_DIRECTION'] = (int) $raw['LINK_DIRECTION'];

			/*INTEGRATION MAPPING*/
			if (AdsFormLinkTable::LINK_DIRECTION_IMPORT === $raw["LINK_DIRECTION"])
			{
				$raw['FIELDS_MAPPING'] = FormFieldMappingTable::query()
					->setSelect(['CRM_FIELD_KEY', 'ADS_FIELD_KEY', 'ITEMS'])
					->where("FORM_LINK_ID", $raw["ID"])
					->exec()
					->fetchAll();
			}

			return $raw;
		}
	);

	return $linkDb->fetchAll();
}