Имя: Пароль:
1C
1С v8
Как разбить строку с разделителями на подстроки?
,
0 Вася Чез
 
11.07.13
07:46
Что-то у меня мозг закипел. Сделал тут макет печатный для ЗУП, нужно представление адреса юридического адреса разбить по разным ячейкам. Я сделал, вот так:

Адрес = Контакты.Представление;
Строка = СтрЗаменить(Адрес, ",",Символы.ПС);
Для Счетчик = 1 По СтрЧислоСтрок(Строка) Цикл
Если Счетчик = 1 Тогда Часть1 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 2 Тогда Часть2 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 3 Тогда Часть3 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 4 Тогда Часть4 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
Если Счетчик = 5 Тогда Часть5 = СтрПолучитьСтроку(Строка, Счетчик) КонецЕсли;
КонецЦикла;

Но это не совсем корректный вариант, потому что я знаю, что адрес у меня состоит из пяти частей, соответственно разбиваю на пять подстрок и пихаю их по разным ячейкам, но а вдруг в адресе будет ещё корпус заполнен или квартира, в общем как разбить строку с разделителем, если мы не знаем сколько будет слов разделенных запятой в адресе? может в массив загнать? есть примеры?
1 Cyberhawk
 
11.07.13
07:49
На вопрос "в общем как разбить строку с разделителем" ты сам себе уже ответил: Строка = СтрЗаменить(Адрес, ",",Символы.ПС);
2 1Сергей
 
11.07.13
07:51
Да, можно в массив. Да, примеры есть
3 Вася Чез
 
11.07.13
07:52
ну полный вопрос звучит так: "Как разбить строку на подстроки,разделенные ",", когда нам неизвестно количество этих будущих подстрок?"
4 Вася Чез
 
11.07.13
07:53
(2) что-то ничего вразумительного не нагуглил я, может вообще отдельную функцию написать?
5 Cyberhawk
 
11.07.13
07:54
(3) ответ тот же, что в (1)
6 НаборДанных
 
11.07.13
07:55
7 Вася Чез
 
11.07.13
07:56
(6) спасибо, сейчас попробую
8 Cube
 
11.07.13
07:59
(0) А что функция "РазложитьСтрокуВМассивПодстрок()" общего модуля "ОбщегоНазначенияЗК" не подходит?
9 НаборДанных
 
11.07.13
08:03
(8)Конечно подходит, просто ТС работает в Индии и ему платят за кол-во строк кода)
10 1Сергей
 
11.07.13
08:04
ничего вы не понимаете в квадратных колёсах
11 Вася Чез
 
11.07.13
08:23
(8) о, спасибо, не знал про неё, а то велосипед изобретать уже начал
12 sunson
 
11.07.13
09:18
Позор, Вася)
13 Serg_1960
 
11.07.13
09:25
(мимо проходя) Вообще-то в ЗУПе уже есть функционал, специализированный на работу с адресами.
14 Serg_1960
 
11.07.13
09:45
(13) +
УправлениеКонтактнойИнформацией.ПолучитьСтруктуруАдресаИзСтроки()
РегламентированнаяОтчетность.РазложитьАдрес()
РегламентированнаяОтчетность.АдресСоответствуетТребованиям()
...
15 НаборДанных
 
11.07.13
09:49
(14)Да он уже написал свою функцию в 100500 строк кода и заработал кучу денег за код, велокат с квадратными изобретен.