Кодировка в файлах DBF

1. MamakovTA 23.06.13 21:51 Сейчас в теме
В общем такая ситуация: попросили написать выгрузку документа в файлы DBF (2 с разными полями), все сделал, вроде работает, только есть одно НО - если открывать файл в exel - получаются крокозябры, если открыть, например, DBFViewer - все нормально. В обработке есть выбор кодировки, ANSI или OEM. Как сказал заказчик, цитирую: "У тех, кому отправляем, ничего не получается". Помогите, товарищи специалисты, может мой косяк и как вообще выбрать правильно кодировку?
Конфа - УТ 10, документ реализации.
Обработка прилагается.
Прикрепленные файлы:
ДБФка.epf
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Nevskiy 23.06.13 22:02 Сейчас в теме
Примерно вот так:

Если ФорматOEM Тогда
		ВидКодировки = "OEM";
	Иначе	
		ВидКодировки = "ANSI"; 
	КонецЕсли;
	
	ТовДБФ     .СоздатьФайл(СокрЛП(ИмяПути)+"\tovar.dbf");
	ТовДБФ.Кодировка = КодировкаXBase[ВидКодировки];


Насколько я знаю, формат OEM мы не используем. Осталось с предыдущих времен.

Только вот что-то мне подсказывает, что проблема ниразу не в кодировке.

Что касается "У тех, кому отправляем, ничего не получается" - предложите детально описать, что конкретно не получается. Это не описание проблемы и за такое пора бы уже заказчиков отстреливать.
3. MamakovTA 23.06.13 22:10 Сейчас в теме
(2)да, OEM - это DOS-кодировка. А что-то внятное вынудить бесполезно, я бился с описаниями полей два дня, пришлось с бубном прыгать. Просто уже жалко затраченного времени и сил. А с выбором у меня чуть проще, примерно так:

Файл = Новый XBase;
	Файл.Кодировка = ЭлементыФормы.Кодировка.Значение;
4. Nevskiy 23.06.13 22:16 Сейчас в теме
Такс, секунду.

КодировкаXBase - это системное перечисление в 8-ке.
КодировкаXBase (XBaseEncoding)
Значения

ANSI (ANSI)
OEM (OEM)

Описание:

Содержит варианты кодировок XBase.

Доступность: 

Сервер, толстый клиент, внешнее соединение. 
Возможен обмен с сервером. 

Показать



Вы же не просто строку с формы забираете, так ведь?
5. MamakovTA 23.06.13 22:39 Сейчас в теме
(4) да вроде нет, все хорошо должно быть.

Процедура ПриОткрытии()
ЭлементыФормы.Кодировка.СписокВыбора.Добавить("OEM", КодировкаXBase.OEM);
ЭлементыФормы.Кодировка.СписокВыбора.Добавить("ANSI", КодировкаXBase.ANSI);
КонецПроцедуры
6. MamakovTA 24.06.13 00:13 Сейчас в теме
дам чуть больше информации - два файла DBF. Первый - мой, который с кроказябрами, второй - выгрузка из 7.7, с которым все пучком.
Кто знает, как глянуть кодировку файла? Моя в ANSI
Прикрепленные файлы:
qqqq.DBF
123 (2).DBF
7. hogik 443 24.06.13 00:44 Сейчас в теме
(6)
qqqq.dbf - 0 (кодировка не задана)
123 (2).dbf - 866 (Russian MS-DOS)
8. MamakovTA 24.06.13 00:46 Сейчас в теме
(7) спасибо большое, попробую сейчас сделать кодировку вручную, может с выбором накосячил
9. hogik 443 24.06.13 00:51 Сейчас в теме
(8)
Пробуйте задавать OEM до создания файла.
MamakovTA; +1 Ответить
11. MamakovTA 24.06.13 00:54 Сейчас в теме
(9)
Каталог = ЭлементыФормы.Каталог.Значение;
Файл = Новый XBase;
Файл.Кодировка = КодировкаXBase.ANSI;
....
Файл.СоздатьФайл(Каталог);
Файл.Записать();
12. MamakovTA 24.06.13 00:56 Сейчас в теме
(9) спасибо огромное, добрый человек. Поставил ОЕМ и все стало идеально.
10. MamakovTA 24.06.13 00:52 Сейчас в теме
(7) Вручную написал
Файл.Кодировка = КодировкаXBase.ANSI;

и все равно, посмотрите пожалуйста этот файл
Прикрепленные файлы:
fdfdfd.DBF
13. hogik 443 24.06.13 00:56 Сейчас в теме
14. ELAM 38 01.11.13 12:26 Сейчас в теме
Тоже маюсь с кодировкой, можно подробнее расписать, что нужно сделать? Вот у меня есть файл .Dbf.
Вот что есть сейчас:
ДБФ_PLAT = новый XBase;
ДБФ_PLAT.ОткрытьФайл(Файл+"\datao\PLAT.DBF");
.....
ДБФ_PLAT.ЗакрытьФайл(); 


Что нужно вставить, чтобы текст читался и подставлялся в 1с нормально? Пробовал КодировкаXBase.ANSI и КодировкаXBase.OEM, не помогло, хотя может что не так делал.
15. ilya.don 1 16.01.17 13:24 Сейчас в теме
(14) у меня похожая проблема ни в той ни в другой кодировке не показывает нормальный текст :(
17. Sokar 16.01.17 13:51 Сейчас в теме
(15)
для определения в какой кодировке файл можно использовать:

ФайлDBF.ОткрытьФайл(ИмяФайла,,Истина);
Сообщить(ФайлDBF.Кодировка);
16. ilya.don 1 16.01.17 13:50 Сейчас в теме
в одной кодировке это выглядит вот так: ___i_i_ __ _______ _ ___.___., _____i_ __ ___ _184 _i_ 25-APR-13 _.2.2.5, ___ ___
...а в другой вот так: чр ъюэ-х шч- ёюуы эръы ╣ 5965 юЄ 21.11.2016 у., т Є. i. ╧─┬ 20% 16666.67 уЁэ.
18. ilya.don 1 16.01.17 14:40 Сейчас в теме
спс !! сейчас попробуем...
19. dante 27.01.17 13:04 Сейчас в теме
Посмотрите пожалуйста файл dbf не понятная кодировка никак не могу понять как его прочитать из 1с.
Прикрепленные файлы:
instx2.DBF
20. Cooler 22 27.01.17 13:25 Сейчас в теме
(19)
файл dbf не понятная кодировка никак не могу понять как его прочитать из 1с.
Вряд ли удастся его прочитать: мало того, что кодировка не определяется при просмотре в FAR как текст, так еще и формат нарушен - WinDBFview ругается на поврежденный заголовок.
21. dante 27.01.17 13:27 Сейчас в теме
Это файл из базы Эпсилона,зашифрованный что ли какой то?
Ничего нельзя сделать с ним?
22. Федосеев 02.03.18 16:42 Сейчас в теме
Для файлов дбф выгруженных из 7.7 для нормального чтения в 8

ФайлДБФ = Новый XBase;
ФайлДБФ.Кодировка = КодировкаXBase.OEM;

ФайлДБФ.ОткрытьФайл(ПутьКФайлу,,Истина);

Если ФайлДБФ.Открыта() = Ложь Тогда
Сообщить("Указанный файл не доступен, или неверного формата!!!");
Возврат;
КонецЕсли;


ФайлДБФ.Первая(); //Установим курсор на начало файла

Пока НЕ ФайлДБФ.ВКонце() Цикл
23. Tailor_Made 12.07.18 11:08 Сейчас в теме
Помогла тема, спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот