Имя: Пароль:
1C
 
DBF: есть ли способ работать с полями MEMO?
0 romix
 
12.10.04
21:27
Есть файлы из другой программы, их надо зацепить в 1С.
Но 1С не умеет работать с полями MEMO.
Есть ли способ это обойти?
1 bsg
 
12.10.04
21:31
Делал экспорт из БД на ФоксПРо. Там были мемо-поля. Я обращался к фоксу через ОЛЕ и считывал эти поля.
2 Охламон
 
12.10.04
22:38
Мой вариант: берешь bdbfs - досовская версия свободная, и меняешь структуру полей в базе на текстовые, длинной этак 200... ну или на сколько тебе нудно, что б данные влезли, сохраняешь, получаешь файл побольше, но читаемый. Естественно, способ не динамический, но для импорта вполне сносный.
3 romix
 
13.10.04
17:40
Есть еще вариант - через ADO:

//*******************************************
Процедура Сформировать()
 
   
//РАБОТА С ФАЙЛАМИ DBF ЧЕРЕЗ ADO    
   
   
 Path="c:\"; //Путь к папке с файлами DBF
 
 //Стираем файл, если он уже существует
 Если фс.СуществуетФайл("c:\persons.dbf")=1 Тогда
     фс.УдалитьФайл("c:\persons.dbf");
 КонецЕсли;    
 
 //******* ПРИМЕР ЗАПИСИ DBF *******//

 //Открываем соединение
 DBConn = CreateObject("ADODB.Connection");
 DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;" +
                  "Data Source=" + Path + ";" +
                  "Extended Properties=""DBASE IV;"";");          

 //Создаем новый DBF и задаем его колонки
 DBConn.Execute("Create Table Persons (Name char(50), City char(50), Phone char(20), Zip decimal(5))");

 //Пишем строки в наш DBF
 DBConn.Execute("Insert into Persons Values('Иванов И.И.', 'Москва','123-45-67','14589')");
 DBConn.Execute("Insert into Persons Values('Поляков С.Л.', 'Москва','333-44-55','38215')");
 DBConn.Execute("Insert into Persons Values('Сидоров С.С.', 'Москва','222-33-44','54323')");
 
 
 
 //******* ПРИМЕР ЧТЕНИЯ DBF *******//
 

 //Делаем выборку
 Persons = DBConn.Execute("Select * from [Persons#DBF]");

 Пока Persons.EOF=0 Цикл //Цикл по записям DBF
   
   Имя=    Persons.Fields("Name").value;
   Город=  Persons.Fields("City").value;
   Телефон=Persons.Fields("Phone").value;
   Zip=    Persons.Fields("Zip").value;
   
   Сообщить("Имя="+Имя+" Город="+Город+" Телефон="+Телефон+" Zip="+Zip);
   
   Persons.MoveNext(); //Переходим к след. записи DBF
 КонецЦикла;

 DBConn.Close(); //Закрываем соединение
                 
КонецПроцедуры