|
Изменить строку. Покритикуйте мое решение ;) | ☑ | ||
|---|---|---|---|---|
|
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 Ну я только учусь
|
| Форум | Правила | Описание | Секции | Поиск |