7.7 функция Замена

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 7.7"", создана пользователем Natalia_k, 12 май 2012.

  1. TopicStarter Overlay
    Natalia_k
    Offline

    Natalia_k Опытный в 1С

    Регистрация:
    8 сен 2009
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    Добрый день!
    Разъясните, пожалуйста, как правильно написать в коде функцию Замена.
    Мне нужно заменить слова "обл", "область", "Рег" и другие на "" или точнее убрать из словосочетания все, кроме первого слова.
    Например, "Нижегородская обл", нужно, чтобы осталось "Нижегородская"

    Код:
     //9 - код региона
    ЗначениеПометки = ПроверитьПометку("КодРегиона");
    Если ЗначениеПометки = 1 Тогда
    Попытка
    
    КодРегиона = Стрзаменить(СокрЛП(Файл.CODEREG), " область","");
    // или
    // КодРегиона = Стрзаменить(СокрЛП(Файл.CODEREG), " обл","");
    
    
    
    Если КодРегиона = "Нижегородская" Тогда
    КодРегиона = "52"; 
    
    ИначеЕсли КодРегиона = "Вологодская" Тогда
    КодРегиона = "34"; 
    
    ИначеЕсли КодРегиона = "Амурская" Тогда 
    КодРегиона = "28";
    
    ИначеЕсли КодРегиона = "Самарская" Тогда 
    КодРегиона = "63";
    
    ИначеЕсли КодРегиона = "Псковская" Тогда 
    КодРегиона = "60";
    
    
    КонецЕсли;  
    
    Исключение
    КонецПопытки;
    КонецЕсли;
    У меня получалось, только заменить слово "область". Если добавляю "или" для еще одной замены, то выскакивает либо ошибка, либо ничего не происходит совсем.
  2. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    КодРегиона = Стрзаменить(СокрЛП(Файл.CODEREG), " область","");
    КодРегиона = Стрзаменить(КодРегиона , " обл","");

    ...

    Но проще дергать просто первое слово.
    СтрРегион = Сред(СокрЛП(Файл.CODEREG),1,Найти(СокрЛП(Файл.CODEREG)," ")-1);
  3. TopicStarter Overlay
    Natalia_k
    Offline

    Natalia_k Опытный в 1С

    Регистрация:
    8 сен 2009
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    А можно ли как-нибудь просто отсечь все, что после первого слова идет? Может есть что-то лучше функции Замена?
  4. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    СтрРегион = Сред(СокрЛП(Файл.CODEREG),1,Найти(СокрЛП(Файл.CODEREG)," ")-1);
  5. TopicStarter Overlay
    Natalia_k
    Offline

    Natalia_k Опытный в 1С

    Регистрация:
    8 сен 2009
    Сообщения:
    153
    Симпатии:
    0
    Баллы:
    26
    Спасибо большое! Второй вариант мне нравится больше!
  6. WaRDeR
    Offline

    WaRDeR Модераторы Команда форума Модератор

    Регистрация:
    23 ноя 2006
    Сообщения:
    3.263
    Симпатии:
    14
    Баллы:
    29
    А не проще заменить эту конструкцию:
    Код:
    Сред(СокрЛП(Файл.CODEREG),1,Найти(СокрЛП(Файл.CODEREG)," ")-1)
    на "Лев"? Во всяком случае логичнее читается.
  7. dianofob
    Offline

    dianofob (-_-)y-.o0O

    Регистрация:
    3 июл 2009
    Сообщения:
    711
    Симпатии:
    0
    Баллы:
    26
    часто можно сделать что-то проще, если чуть больше подумать :)

Поделиться этой страницей