|
ПодразделениеОрганизации в Подразделение организации - функция | ☑ | ||
---|---|---|---|---|
0
EarthsSoul
26.07.13
✎
12:17
|
Здравствуйте
Кто нибудь видел функцию самописную или встроенную которая бы текст для 1с преобразовывала в приемлемый тип для человека ? Например: "ПодразделениеОрганизации" в "Подразделение организации" |
|||
1
Maxus43
26.07.13
✎
12:21
|
что?
|
|||
2
andreymongol82
26.07.13
✎
12:22
|
(0) Синоним?
|
|||
3
EarthsSoul
26.07.13
✎
12:27
|
Ну типа того, только у меня на входе строка ...
|
|||
4
EarthsSoul
26.07.13
✎
12:28
|
Знаю что сейчас скорее всего начнут спрашивать что за задача, скажу что ответ для Конвертации данных пишу ))
|
|||
5
EarthsSoul
26.07.13
✎
12:32
|
СтрокаТипа = СтрЗаменить(СтрокаТипа,"А"," а");
Можно конечно так, тогда будет 33 строки :). Если другие идеи ? |
|||
6
Cube
26.07.13
✎
12:34
|
(5) Ну давай, посмотрим, как ты преобразуешь "СЗВ4"...
|
|||
7
Галахад
гуру
26.07.13
✎
12:34
|
Врег ?
|
|||
8
EarthsSoul
26.07.13
✎
12:36
|
(6) с з в4
У тебя есть альтернатива ? |
|||
9
EarthsSoul
26.07.13
✎
12:36
|
(7) да зачем мне верхний регистр
|
|||
10
Cube
26.07.13
✎
12:38
|
(8) Аббревиатуры пишутся "как есть"...
|
|||
11
Галахад
гуру
26.07.13
✎
12:39
|
(9) Т.е. Нрег.
|
|||
12
EarthsSoul
26.07.13
✎
12:40
|
только пол дела, как же пробелы ?
|
|||
13
Либерал
26.07.13
✎
12:44
|
(9) если подумать - вполне пригодится...
примерно так: перебираешь в цикле каждый символ строки и проверяешь - если Символ = ВРег(Символ) тогда СтрокаРезультат = СтрокаРезультат + " " + НРег(Стмвол) иначе СтрокаРезультат + " " + НРег(Стмвол) я ничего не упустил?.. |
|||
14
Либерал
26.07.13
✎
12:46
|
если
Символ = ВРег(Символ) тогда СтрокаРезультат = СтрокаРезультат + " " + НРег(Символ) иначе СтрокаРезультат + НРег(Стмвол) сори |
|||
15
EarthsSoul
26.07.13
✎
12:48
|
Да я уже написал типа
СтрокаТипа = СтрЗаменить(СтрокаТипа,"А"," а"); для всех букв ... И вроде они равносильны... Так что буду писать дальше... Всем спасибо :) |
|||
16
Поросенок Петр
26.07.13
✎
12:51
|
Писал совсем молодым, так что просьба громко не ржать:
Функция ПолучитьПредставление(Имя) Рез = Лев(Имя,1); Для Итер = 2 по СтрДлина(Имя) Цикл Символ = Сред(Имя, Итер,1); Верхний = (Символ = ВРег(Символ)); Если Верхний Тогда Рез = Рез + " " + НРег(Символ); Иначе Рез = Рез + Символ; КонецЕсли; КонецЦикла; Возврат Рез; КонецФункции Функция ПолучитьИмя(Представление, НомерАвтоколонки = 1) // В обратную сторону //1. Удаление спецсимволов Длина = СтрДлина(Представление); Рез = ""; Для Ит = 1 по Длина Цикл Символ = Сред(Представление, Ит, 1); ВСимвол = ВРег(Символ); Если (ВСимвол >= "А" И ВСимвол <= "Я") ИЛИ (ВСимвол >= "A" И ВСимвол <= "Z") ИЛИ (ВСимвол >= "0" И ВСимвол <= "9") ИЛИ (ВСимвол = "_") ИЛИ (ВСимвол = " ") Тогда //Пробелы удалим с преобразованием регистра Рез = Рез + Символ; КонецЕсли; КонецЦикла; Если Рез = "" Тогда Рез = "Колонка" + Формат(НомерАвтоколонки, "ЧГ="); Возврат Рез; КонецЕсли; Пока Найти(Рез, " ") > 0 Цикл Рез = СтрЗаменить(Рез, " ", " "); КонецЦикла; //2. Если начинается с цифры - добавляем в начало символ "n" Если Рез >="0" И Рез<="9" Тогда Рез = "_" + Рез; КонецЕсли; Имя = Рез; //3. Все символы за пробелами делаем ВРег, пробелы удаляем Рез = Лев(Имя,1); СледующийБольшой = Ложь; Для Итер = 2 по СтрДлина(Имя) Цикл Символ = Сред(Имя, Итер,1); Если Символ = " " Тогда СледующийБольшой = Истина; Продолжить; КонецЕсли; Если СледующийБольшой Тогда Рез = Рез + ВРег(Символ); СледующийБольшой = Ложь; Иначе Рез = Рез + Символ; КонецЕсли; КонецЦикла; Возврат Рез; КонецФункции |
|||
17
sirsp
26.07.13
✎
13:00
|
(0) Как вариант:
//----------------------------------------------------------------------------- //Преобразует имя в синоним. Символы "_" не обрабатываются (удаляются). // Имя - (Строка) // Префикс - (Строка) Начало имени подлежащее удалению перед преобразованием; // Постфикс - (Строка) Конец имени подлежащий удалению перед преобразованием; // Функция ИмяВСиноним(Имя, Префикс = неопределено, Постфикс = неопределено) //TODO разобраться с возможностью передачи значения с точками лПредлоги = "ива"; лРез = ""; лИмя = СокрЛП(СтрЗаменить(Имя, "_", "")); Если НЕ ПустаяСтрока(Префикс) И найти(НРег(лИмя), НРег(Префикс)) = 1 Тогда лИмя = Сред(лИмя, СтрДлина(Префикс) + 1); КонецЕсли; Если НЕ ПустаяСтрока(Постфикс) И Прав(НРег(лИмя), СтрДлина(Постфикс)) = НРег(Постфикс) Тогда лИмя = Лев(лИмя, СтрДлина(лИмя) - СтрДлина(Постфикс)); КонецЕсли; лНовоеСлово = ИСТИНА; Для лПоз = 1 По СтрДлина(лИмя) Цикл лСимвол = Символ(КодСимвола(лИмя, лПоз)); лСимвол1 = Символ(КодСимвола(лИмя, лПоз + 1)); лСимвол2 = Символ(КодСимвола(лИмя, лПоз + 2)); лРез = лРез + ?(лНовоеСлово И НЕ лРез = "", " ", "") + ?(лНовоеСлово И НЕ лСимвол1 = ВРег(лСимвол1)И НЕ лРез = "" ИЛИ Найти(лПредлоги, НРег(лСимвол)), НРег(лСимвол), лСимвол); лНовоеСлово = (НЕ лСимвол = ВРег(лСимвол) И лСимвол1 = ВРег(лСимвол1)) ИЛИ (лСимвол = ВРег(лСимвол) И лСимвол1 = ВРег(лСимвол1) И НЕ лСимвол2 = ВРег(лСимвол2)); КонецЦикла; возврат лРез КонецФункции |
|||
18
almar
26.07.13
✎
13:04
|
Вроде бы в 8.3 есть какая-то подобная функция. Но я сразу в СП не нашел :(
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |