From c04fad90f8d4aa83ae4237d6e70455560eb94f91 Mon Sep 17 00:00:00 2001 From: wakadakawaka Date: Tue, 15 Apr 2025 01:22:41 +0500 Subject: [PATCH] add page --- .../knowledge-base/Сниппеты/РазрИмяФайла.md | 49 +++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 src/content/docs/knowledge-base/Сниппеты/РазрИмяФайла.md diff --git a/src/content/docs/knowledge-base/Сниппеты/РазрИмяФайла.md b/src/content/docs/knowledge-base/Сниппеты/РазрИмяФайла.md new file mode 100644 index 0000000..715d743 --- /dev/null +++ b/src/content/docs/knowledge-base/Сниппеты/РазрИмяФайла.md @@ -0,0 +1,49 @@ +--- +title: Разрешенное имя переменной из любой строки +--- +```bsl +// Функция - Разрешенное имя переменной из наименования +// +// Параметры: +// Наименование - <Строка> - Входная строка. Может содержать любые символы +// +// Возвращаемое значение: +// <Строка>, Неопределено - Имя, подходящее для использования в качестве переменных, ключей структур, заголовков ТЗ и пр. +// Генерируемое имя всегда начинается с "_". Если преобразование не удалось, то возвращает Неопределено +// +Функция РазрешенноеИмяПеременнойИзНаименования(Знач Наименование) Экспорт + + Наименование = СокрЛП(Наименование); + + Если Не ЗначениеЗаполнено(Наименование) Тогда + Возврат Неопределено; + КонецЕсли; + + Наименование = СтрЗаменить(Наименование, Символы.ВК + Символы.ВТаб + Символы.НПП + Символы.ПС + Символы.ПФ + Символы.Таб, " "); + + Наименование = СтрЗаменитьПоРегулярномуВыражению(Наименование, "[^а-яА-ЯёЁa-zA-Z0-9 ]", "", Истина, Ложь); + + МассивПодстрок = СтрРазделить(Наименование, " ", Ложь); + + Если МассивПодстрок.Количество() = 0 Тогда + Возврат Неопределено; + КонецЕсли; + + //Делаем CamelCase + Для Каждого Подстрока Из МассивПодстрок Цикл + Подстрока = ВРег(Лев(Подстрока, 1)) + Сред(Подстрока, 1); + КонецЦикла; + + МассивПодстрок[0] = "_" + МассивПодстрок[0]; + + Результат = СтрСоединить(МассивПодстрок, ""); + + //Максимальная длина имени в 1С - 80 символов + Если СтрДлина(Результат) > 80 Тогда + Результат = Лев(Результат, 80); + КонецЕсли; + + Возврат Результат; + +КонецФункции +``` \ No newline at end of file