Имя: Пароль:
1C
1С v8
Проблема с чтением dbf
,
0 never_be
 
02.04.14
17:20
Первый раз сталкиваюсь читаю dbf вот так:

    хб = Новый XBase();    
        хб.ОткрытьФайл("E:\file.dbf",,Истина);
        хб.Первая();
        Пока НЕ хб.ВКонце() Цикл
        
        Дата = Строка(хб.DATE);
        Номер = Строка (хб.NUM)
        МаркаМашины = Строка(хб.MARK);

        хб.Следующая();
        КонецЦикла;    

       хб.ЗакрытьФайл();

Проблема в том что в переменную Дата (Строка) возвращает пусто хотя это поле в файле есть, NUM заполняет нормально, MARK выдает ошибку что такого поля нет хотя оно есть в файле, в чем может быть проблема ? Раньше все работало нормально, может с dbf что-то не так ?
1 vladko
 
02.04.14
17:22
(0) а отладчик что показывает по поводу mark? посмотри там вообще всю структуру хб
2 Wobland
 
02.04.14
17:23
как насчёт посмотретьисходникгалазми?
3 mikecool
 
02.04.14
17:26
(2) раньше это работало!!!
4 never_be
 
02.04.14
17:27
(1) Посмотрел, там поле называется чуть по другому, может дело в кодировке ? 1С в структуре показывает ANSI. И все даты после чтения пустые.
5 never_be
 
02.04.14
17:30
С полями разобрался, проблема только с датами у меня их в файле несколько и все не загружаются, может в самом dbf они должны быть в другом формате ?
6 vladko
 
02.04.14
17:31
Дата = Строка(хб.DATE);
надо Дата переназвать. Нельзя такие идентификаторы давать, когда он совпадает с методом языка
7 Wobland
 
02.04.14
17:31
>Дата
так себе слово для переменной
8 mikecool
 
02.04.14
17:32
(6) да это фигня
(7) попробуй любую строку преобразовать в дату и ты получишь ответ, неужели так сложно попробовать?
9 Wobland
 
02.04.14
17:32
судя по (5) надо дать ему немного времени подумать..
10 Wobland
 
02.04.14
17:32
(8) чего это я на нчь глядя буду строки преобразовывать? ;)
11 vladko
 
02.04.14
17:32
ну и сам смотри, у тебя хб.DATE в строку превращается. А что там далее - нам не известно
12 never_be
 
02.04.14
17:38
(6) Это для примера, переменная называется по другому.
(11) Дело не в этом, открываю dbf экселем, в полях с датами есть значения, смотрю отладчиком в 1С что лежит в хб (вычислить выражение) после чтения первой строки, так вот в датах пустые значения типа 01.01.0001 00:00:00
13 mikecool
 
02.04.14
17:40
(10) а че бы и нет )))
14 Wobland
 
02.04.14
17:42
>Строка(хб.DATE)
а зачем тебе вообще строковое представление даты?
(13) я бы преобразовал "хорошую девушку" в хорошую девушку. так ведь пустое значение получится, как ни старайся
15 never_be
 
02.04.14
17:51
(14) Читай внимательно (12)  смотрю чего прочиталось в хб и там даты пустые.
16 Wobland
 
02.04.14
17:56
(15) почитал второй раз.. я бы глянул в дбф стороннимисредствами ([xls не в счёт)
17 Fedor-1971
 
02.04.14
18:03
(12) в ДБФ не может быть такой даты, поскольку он текстовый и хранится дата в виде 02/04/14, возможно без "/".
Попробуй изменить DATE на DATE1
18 Fedor-1971
 
02.04.14
18:03
(17)+ название поля в самом ДБФ
19 never_be
 
02.04.14
18:08
(16) (17) (18) В файле есть 3 даты DATE, DO_DATE, DX_DATE в экселе все заполнены значениями типа  - 02.04.2014 (так эксель показывает), а в 1С болт, все пустое.
20 Wobland
 
02.04.14
18:19
возьми xBaseView. он показывает как есть, а не как думает ексель
21 never_be
 
02.04.14
18:21
(20) ГЫ он ругается и посылает лесом, не открывает мой dbf.
22 Wobland
 
02.04.14
18:22
(21) ну, то есть, какие-то проблемы с "исходником"?
23 never_be
 
02.04.14
18:24
(22) Оправил все эти траблы ребятам которые формируют мне файл, пусть ковыряют.
24 Wobland
 
02.04.14
18:25
ексель же не матерился ;)
25 never_be
 
02.04.14
18:26
(24) ему пофиг, все ок говорит, это ваш модный xBaseView левый :)
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан