• Модуль: documentgenerator
  • Путь к файлу: ~/bitrix/modules/documentgenerator/lib/model/template.php
  • Класс: BitrixDocumentGeneratorModelTemplateTable
  • Вызов: TemplateTable::prepareClassNameFilter
static function prepareClassNameFilter(
	string $className,
	?int $userId = null,
	$value = ' ',
	bool $activeOnly = true
): ConditionTree
{
	$filterProvider = $className;
	if (is_a($className, Filterable::class, true))
	{
		/** @var Filterable $provider */
		$provider = DataProviderManager::getInstance()->getDataProvider($className, $value, [
			'isLightMode' => true,
			'noSubstitution' => true,
		]);
		if ($provider)
		{
			$filterProvider = $provider->getFilterString();
		}
	}
	$filter = MainEntityQuery::filter()
		->where('IS_DELETED', 'N')
	;
	$filterProvider = mb_strtolower($filterProvider);
	if (mb_strpos($filterProvider, '%'))
	{
		$filterProvider = str_replace('\', '\\', $filterProvider);
		$filter->whereLike('PROVIDER.PROVIDER', $filterProvider);
	}
	else
	{
		$filter->where('PROVIDER.PROVIDER', $filterProvider);
	}
	if ($activeOnly)
	{
		$filter->where('ACTIVE', 'Y');
	}
	if ($userId > 0)
	{
		$filter->where(Driver::getInstance()->getUserPermissions($userId)->getFilterForRelatedTemplateList());
	}

	return $filter;
}