• Модуль: crm
  • Путь к файлу: ~/bitrix/modules/crm/lib/integration/catalog/contractor/provider.php
  • Класс: Bitrix\Crm\Integration\Catalog\Contractor\Provider
  • Вызов: Provider::bindEntitiesToDocument
static function bindEntitiesToDocument(int $documentId, array $bindings): void
{
	foreach ($bindings as $entityTypeId => $entityIds)
	{
		if (is_null($entityIds))
		{
			continue;
		}

		foreach ($entityIds as $entityId)
		{
			$existingBinding = static::getTableName()::query()
				->where(static::getDocumentPrimaryField(), $documentId)
				->where('ENTITY_ID', $entityId)
				->where('ENTITY_TYPE_ID', $entityTypeId)
				->exec()
				->fetch()
			;

			if (!$existingBinding)
			{
				static::getTableName()::add([
					static::getDocumentPrimaryField() => $documentId,
					'ENTITY_ID' => $entityId,
					'ENTITY_TYPE_ID' => $entityTypeId,
				]);
			}
		}

		static::getTableName()::deleteBindings($documentId, $entityTypeId, $entityIds);
	}
}