0
MrKartez
07.07.14
✎
08:28
|
Есть задание: из справочника ОС надо получить адрес, который формируется из адресного классификатора. Вот такую строку я получаю:"643,403194,Волгоградская обл,Нехаевский р-н,,Краснополье с,,,,,дом,корпус,кв." А нужна такая: "643,403194,Волгоградская обл,Нехаевский р-н,Краснополье с". Когда нет дома, надо удалять секцию, ответственную за адрес и слово слово дом и номер кв соответственно.
Вот мое решение:
Если Найти(АдресМестаНахожденияОС,",,")>0 Тогда
ЗаменаВСтроке = 13;
КонецЕсли;
Коллекция = Новый ТаблицаЗначений;
Коллекция.Колонки.Добавить("Строка");
Пока ЗаменаВСтроке<>0 Цикл
НоваяСтрока = Лев(АдресМестаНахожденияОС, Найти(АдресМестаНахожденияОС,","));
АдресМестаНахожденияОС = Прав(АдресМестаНахожденияОС,СтрДлина(АдресМестаНахожденияОС) - Найти(АдресМестаНахожденияОС,","));
НовСтр = Коллекция.Добавить();
НовСтр.Строка = НоваяСтрока;
ЗаменаВСтроке = ЗаменаВСтроке - 1;
КонецЦикла;
НомерУдаления = 9;
Пока НомерУдаления>=6 Цикл
Если Коллекция.Получить(НомерУдаления).Строка = "," Тогда
Коллекция.Удалить(НомерУдаления+3);
НомерУдаления = НомерУдаления - 1;
КонецЕсли;
КонецЦикла;
ДобавитьСтроку = "";
Для Каждого стр из Коллекция Цикл
ДобавитьСТроку = ДобавитьСТроку + Стр.СТрока;
КонецЦикла;
Пока Найти(ДобавитьСтроку,",,")>0 Цикл
ДобавитьСтроку = СтрЗаменить(ДобавитьСТроку,",,",",");
КонецЦикла;
Если Прав(ДобавитьСтроку,1) = "," Тогда
ДобавитьСтроку = Лев(ДобавитьСтроку,СтрДлина(ДобавитьСтроку)-1);
КонецЕсли;
|
|