|
Получить из Имя - Представление: СведенияОВзносах - Сведения о взносах. Как?
| ☑ |
0
loololool
15.11.18
✎
11:31
|
День добрый!
Есть готовое волшебство получения Представления из Имя?
Пример:
Имя: СведенияОВзносах
Представление: Сведения о взносах
Спасибо!
|
|
1
Случайный прохожий
15.11.18
✎
12:04
|
Тебе функцию преобразования строки нужно или ты из метаданных хочешь по имени синоним получить?
|
|
2
loololool
15.11.18
✎
12:05
|
(1) Функцию преобразования, конечно же. Из БПС желательно, при наличии.
|
|
3
Случайный прохожий
15.11.18
✎
12:12
|
Нету. Но можно же написать :)
|
|
4
loololool
15.11.18
✎
12:21
|
ʘʘ Хм..
Вариант-то имеется, такой:
Для каждой буквы из Имя Цикл
Если буква = ВРЕГ(буква) Тогда
Представление= СтрЗаменить(ТолькоЭтуБукву, " " + НРЕГ(буква));
КонецЕсли;
КонецЦикла;
Представление= ВРЕГ(Сред(Представление, 2, 1)) + Сред(Представление, 3);
|
|
5
dezss
15.11.18
✎
12:23
|
(4) первую большой оставь
|
|
6
Случайный прохожий
15.11.18
✎
12:24
|
(4) А если несколько букв заглавными подряд идут?
|
|
7
Случайный прохожий
15.11.18
✎
12:29
|
Глянь, может эта подойдет:
Функция ПреобразоватьСтроку(Знач ИсходнаяСтрока)
ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
Рез = Лев(ИсходнаяСтрока,1);
ИсходнаяСтрока = Прав(ИсходнаяСтрока,СтрДлина(ИсходнаяСтрока)-1);
н = 1;
ПредыдущаяБуква = Рез;
Пока н <= ДлинаСтроки Цикл
Буква = Лев(ИсходнаяСтрока,1);
ИсходнаяСтрока = Прав(ИсходнаяСтрока,СтрДлина(ИсходнаяСтрока)-1);
Если Буква=ВРег(Буква) и ПредыдущаяБуква = Врег(ПредыдущаяБуква) Тогда
Рез = Лев(Рез, СтрДлина(Рез)-1) + Врег(ПредыдущаяБуква);
Рез = Рез + ВРег(Буква);
ИначеЕсли Буква=ВРег(Буква) Тогда
Рез = Рез + " " +НРег(Буква);
Иначе
Рез = Рез + Буква;
КонецЕсли;
ПредыдущаяБуква = Буква;
н=н+1;
КонецЦикла;
Возврат Рез;
КонецФункции
|
|
8
Случайный прохожий
15.11.18
✎
12:31
|
Не, тоже не то :)
|
|
9
loololool
15.11.18
✎
12:35
|
Почему не то - вполне похоже, и с учётов нескольких заглавных, вдруг пригодится. Пожалуй - воспользуюсь, в качестве эксперимента.
Спасибо!
|
|
10
Случайный прохожий
15.11.18
✎
12:35
|
Функция ПреобразоватьСтроку(Знач ИсходнаяСтрока)
ДлинаСтроки = СтрДлина(ИсходнаяСтрока);
Рез = Лев(ИсходнаяСтрока,1);
ИсходнаяСтрока = Прав(ИсходнаяСтрока,СтрДлина(ИсходнаяСтрока)-1);
н = 1;
ПредыдущаяБуква = Рез;
Пока н <= ДлинаСтроки Цикл
Буква = Лев(ИсходнаяСтрока,1);
ИсходнаяСтрока = Прав(ИсходнаяСтрока,СтрДлина(ИсходнаяСтрока)-1);
СледующаяБуква = Лев(ИсходнаяСтрока,1);
Если Буква=ВРег(Буква) и ПредыдущаяБуква = Врег(ПредыдущаяБуква) и СледующаяБуква = Врег(СледующаяБуква) Тогда
Рез = Лев(Рез, СтрДлина(Рез)-1) + Врег(ПредыдущаяБуква);
Рез = Рез + ВРег(Буква);
ИначеЕсли Буква=ВРег(Буква) Тогда
Рез = Рез + " " +НРег(Буква);
Иначе
Рез = Рез + Буква;
КонецЕсли;
ПредыдущаяБуква = Буква;
н=н+1;
КонецЦикла;
Возврат Рез;
КонецФункции
|
|
11
Случайный прохожий
15.11.18
✎
12:36
|
Эта более правильная. Там подпилишь если что :)
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший