Функция загружает данные из dbf файла в таблицу значений. За основу взято https://infostart.ru/public/103060/ Зависит от: ПутьКФайлу() https://fastcode.im/Templates/6672
// Функция загружает данные из dbf файла в таблицу значений.
// Зависит от ПутьКФайлу() https://fastcode.im/Templates/6672
// Параметры:
// ИмяФайла - Строка - полный путь к файлу. Если не указан, то откроется диалог выбора пути к файлу.
// Кодировка - КодировкаXBase - Если не указан, то КодировкаXBase.OEM
//
Функция ТаблицаЗначенийИзDBF(Кодировка = Неопределено, ПутьКФайлу = Неопределено) Экспорт
Если Кодировка = Неопределено Тогда
Кодировка = КодировкаXBase.OEM;
КонецЕсли;
Если ПутьКФайлу = Неопределено Тогда
ПутьКФайлу = ПутьКФайлу("Выберите dbf-файл","(*.dbf)|*.dbf",РежимДиалогаВыбораФайла.Открытие);
КонецЕсли;
// Открытие файла данных
ФайлДанных = Новый XBase(ПутьКФайлу);
ФайлДанных.Кодировка = Кодировка;
Если Не ФайлДанных.Открыта() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Не удалось открыть файл " + ПутьКФайлу;
Сообщение.Сообщить();
Возврат Неопределено;
КонецЕсли;
// Переменные и объекты, что бы не создавать постоянно в цикле
ОписаниеБулево = Новый ОписаниеТипов("Булево");
ОписаниеДаты = Новый ОписаниеТипов("Дата",,, Новый КвалификаторыДаты(ЧастиДаты.Дата));
// Создание таблицы значений
ТаблицаЗначений = Новый ТаблицаЗначений;
Для Каждого Поле из ФайлДанных.Поля Цикл
Если Поле.Тип = "L" Тогда
Тип = ОписаниеБулево;
ИначеЕсли Поле.Тип = "D" Тогда
Тип = ОписаниеДаты;
ИначеЕсли (Поле.Тип = "N") ИЛИ (Поле.Тип = "F") Тогда
Тип = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(Поле.Длина, Поле.Точность));
Иначе
Тип = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(Поле.Длина));
КонецЕсли;
ТаблицаЗначений.Колонки.Добавить(Поле.Имя, Тип);
КонецЦикла;
// Заполнение строк таблицы
Работаем = ФайлДанных.Первая();
Пока Работаем Цикл
СтрокаТаблицы = ТаблицаЗначений.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаТаблицы, ФайлДанных);
Работаем = ФайлДанных.Следующая();
КонецЦикла;
ФайлДанных.ЗакрытьФайл();
Возврат ТаблицаЗначений;
КонецФункции
Транспонировать таблицу значений
Сохранение таблицы значений в XML
ЗаполнитьТаблицуЗначений (БСП)
Дополнить таблицу значений - приемника данными из таблицы значений - источника
#1, 19 апреля 2020 22:16
Зависит от: ПутьКФайлу() https://fastcode.im/Templates/6672