--- title: Разрешенное имя переменной из любой строки slug: 1с-1-общие-работа-с-текстом/разрешенное-имя-переменной-из-любой-строки --- ```bsl // Функция - Разрешенное имя переменной из наименования // // Параметры: // Наименование - <Строка> - Входная строка. Может содержать любые символы // // Возвращаемое значение: // <Строка>, Неопределено - Имя, подходящее для использования в качестве переменных, ключей структур, заголовков ТЗ и пр. // Генерируемое имя всегда начинается с "_". Если преобразование не удалось, то возвращает Неопределено // Функция РазрешенноеИмяПеременнойИзНаименования(Знач Наименование) Экспорт Наименование = СокрЛП(Наименование); Если Не ЗначениеЗаполнено(Наименование) Тогда Возврат Неопределено; КонецЕсли; Наименование = СтрЗаменить(Наименование, Символы.ВК + Символы.ВТаб + Символы.НПП + Символы.ПС + Символы.ПФ + Символы.Таб, " "); Наименование = СтрЗаменитьПоРегулярномуВыражению(Наименование, "[^а-яА-ЯёЁa-zA-Z0-9 ]", "", Истина, Ложь); МассивПодстрок = СтрРазделить(Наименование, " ", Ложь); Если МассивПодстрок.Количество() = 0 Тогда Возврат Неопределено; КонецЕсли; //Делаем CamelCase Для Каждого Подстрока Из МассивПодстрок Цикл Подстрока = ВРег(Лев(Подстрока, 1)) + Сред(Подстрока, 1); КонецЦикла; МассивПодстрок[0] = "_" + МассивПодстрок[0]; Результат = СтрСоединить(МассивПодстрок, ""); //Максимальная длина имени в 1С - 80 символов Если СтрДлина(Результат) > 80 Тогда Результат = Лев(Результат, 80); КонецЕсли; Возврат Результат; КонецФункции ```