• Модуль: catalogmobile
  • Путь к файлу: ~/bitrix/modules/catalogmobile/lib/EntityEditor/StoreDocumentProvider.php
  • Класс: BitrixCatalogMobileEntityEditorStoreDocumentProvider
  • Вызов: StoreDocumentProvider::getContractorField
protected function getContractorField(): array
{
	$field = parent::getContractorField();

	if ($this->contractorsProvider)
	{
		/**
		 * @TODO keep DRY
		 * @see BitrixCrmMobileUIEntityEditorProvider::getEntityFields()
		 */

		$permissions = [];

		$categoryParams = $field['data']['categoryParams'] ?? [];
		if (!empty($categoryParams) && is_array($categoryParams))
		{
			foreach ($categoryParams as $entityTypeId => $entity)
			{
				$entityTypeName = CCrmOwnerType::ResolveName($entityTypeId);
				$serviceUserPermissions = Container::getInstance()->getUserPermissions();
				$permissions[$entityTypeName] = [
					'read' => $serviceUserPermissions->checkReadPermissions($entityTypeId),
					'add' => $serviceUserPermissions->checkAddPermissions($entityTypeId),
				];
			}
		}

		$field['data']['permissions'] = $permissions;
	}
	else
	{
		$field['type'] = self::ENTITY_SELECTOR_FIELD;
		$field['data'] = [
			'selectorType' => self::CONTRACTOR_SELECTOR_TYPE,
			'provider' => [
				'context' => self::CONTRACTOR_PROVIDER_CONTEXT,
				'options' => [],
			],
			'enableCreation' => true,
			'entityListField' => $field['name'] . self::ENTITY_LIST_POSTFIX,
		];
	}

	return $field;
}