Столкнулся с проблемой выбора файлов в определенной папке. Погуглив наткнулся на статью //infostart.ru/public/155226/, но так как я только зарегестрировался, скачать это чудо у меня не вышло. Почитав СП нашел интересную функцию НайтиФайлы(). сел, подумал и написал своеобразный выход из ситуации. Были использованны две табличные части, две кнопки и 10 строчек кода.
Смысл моего алгоритма прост: берем конкретную папку и ищем в ней все файлы с расширением xml и записываем их в табличную часть. Потом указав галочкой нужный, парсим его во вторую табличную часть. все просто, а главное работает :)
Вот код:
&НаКлиенте
Процедура СозданиеПапки(Команда)
Объект.ДанныеОПути = "\storage\sdcard0\data\"; //"c:\ss\";//
Для Каждого Элем из НайтиФайлы(Объект.ДанныеОПути,"*.xml") Цикл
ОбработкаСпискаВыбора(Элем.Имя);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбработкаСпискаВыбора(Имя)
ТЧ = Объект.Табличка.Добавить();
ТЧ.ИмяФайла = Объект.ДанныеОПути + Имя;
КонецПроцедуры
&НаКлиенте
Процедура ДругаяКоманда(Команда)
Для Каждого Стр из Объект.Табличка Цикл
Если Стр.Выбор = Истина Тогда
Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(Стр.ИмяФайла);//(ПутьКФайлу);
// чтение осуществляется по одному тегу
Пока Чтение.Прочитать() Цикл
// анализируем тип элемента и его имя
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если Чтение.Имя="tovar" Тогда
// создаем новый элемент
ТЧ = Объект.Данные.Добавить();
// читаем атрибуты
Пока Чтение.ПрочитатьАтрибут() Цикл
Если Чтение.Имя="kod_tovar" Тогда
ТЧ.Код = Чтение.Значение;
ИначеЕсли Чтение.Имя = "naim_tovar" Тогда
ТЧ.Наименование = Чтение.Значение;
ИначеЕсли Чтение.Имя = "cena" Тогда
ТЧ.Цена = Чтение.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Надеюсь что это поможет кому-нибудь :)