|
чтение DBF в 1С | ☑ | ||
---|---|---|---|---|
0
AlexToo
07.10.14
✎
14:46
|
Привет, надо загрузить накладную в 1с 8,2 из DBF файла, в самом файле кодировка OEM просматриваю файл экселем или DBFShow нормально всё отображается, а при чтении в 1С в Отладчике названия колонок отображаются иероглифами. Как можно исправить? Код открытия файла:
хВ = Новый XBASE; Если Кодировка = "OEM" Тогда хВ.Кодировка = КодировкаXBase.OEM; КонецЕсли; Если Кодировка = "ANSI" Тогда хВ.Кодировка = КодировкаXBase.ANSI; КонецЕсли; хВ.ОткрытьФайл(ПутьКФайлу); хВ.Первая(); ВсегоЗаписей = хВ.КоличествоЗаписей(); Сообщить("Фаил успешно открыт"); СоздатьПустойРазмер(); СоздатьПустойЦвет(); ТипНоменклатуры = Справочники.ТипыНоменклатуры.Изделие; Весовой = Истина; Итератор = 0; Пока Истина Цикл Итератор = Итератор + 1; Инд = Окр(Итератор / ВсегоЗаписей * 100, 2); ЕстьНом = 0; ГотоваяСтрока = ПрочитатьЗначениеПоФормату(хВ, ФорматФайла); |
|||
1
AlexToo
07.10.14
✎
14:51
|
ап ап ап
|
|||
2
Banned
07.10.14
✎
14:52
|
Попробуй поменять местами открытие файла и установку кодировки
|
|||
3
AlexToo
07.10.14
✎
14:55
|
пробывал не реагирует
|
|||
4
aka AMIGO
07.10.14
✎
14:58
|
ПопробЫвай убрать из кода упоминание кодировки вообще :)
ЗЫ. жаль, у меня 8-ки нет, а в последний раз я читал дбф-ки в 2009 году.. забыл уже.. |
|||
5
SSSSS_AAAAA
07.10.14
✎
15:06
|
(0) Поставь принудительно нужную кодировку. Без проверок. Ибо признак кодировки в файле может отсутствовать.
|
|||
6
aka AMIGO
07.10.14
✎
15:13
|
читал с такой установкой:
xB.Кодировка = КодировкаXbase.OEM; |
|||
7
SSSSS_AAAAA
07.10.14
✎
15:34
|
(6) И с ней кракозябры? Тогда меняй кодировку.
|
|||
8
aka AMIGO
07.10.14
✎
15:48
|
(7) не я автор топика
я сообщаю, что спокойно читал массу дбф-файлов именно с таким оператором. |
|||
9
Chikko
07.10.14
✎
15:49
|
(6) +1, но была как-то засада с выгрузками из фокспро(кажется), им было плевать на устанавливаемую кодировку, приходилось использовать внешние источники.
|
|||
10
SSSSS_AAAAA
07.10.14
✎
15:52
|
(8) Пардон :), промахнулся :)
|
|||
11
vde69
07.10.14
✎
16:22
|
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Jet\4.0\Engines\Xbase] "DataCodePage"="ANSI" "BDE"=dword:00000002 [HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\Control\Nls\CodePage] "1250"="c_1251.nls" "1251"="c_1251.nls" "1252"="c_1251.nls" и потом перегрузить машину |
|||
12
aka AMIGO
07.10.14
✎
16:23
|
(11) хм.. и так - на каждой машине, где будет использоваться обработка..
|
|||
13
AlexToo
07.10.14
✎
16:24
|
ух ты народ! спасибо что отозвались!!! пардоньте за молчание.
|
|||
14
AlexToo
07.10.14
✎
16:24
|
(6) ну я тоже так устанавливаю
|
|||
15
AlexToo
07.10.14
✎
16:25
|
(5) как принудительно?
|
|||
16
SSSSS_AAAAA
07.10.14
✎
16:32
|
(11) Это называется из пушки по воробьям.
|
|||
17
SSSSS_AAAAA
07.10.14
✎
16:33
|
(15) Вместо
Если Кодировка = "ANSI" Тогда хВ.Кодировка = КодировкаXBase.ANSI; КонецЕсли; просто хВ.Кодировка = КодировкаXBase.ANSI; Так понятно? Кодировку подобрать по месту. |
|||
18
AlexToo
07.10.14
✎
16:36
|
(17) кодировка пользователем выбирается
|
|||
19
SSSSS_AAAAA
07.10.14
✎
16:41
|
(18) Ну вот пусть он ее правильно и выбирает.
|
|||
20
AlexToo
07.10.14
✎
16:52
|
(19) и ANSI и OEM пробывал всё равно
|
|||
21
SSSSS_AAAAA
07.10.14
✎
17:17
|
(20) за "пробЫвал" повбывав бы
Ну так займитесь определением правильной кодировки. В крайнем случае дайте файл, посмотрю. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |