Чтение DBF
Длина имени файла DBF без расширения не должна быть больше 8 символов
&НаКлиентеАсинх Процедура ПрочитатьФайл(Команда)
Расширение = "dbf";
ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов; ПараметрыДиалога.Заголовок = "Выберите файл"; ПараметрыДиалога.Фильтр = ФильтрПоРасширению(Расширение);
ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога); Если ОписаниеФайла = Неопределено Тогда Возврат; КонецЕсли;
АдресДанных = ОписаниеФайла.Адрес;
Расширение = ОписаниеФайла.СсылкаНаФайл.Файл.Расширение;
ПрочитатьФайлНаСервере(АдресДанных, Расширение);
КонецПроцедуры
&НаСервереПроцедура ПрочитатьФайлНаСервере(АдресДанных, Расширение)
ПутьКФайлу = ПолучитьИмяВременногоФайла(Расширение);
//Длина имени файла DBF без расширения не должна быть больше **8 символов** Файл = Новый Файл(ПутьКФайлу); ИмяБезРасширения = Файл.ИмяБезРасширения; Если СтрДлина(ИмяБезРасширения) > 8 Тогда ИмяБезРасширения = Лев(ИмяБезРасширения, 8); КонецЕсли;
ПутьКФайлу = СтрЗаменить(ПутьКФайлу, Файл.ИмяБезРасширения, ИмяБезРасширения);
ДанныеФайла = ПолучитьИзВременногоХранилища(Объект.АдресДанных); ДанныеФайла.Записать(ПутьКФайлу);
ФайлДБФ = Новый XBase; ФайлДБФ.ОткрытьФайл(ПутьКФайлу);
Если НЕ ФайлДБФ.Первая() Тогда Сообщение = Новый СообщениеПользователю; Сообщение.Текст = "Файл пустой"; Сообщение.Сообщить(); Возврат; КонецЕсли;
Пока НЕ ФайлДБФ.ВКонце() Цикл
СтрокаТаблицы = Объект.ДанныеФайла.Добавить(); СтрокаТаблицы.Наименование = ФайлДБФ.NAME; // обработка
ФайлДБФ.Следующая();
КонецЦикла;
ФайлДБФ.ЗакрытьФайл();
КонецПроцедуры