Имя: Пароль:
1C
 
Объединение слов в строке с проставлением заглавных букв
0 Dragonofdwarfs
 
19.02.26
11:44
Коллеги, всем доброго времени суток! Есть ли в БСП функция, которая может превратить строку "Мама мыла раму" в "МамаМылаРаму"?
1 Homer
 
19.02.26
11:46
ТРег
2 Dragonofdwarfs
 
19.02.26
11:49
(1) О, спасибо большое! Ну от пробелов понятно как избавиться)
3 Мультук
 
гуру
19.02.26
11:54
Доверяй, но...

Спросил google-ИИ:

1С БСП стандартная функция которая сделает из "Мама мыла раму" строку "МамаМылаРаму"

Ответ:
// Пример использования:
Текст = "мама мыла раму";
Результат = СтроковыеФункцииКлиентСервер.ВКамелКейс(Текст);
// Результат: "МамаМылаРаму"



Засомневался в имени функции и переспросил:

1С существует ли функция БСП ВКамелКейс

Ответ:

Нет, функции с названием
ВКамелКейс в типовом общем модуле СтроковыеФункцииКлиентСервер (БСП) не существует.
4 rozer76
 
19.02.26
12:18
(3) 🔥
5 Dragonofdwarfs
 
19.02.26
12:23
Теперь интересно, есть ли обратная по смыслу функция?))) Понимаю как самому написать, но это уже сложнее чем: СтрЗаменить(ТРег(Строка), " ", "")
6 Garykom
 
гуру
19.02.26
12:25
(0) Задача явно учебная
Если это не создание паролей ))

В этом случае лучше ее решать более низкоуровнево
Путем работы с символами в строке а не функциями высокого уровня
7 Мультук
 
гуру
19.02.26
12:28
(5)

Если понимаешь, дык напиши, покажи
8 Dragonofdwarfs
 
19.02.26
12:29
(6) В том то и дело, что нет) Смысл в том, чтобы не допускать  создания элементов справочника "Команды" с наименованиями содержащими пробел, т.к код, который написан до меня их не обработает) Поэтому в модуле объекта при записи нужна эта тема
9 Dragonofdwarfs
 
19.02.26
12:32
(7)так смысл писать если вдруг она есть в бсп) Если учитывать, что есть аббревиатуры, то будет ещё сложнее чем я думаю
10 rozer76
 
19.02.26
12:33
# Функция разделения верблюжьей нотации

Данная функция преобразует строки из формата "верблюжьей нотации" (camelCase) в строки с пробелами между словами.

## Функция

```bsl
Функция РазделитьВерблюжьюНотацию(Знач Строка)
    Если ПустаяСтрока(Строка) Тогда
        Возврат "";
    КонецЕсли;
    
    Результат = "";
    Для Сч = 1 По СтрДлина(Строка) Цикл
        ТекСимвол = Сред(Строка, Сч, 1);
        
        // Если это не первый символ и текущий символ - заглавная буква
        Если Сч > 1 И Строка(ТекСимвол) = ВерхнийРегистр(ТекСимвол) Тогда
            Результат = Результат + " ";
        КонецЕсли;
        
        Результат = Результат + ТекСимвол;
    КонецЦикла;
    
    Возврат Результат;
КонецФункции;
```

## Примеры использования

- `"МамаМылаРаму"` → `"Мама Мыла Раму"`
- `"ОдинДваТри"` → `"Один Два Три"`
- `"simpleText"` → `"simple Text"`
- `"XMLHttpRequest"` → `"XML Http Request"`

## Особенности

Функция работает путем обнаружения заглавных букв в строке и вставки пробела перед ними (за исключением первой буквы в строке).
11 rozer76
 
19.02.26
12:34
(10) ваш qwen3-coder-plus )
12 Garykom
 
гуру
19.02.26
12:38
(8) В этом случае делают не так
Имена команд или других сущностей (элементов формы) создаешь просто индексированные по порядку
Команда001, Команда002, Команда003 и т.д.
И отдельно хранишь соответствие имен команд и полных названий/синонимов
13 АгентБезопасной Нацио
 
19.02.26
12:39
(10) - `"XMLHttpRequest"` → `"XML Http Request"`
ага, щазз, конечно...
14 Garykom
 
гуру
19.02.26
12:46
(12)+ Ибо преобразовывать ненадежно
Всегда может встретиться непредусмотренное (не поддерживаемое как имена команд/элементов в 1С)
Например символы "+", "-" или нечто еще в исходной строке
15 d4rkmesa
 
19.02.26
12:53
(9) СтандартныеПодсистемыСервер.ПреобразоватьСтрокуВДопустимоеНаименованиеКолонки(...)
16 Злопчинский
 
19.02.26
13:01
(10) мудачный код
Строка(тектмвол) - нафейхоа это если тексимвол и так строка?
Фейхоа проверять сч > 1 в цикле охулиард раз если достаточно после цикла сделать один раз СокрЛ(результат)..?
.
Этот код ИИ писал что ли?
17 rozer76
 
19.02.26
13:21
(16) ага )) см (11) и (3). Как доказательство что не скоро ИИ заменит одинесников.
18 Stepashkin
 
19.02.26
13:33
(3) 🔥
19 nabd
 
19.02.26
13:44