• Модуль: iblock
  • Путь к файлу: ~/bitrix/modules/iblock/lib/update/admingridoption.php
  • Класс: BitrixIblockUpdateAdminGridOption
  • Вызов: AdminGridOption::showNameCodeField
static function showNameCodeField(string $configId, string $scope): void
{
	if (!Loader::includeModule('ui'))
	{
		return;
	}

	$entityEditorConfiguration = new BitrixUIFormEntityEditorConfiguration('ui.form.editor');
	$cardSettings = $entityEditorConfiguration->get($configId, $scope);

	if (!is_array($cardSettings))
	{
		return;
	}

	$hasOldNameField = self::hasField($cardSettings, 'NAME');
	$hasOldCodeField = self::hasField($cardSettings, 'CODE');
	$hasNameCodeField = self::hasField($cardSettings, 'NAME-CODE');

	if ($hasNameCodeField)
	{
		if (!$hasOldNameField && !$hasOldCodeField)
		{
			return;
		}

		if ($hasOldNameField)
		{
			$cardSettings = self::unsetField($cardSettings, 'NAME');
		}
	}
	else
	{
		$nameCodeField = [
			'name' => 'NAME-CODE',
			'optionFlags' => '1',
			'options' => [
				'showCode' => $hasOldCodeField ? 'true' : 'false',
			]
		];

		if (!$hasOldNameField)
		{
			$cardSettings = self::setField($cardSettings, $nameCodeField);
		}
		else
		{
			$cardSettings = self::replaceField($cardSettings, 'NAME', $nameCodeField);
		}
	}

	if ($hasOldCodeField)
	{
		$cardSettings = self::unsetField($cardSettings, 'CODE');
	}

	$entityEditorConfiguration->set($configId, $cardSettings, ['scope' => $scope]);
}