Имя: Пароль:
1C
1C 7.7
v7: Работа с dbf
,
0 kouki
 
21.11.11
12:17
Сдрасте)) Вопрос Идиота. Не подскажете возможно ли каким-либо образом получить данные об имени полей dbf-файла????типо dbf-veawer. чтобы ручками не вводить кждый раз???
1 Ёпрст
 
21.11.11
12:17
ты не поверишь
2 Wobland
 
21.11.11
12:18
(0) да
3 kouki
 
21.11.11
12:26
Ну хоть на статью какую нить отправьте)))
4 aka AMIGO
 
21.11.11
12:32
примерно тут:
Книга знаний: Пример работы с файлами DBF по интерфейсу ADO
а вообще-то в нижней строке окна браузера, Книга знаний
5 andrewks
 
21.11.11
12:32
СП
6 aka AMIGO
 
21.11.11
12:33
и ЖКК :)
7 kouki
 
21.11.11
12:39
ну я так и понял, что через XBase не получится...
8 aka AMIGO
 
21.11.11
12:41
(7) может и получиться..
почитай про ОписаниеПоля(......)
9 Ёпрст
 
21.11.11
12:41
(7) ПолучитьЗначениеПоля чем не устраивает ?!
10 palpetrovich
 
21.11.11
12:42
(7) смотри ОписаниеПоля
11 Ёпрст
 
21.11.11
12:43
имена знать вообще не обязательно, если что..
12 Ёпрст
 
21.11.11
12:44
(10) ты что?! Это же мужика в кепке в пофигураторе спрашивать надо, боязно автору СП открывать, вдруг чего прочитает лишнего, ненароком
13 kouki
 
21.11.11
12:54
(11) Я просто Унифицировать хотел.. А без имен нереально ж вроде доступ получить.. Ну по крайней мере так в ЖКК написано)))
14 aka AMIGO
 
21.11.11
12:59
извлеки все поля в ТЗ (или СЗ), и ей пользуйся
15 andrewks
 
21.11.11
13:01
(13)

ПолучитьЗначениеПоля(<?>)
Синтаксис:
ПолучитьЗначениеПоля(<НазваниеПоля>)
Назначение:
Возвращает значение поля.
Параметры:
<НазваниеПоля> - выражение с названием поля или с номером поля


повторяю: или с номером поля, как слышно, приём
16 kouki
 
21.11.11
13:03
(15). Слышно отлично, Спасибо я  понял)))) разберусь хоть  со всем этим))))
17 aka AMIGO
 
21.11.11
13:03
(15) ему надо вот позарез имена :)
18 aka AMIGO
 
21.11.11
13:05
а вообще-то интересно.. из ДД вытащить имена полей, и по ним читать дбф.. заодно - русские наименования вытаскивать..
логично :)
19 palpetrovich
 
21.11.11
13:05
(11) эх
Функция ВыгрузитьДБФвТЗ(базаДБФ)
   
   Перем Тип, Название, Длина, Точность;
   
   ТЗ = СоздатьОбъект ("ТаблицаЗначений");    
   //заполняем структуру ТЗ
   Для инд = 1 По базаДБФ.КоличествоПолей() Цикл
       базаДБФ.ОписаниеПоля(инд, Название, Тип, Длина, Точность);
       Если (Число(Тип) = 1) или (Число(Тип) = 5) Тогда
           ТЗ.НоваяКолонка(СокрЛП(Название),"Число",Число(Длина),Число(Точность),,,,);
       ИначеЕсли Число(Тип) = 2 Тогда
           ТЗ.НоваяКолонка(СокрЛП(Название),"Строка",Число(Длина),,,,,);
       Иначе
           ТЗ.НоваяКолонка(СокрЛП(Название),,,,,,,);
       КонецЕсли;
   КонецЦикла;    
   //заполняем данные в ТЗ
   Для индСтрока = 1 По базаДБФ.КоличествоЗаписей() Цикл
       ТЗ.НоваяСтрока();                                                                
       базаДБФ.Перейти(индСтрока);
       Для индКолонка = 1 По базаДБФ.КоличествоПолей() Цикл      
           ТЗ.УстановитьЗначение(индСтрока, индКолонка, базаДБФ.ПолучитьЗначениеПоля(индКолонка));
       КонецЦикла;  
   КонецЦикла;      
   
   базаДБФ.ЗакрытьФайл();

   Возврат ТЗ;

КонецФункции
20 aka AMIGO
 
21.11.11
13:06
(19) избалуешь ребенка :)
21 palpetrovich
 
21.11.11
13:11
(20) добрый я понедельник, расслабленный :)
22 palpetrovich
 
21.11.11
13:15
офф: Народ, а по ADO читать DBF быстрее? ...а 1sqlite умеет "левые" DBF  читать?
23 Mikeware
 
21.11.11
13:32
И где ДенисЧ с предложением "купить СП"?
неужели я усмею предложить СП первым?
24 Ёпрст
 
21.11.11
13:35
(22) гораздо быстрее, фоксовый провайдер умеет
25 aka AMIGO
 
21.11.11
13:37
(23) см. (5), тундра :)
26 Mikeware
 
21.11.11
13:39
(25) Судя по дальнейшему топику, СП у ТС украли..
ДенисаЧ нету, поэтому моя очередь предлагать купить СП...
27 palpetrovich
 
