Имя: Пароль:
1C
1С v8
Изменить строку. Покритикуйте мое решение ;)
,
0 MrKartez
 
07.07.14
08:28
Есть задание: из справочника ОС надо получить адрес, который формируется из адресного классификатора. Вот такую строку я получаю:"643,403194,Волгоградская обл,Нехаевский р-н,,Краснополье с,,,,,дом,корпус,кв." А нужна такая: "643,403194,Волгоградская обл,Нехаевский р-н,Краснополье с". Когда нет дома, надо удалять секцию, ответственную за адрес и слово слово дом и номер кв соответственно.

Вот мое решение:                

Если Найти(АдресМестаНахожденияОС,",,")>0 Тогда
        ЗаменаВСтроке = 13;
    КонецЕсли;
    
    Коллекция = Новый ТаблицаЗначений;
    Коллекция.Колонки.Добавить("Строка");
    Пока ЗаменаВСтроке<>0 Цикл
        НоваяСтрока = Лев(АдресМестаНахожденияОС, Найти(АдресМестаНахожденияОС,","));
        АдресМестаНахожденияОС = Прав(АдресМестаНахожденияОС,СтрДлина(АдресМестаНахожденияОС) -  Найти(АдресМестаНахожденияОС,","));  
        
        НовСтр = Коллекция.Добавить();
        НовСтр.Строка = НоваяСтрока;
        
        ЗаменаВСтроке  = ЗаменаВСтроке - 1;
    КонецЦикла;
    
    НомерУдаления = 9;
    
    Пока НомерУдаления>=6 Цикл
        Если Коллекция.Получить(НомерУдаления).Строка = "," Тогда
            Коллекция.Удалить(НомерУдаления+3);
            НомерУдаления = НомерУдаления - 1;
        КонецЕсли;
    КонецЦикла;
    
    ДобавитьСтроку = "";
    
    Для Каждого стр из Коллекция Цикл
        ДобавитьСТроку = ДобавитьСТроку + Стр.СТрока;
    КонецЦикла;
    
    Пока Найти(ДобавитьСтроку,",,")>0 Цикл
        ДобавитьСтроку = СтрЗаменить(ДобавитьСТроку,",,",",");
    КонецЦикла;
    
    Если Прав(ДобавитьСтроку,1) = "," Тогда
        ДобавитьСтроку = Лев(ДобавитьСтроку,СтрДлина(ДобавитьСтроку)-1);
    КонецЕсли;
1 patria0muerte
 
07.07.14
08:36
а чем типовой механизм не устраивает?
2 Fish
 
07.07.14
08:38
(1) +100. Какой-то ненужный велосипед.
3 patria0muerte
 
07.07.14
08:38
+(1) В типовых есть ОМ УправлениеКонтактнойИнформацией где есть функция ПолучитьПредставлениеАдресаПоСтрока()
4 patria0muerte
 
07.07.14
08:39
"Все уже украдено до нас" (с)
5 MrKartez
 
07.07.14
08:42
(1) Эпичный провал :D Ну я только учусь
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс