![]() |
|
v8: Импорт из ДБФ, имеющей длинное наименование поля | ☑ | ||
---|---|---|---|---|
0
SergeiK
07.05.10
✎
07:21
|
Сделал экспорт эл. накладной в самописную конфигурацию из файла ДБФ. Но одно из полей в этом файле имеет имя более 8 символов, и 1с выкидывает ошибку... Можно ли это каким-нибудь образом обойти?
Спасибо |
|||
1
Ювелир
07.05.10
✎
07:23
|
А заранее файл обработать нельзя?
|
|||
2
Ювелир
07.05.10
✎
07:24
|
имя поля скорректировать и вуаля!
|
|||
3
Маленький Вопросик
07.05.10
✎
07:24
|
в самописной конфигурации поле никак увеличить?
|
|||
4
sda553
07.05.10
✎
07:24
|
Насколько я помню, никак не обойти, переделывайте имена полей до 8-ми символов. И вообще отказывайтесь от ДБФ - для импорта экспорта у восьмерки есть xml
|
|||
5
Ювелир
07.05.10
✎
07:27
|
ДБФ-ку можно обрабатывать не в 1с первоначально. В том числе можно и на автомате настроить преобразование.
|
|||
6
SergeiK
07.05.10
✎
07:28
|
(4) я бы отказался, но эл.документы только в ДБФ приходят.
Или может как-то сделать что-бы в командной строке имя этого поля переименовать. Чтобы в обработке 1с это выполнялось. |
|||
7
xoma1c
07.05.10
✎
07:29
|
Экселем открывается? (0)
|
|||
8
SergeiK
07.05.10
✎
07:30
|
(7) да, открывается
|
|||
9
dk
07.05.10
✎
07:36
|
ado попробовать
|
|||
10
Jofa
07.05.10
✎
07:36
|
Почему не хочешь при загрузке в базу обрезать? Например Прав(Строка, КолСимв)
|
|||
11
Alpinist22
07.05.10
✎
07:36
|
Вчера доделал загрузку данных из дбф, оказывается мне еще и повезло с длиной полей.
(0) ты как к XBASE-объекту обращаешься? |
|||
12
SergeiK
07.05.10
✎
07:38
|
(11) вот таким образом:
Файл = Новый XBASE; Файл.ОткрытьФайл(Диалог.ПолноеИмяФайла,,0); Файл.Кодировка = КодировкаXBase.OEM; |
|||
13
shuhard
07.05.10
✎
07:39
|
(12) забей на Новый XBASE
кури ADODB |
|||
14
Alpinist22
07.05.10
✎
07:40
|
(12) четко, прям как у меня, даже кодировка DOS ))
Я думаю (9) и (13) правы в этом случае (10) а к полю он как будет обращаться? |
|||
15
SergeiK
07.05.10
✎
07:42
|
Нет маленького примерчика с ADODB?
|
|||
16
Alpinist22
07.05.10
✎
07:43
|
Судя по тому как ADO позволяет работать с XLS-доками, может быть и для DBF это прокатит, вот пример:
MyCon=Новый COMОбъект ("ADODB.Connection");
|
|||
17
dk
07.05.10
✎
07:44
|
||||
18
Alpinist22
07.05.10
✎
07:44
|
Прикол в том что ему главное наличие винды начиная с XP и старше, дрова для самих файлов не нужны.
|
|||
19
Alpinist22
07.05.10
✎
07:46
|
(17) спасибо гуру, много полезного по ссылке!
|
|||
20
shuhard
07.05.10
✎
07:47
|
||||
21
SergeiK
07.05.10
✎
07:47
|
Спасибо - сегодня попробую
Что и как получится - обязательно расскажу |
|||
22
SergeiK
07.05.10
✎
07:48
|
(20) после этого должно обязательно получиться!!!
|
|||
23
shuhard
07.05.10
✎
07:51
|
(21) [Что и как получится - обязательно расскажу]
это лишние |
|||
24
SergeiK
07.05.10
✎
13:25
|
Имеем следующий код:
Path="c:\"; DBConn = Новый COMОбъект("ADODB.Connection"); DBConn.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Path+";Extended Properties=DBASE IV"); Persons = DBConn.Execute("SELECT * FROM [736582.DBF]"); При обработке вылетает ошибка: Ошибка при вызове метода контекста (Execute): Произошла исключительная ситуация (Microsoft JET Database Engine): Неопознанная ошибка Persons = DBConn.Execute("SELECT * FROM [736582.DBF]"); Такой файл существует, и обрабатыается и с помощью кода XBASE обрабатывается без ошибок... В тоже вермя с помощью ADODB другой файл обрабатывается без ошибок. В чем может быть проблема, Может в версиях DBASE? |
|||
25
SergeiK
07.05.10
✎
13:54
|
можно ли программн проверить к какому типу относится открываемый файл?
|
|||
26
shuhard
07.05.10
✎
14:03
|
(25) можно, например по хэдеру файла
или тупо обернуть Execute в Попытка и перебрать все типы dbf |
|||
27
SergeiK
07.05.10
✎
14:32
|
(26) попробовать перебрать такие значения?
";Extended Properties=DBASE IV" ";Extended Properties=DBASE V" ";Extended Properties=DBASE VI" |
|||
28
dk
07.05.10
✎
14:57
|
||||
29
shuhard
07.05.10
✎
15:06
|
(27) не верю, нет в природе BASE VI
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |