Имя: Пароль:
1C
1С v8
Создание и сохранение DBF
0 shevelevartem
 
14.12.16
09:18
ДБФ = Новый XBase;
    ДБФ.Кодировка = КодировкаXBase.ANSI;
    
    ДБФ.поля.Добавить("РАЙОНБАЗЫ", "S", 100, 0);
    ДБФ.поля.Добавить("ПОСЕЛЕНИЕ", "S", 100, 0);
    ДБФ.поля.Добавить("НАСЕЛЕННЫЙ", "S", 100, 0);
    ДБФ.поля.Добавить("УЛИЦА", "S", 100, 0);
    ДБФ.поля.Добавить("ДОМ", "S", 100, 0);
    ДБФ.поля.Добавить("КОРПУС", "S", 100, 0);
    ДБФ.поля.Добавить("КВАРТИРА", "S", 100, 0);
    ДБФ.поля.Добавить("КОМНАТА", "S", 100, 0);
    ДБФ.поля.Добавить("ДОЛГ", "S", 100, 0);


Столкнулся с такой проблемой при создании DBF с названиями полей не по латинице ругается
Неверное имя поля "РАЙОНБАЗЫ"

Платформа 8.3.8.2054

В чем может быть проблема и почему нельзя сохранить названия полей русскими символами. В итоге на выходе нужна DBF c русским навзаниями полей для отправки агентам.

Знаю что можно поставить латинские буквы и все будет ГУД, Но задача стоит именно Английскими буквами
1 Cool_Profi
 
14.12.16
09:20
dbf (xbase) в 1с не умеет русские буквы в названиях полей.
2 shevelevartem
 
14.12.16
09:41
Как можно выкрутится? Есть что то чем можно заменить XBASE
3 Cool_Profi
 
14.12.16
09:46
ADODB, например
4 Лефмихалыч
 
14.12.16
09:48
(2) не используй русские буквы
5 Defender aka LINN
 
14.12.16
09:53
(0) "Но задача стоит именно Английскими буквами".
Ну и пиши себе английскими.
6 Mauser
 
14.12.16
09:54
(0) PAlNOHbA3bl
7 bodri
 
14.12.16
10:00
(0) почему именно дбф? если нужны русскими тогда ексель.
8 shevelevartem
 
14.12.16
10:21
"Но задача стоит именно Английскими буквами"

Опечатался нужно Русскими
9 shevelevartem
 
14.12.16
10:23
Нашел пример

Процедура Сформировать()
  
    
//РАБОТА С ФАЙЛАМИ 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(); //Закрываем соединение
                  
КонецПроцедуры

Что то ругается на CreateObject
из строки
DBConn = CreateObject("ADODB.Connection");
10 Cool_Profi
 
14.12.16
10:24
(9) Потому что это код для 77
Его нужно передалть
11 Масянька
 
14.12.16
10:27
(10) Обрадовал ТС :)))))))
Глупец, лишенный способности посмеяться над собой вместе с другими, не сможет долго выносить программирование. Фредерик Брукс-младший