0
dron4ikkk
03.12.13
✎
14:29
|
Есть массив с одним значением "1|23|23|223|||" , как ее распарсить
по значениям табличной части?(СтрокаТЧ.Пункт_маршрута, СтрокаТЧ.Действие, и т.д.)
Массив = Новый Массив();
Массив.Добавить("1|23|23|223|||");
/////////////ТАБЛИЧНЫЕ ЧАСТИ/////////////////////////////
Для Каждого Элем Из Массив Цикл
СтрокаТЧ=новыйДок.Маршруты.Добавить();
СтрокаТЧ.Пункт_маршрута=Элем;
СтрокаТЧ.Действие=Элем;
СтрокаТЧ.С = Элем.С;
СтрокаТЧ.По = Элем.По;
СтрокаТЧ.Секция = Элем.Секция;
СтрокаТЧ.НП = Элем.НП;
КонецЦикла;
|
|
1
Индиго
03.12.13
✎
14:31
|
Функция ИзСтрокиСРазделителями(Значение,Разделитель = ",") Экспорт
Если ТипЗнч(Значение)<>Тип("Строка") Тогда
Сообщить("Функция ИзСтрокиСРазделителями.Некорректный вызов.Переданное значение должно быть строкой.");
Возврат Неопределено;
КонецЕсли;
спЗначения=Новый СписокЗначений;
Если Найти(Значение,Разделитель)=0 Тогда
спЗначения.Добавить(Значение);
Возврат спЗначения;
КонецЕсли;
ЗначениеРазбитое=СтрЗаменить(Значение,Разделитель,Символы.ПС);
Для н=1 По СтрЧислоСтрок(ЗначениеРазбитое) Цикл
спЗначения.Добавить(СтрПолучитьСтроку(ЗначениеРазбитое,н));
КонецЦикла;
Возврат спЗначения;
КонецФункции//ИзСтрокиСРазделителями
|
|
2
wms
03.12.13
✎
14:31
|
Функция РазложитьСтрокуВМассивПодстрок(Знач Стр, Разделитель = ",") Экспорт
МассивСтрок = Новый Массив();
Если Разделитель = " " Тогда
Стр = СокрЛП(Стр);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = СокрЛ(Сред(Стр,Поз));
КонецЦикла;
Иначе
ДлинаРазделителя = СтрДлина(Разделитель);
Пока 1=1 Цикл
Поз = Найти(Стр,Разделитель);
Если Поз=0 Тогда
МассивСтрок.Добавить(Стр);
Возврат МассивСтрок;
КонецЕсли;
МассивСтрок.Добавить(Лев(Стр,Поз-1));
Стр = Сред(Стр,Поз+ДлинаРазделителя);
КонецЦикла;
КонецЕсли;
КонецФункции // глРазложить
|
|