21.11.11
13:39
(24) ну вот запутал ты меня запятой своей :)
28 Mikeware
 
21.11.11
13:41
(27) А представь, что вместо запятой была бы @ :-)))
29 aka AMIGO
 
21.11.11
13:45
(26) а потом, главное: "в 10 минут успеть добежать до канадской границы!" :)
30 palpetrovich
 
21.11.11
13:46
(28) ну, здесь как раз я-бы наверное интерпретировал ее как AND ...даже не знаю почему :)

зы сейчас попробовал через АДО - ну и тормоз, хБэйз однозначно пошустрее будет :) ...ну или я его готовить не умею
31 kouki
 
21.11.11
13:55
(19),(20) Я уже написал что-то подобное)))))
Функция КакойТип(Тип)
   ВТип ="";
   Если Число(тип) = 1 Тогда
       ВТип ="Строка";
       Возврат  ВТип ;
   ИначеЕсли Число(тип) = 2 Тогда
ВТип ="Число";
       Возврат  ВТип ;
ИначеЕсли Число(тип) = 3 Тогда
ВТип ="Дата";
       Возврат  ВТип ;
ИначеЕсли Число(тип) = 4 Тогда
ВТип ="Логическое";
       Возврат  ВТип ;
ИначеЕсли Число(тип) = 5 Тогда
ВТип ="Число";
       Возврат  ВТип ;
   КонецЕсли;
КонецФункции

Процедура ОткрытьДБФ ()
    НазП ="";
    ТипП ="";
    ДлинаП = 0;
    ТочностьП = 0;
   файл = СоздатьОбъект("XBase");
   файл.ОткрытьФайл("D:\TempResourses\FONDY\DRAG.dbf");
   Для  й = 1 по файл.КоличествоПолей() Цикл
        файл.ОписаниеПоля(й,НазП,ТипП,ДлинаП,ТочностьП);
        ТЗПоля.НоваяКолонка(НазП,КакойТип(ТипП), ДлинаП, ТочностьП);
   КонецЦикла;
   
   
КонецПроцедуры
32 Ёпрст
 
21.11.11
13:57
http://zalil.ru/32101681
на вот .. развлекайся
33 palpetrovich
 
21.11.11
14:06
(32) вот спасибо, ща погляжу ;)
34 palpetrovich
 
21.11.11
14:10
+33 это-ж Microsoft OLE DB Provider ставить надо...
35 Ёпрст
 
21.11.11
15:52
(34) и ? Доступ к сайту мелкомягких закрыт шо ле ?
36 kouki
 
22.11.11
10:51
Не хочу создавать ради одного вопроса новую ветку. Подскажите такое дело.. Значит выбираю в реквизите диалога справочники.. Какая предопределенная процедура вызыввается когда выбираю определенный справочник????
37 ЧеловекДуши
 
22.11.11
10:58
(36)Не порти ветку :)
Создай новую, вопрос перефразируешь, а то нечегонепонятно :)
38 Ёпрст
 
22.11.11
11:25
(36) перед - ПриНачалеВыбораЗначения, после - ОбработкаВыбораЗначения и формула в реквизите диалога
39 palpetrovich
 
22.11.11
11:47
(35) не в этом дело, себе-то я поставлю - не вопрос, а вот клиенту - вопрос ...короче, пусть ждут-мучаются ;)
40 kouki
 
23.11.11
09:59
Значит так вопрос по теме. Я как понимаю таблицы dbf  из fox pro который дос только oledb можно перекинуть ибо там же индексные файлы...
41 BlackSeaCat
 
23.11.11
10:07
(40) Индексные файлы не при чем - ты их сам можешь создать.
42 Ёпрст
 
23.11.11
10:08
(40) не только
43 Mikeware
 
23.11.11
10:08
(38) Ёп, ты  ПоставщикДанных (ну, или чистое ТП) - используешь?
Если да, то есть вопрос (лучше по аське)
44 Ёпрст
 
23.11.11
10:15
(43) аськи нету ..а ТП использую без классов, если ты об этом.
45 Mikeware
 
23.11.11
10:18
(44) жаль, что аськи нет.
посоветуй, как при начале редактирования ячейки - отменить редактированеие ее, и перейти на редактирование другой (другого типа).
(цель - типа принудительного заполнения обязательных полей)
46 Ёпрст
 
23.11.11
10:23
(45) ПослеРедактированияЗначения
в этом событии надо рулить
47 Ёпрст
 
23.11.11
10:24
48 Mikeware
 
23.11.11
10:28
(46) ПослеРедактирования - наверное уже поздно...
Надо ПриНачалеРедактирования
ОтменитьРедактированиеЗначения - сейчас попробую, спасибо
49 Mikeware
 
23.11.11
10:40
(48) ОтменитьРедактированиеЗначения - работает. спасибо. апдейт к доке я, естественно, не читал :-(
При назначении другой колонки - ТекущейКолонкой, редактированию предлагается значение  старой колонки, но в новой (принадлежащей новой колонке) ячейке... :-(
http://www.1cpp.ru/forum/YaBB.pl?num=1285520767/495#495
50 kouki
 
23.11.11
12:14
(42) т.е. xthtp XBase можно???? я просто обработку почти написал переделывать не очень хочется