|   |   | 
| 
 | ПодразделениеОрганизации в Подразделение организации - функция | ☑ | ||
|---|---|---|---|---|
| 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 есть какая-то подобная функция. Но я сразу в СП не нашел :(     | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |