Имя: Пароль:
1C
1С v8
Работа с DBF
0 darkhome
 
01.12.11
15:27
Как загрузить все информацию из DBF в ТаблицуЗначений 1С 8.2
1 Нуф-Нуф
 
01.12.11
15:27
использовать внешние источники данных и запросы
2 Buster007
 
01.12.11
15:28
(1) если они с выходом нового релиза платформы стали нормально работать...
3 vmv
 
01.12.11
15:30
(0) с использованием внешних источников, качаешь у мягких драйвер визуал фокспро(если его нет в винде), инсталишь в источники данных ОДБС, поключаешь папку с файлами к внешему источнику конфигурации и наслаждаещься просмотром, загрузкой и пр.

ложка дегтя - необходимо создать для дбф индексный файл, но это не проблема для профи и тех, кто программил еще на фох 1.0)
4 vmv
 
01.12.11
15:32
(2) они и на 8.2.14.528 нормально работали, т.е. данные программо можно было получать без проблем запросами.

были и остаються проблемы при просмотрах списков, но это скорее проблемы драйверов ОДБС, а не 1С, так запросы выгребают все на ура
5 darkhome
 
01.12.11
15:34
А как программно это сделать? внешняя обработка пишется под БП 2.0
6 Amiralnar
 
01.12.11
15:37
Используйте объект XBASE в 1С.
7 Buster007
 
01.12.11
15:39
(4) у меня все текстовые данные из дбф файлов 7ки получались в какой-то непонятной кодировке.
(3) используя фоксПро драйвер, нельзя использовать СОЕДИНЕНИЯ с таблицами.
8 kosts
 
01.12.11
15:40

// Функция считывает в табличный документ данные из файла в формате dBase III (*.dbf)
//
// Параметры:
//  ТабличныйДокумент  - ТабличныйДокумент, в который необходимо прочитать данные
//  ИмяФайла           - имя файла в формате TXT, из которого необходимо прочитать данные
//
// Возвращаемое значение:
//  Истина, если файл прочитан, Ложь - иначе
//
Функция мПрочитатьТабличныйДокументИзDBF(ТабличныйДокумент, ИмяФайла) Экспорт
   
   ВыбФайл = Новый Файл(ИмяФайла);
   Если НЕ ВыбФайл.Существует() Тогда
       Сообщить("Файл не существует!");
       Возврат Ложь;
   КонецЕсли;
   
   
   XBase  = Новый XBase;
   XBase.Кодировка = КодировкаXBase.OEM;
   Попытка
       XBase.ОткрытьФайл(ИмяФайла);
   Исключение
       Сообщить("Ошибка открытия файла!");
       Возврат Ложь;
   КонецПопытки;
   
   ТабличныйДокумент.Очистить();
   ТекущаяСтрока = 1;
   
   
   ТекущаяКолонка = 0;
   Для каждого Поле Из XBase.поля Цикл
       ТекущаяКолонка = ТекущаяКолонка + 1;
       ТабличныйДокумент.Область("R" + Формат(ТекущаяСтрока, "ЧГ=") +"C" + Формат(ТекущаяКолонка, "ЧГ=")).Текст = Поле.Имя;
   КонецЦикла;
   
   
   Рез = XBase.Первая();
   Пока Не XBase.ВКонце() Цикл
       ТекущаяСтрока = ТекущаяСтрока + 1;
       ТекущаяКолонка = 0;
       Для каждого Поле Из XBase.поля Цикл
           ТекущаяКолонка = ТекущаяКолонка + 1;
           Если Поле.Тип = "M" Тогда
               Продолжить;    
           КонецЕсли;
           ТабличныйДокумент.Область("R" + Формат(ТекущаяСтрока, "ЧГ=") +"C" + Формат(ТекущаяКолонка, "ЧГ=")).Текст = XBase.ПолучитьЗначениеПоля(ТекущаяКолонка - 1);
       КонецЦикла;
       
       XBase.Следующая();
   КонецЦикла;
   
   Возврат Истина;
   
КонецФункции
Программист всегда исправляет последнюю ошибку.