В общем такая ситуация: попросили написать выгрузку документа в файлы DBF (2 с разными полями), все сделал, вроде работает, только есть одно НО - если открывать файл в exel - получаются крокозябры, если открыть, например, DBFViewer - все нормально. В обработке есть выбор кодировки, ANSI или OEM. Как сказал заказчик, цитирую: "У тех, кому отправляем, ничего не получается". Помогите, товарищи специалисты, может мой косяк и как вообще выбрать правильно кодировку?
Конфа - УТ 10, документ реализации.
Обработка прилагается.
Конфа - УТ 10, документ реализации.
Обработка прилагается.
Прикрепленные файлы:
ДБФка.epf
По теме из базы знаний
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Примерно вот так:
Насколько я знаю, формат OEM мы не используем. Осталось с предыдущих времен.
Только вот что-то мне подсказывает, что проблема ниразу не в кодировке.
Что касается "У тех, кому отправляем, ничего не получается" - предложите детально описать, что конкретно не получается. Это не описание проблемы и за такое пора бы уже заказчиков отстреливать.
Если ФорматOEM Тогда
ВидКодировки = "OEM";
Иначе
ВидКодировки = "ANSI";
КонецЕсли;
ТовДБФ .СоздатьФайл(СокрЛП(ИмяПути)+"\tovar.dbf");
ТовДБФ.Кодировка = КодировкаXBase[ВидКодировки];
Насколько я знаю, формат OEM мы не используем. Осталось с предыдущих времен.
Только вот что-то мне подсказывает, что проблема ниразу не в кодировке.
Что касается "У тех, кому отправляем, ничего не получается" - предложите детально описать, что конкретно не получается. Это не описание проблемы и за такое пора бы уже заказчиков отстреливать.
(2)да, OEM - это DOS-кодировка. А что-то внятное вынудить бесполезно, я бился с описаниями полей два дня, пришлось с бубном прыгать. Просто уже жалко затраченного времени и сил. А с выбором у меня чуть проще, примерно так:
Файл = Новый XBase;
Файл.Кодировка = ЭлементыФормы.Кодировка.Значение;
Такс, секунду.
КодировкаXBase - это системное перечисление в 8-ке.
Вы же не просто строку с формы забираете, так ведь?
КодировкаXBase - это системное перечисление в 8-ке.
КодировкаXBase (XBaseEncoding)
Значения
ANSI (ANSI)
OEM (OEM)
Описание:
Содержит варианты кодировок XBase.
Доступность:
Сервер, толстый клиент, внешнее соединение.
Возможен обмен с сервером.
ПоказатьВы же не просто строку с формы забираете, так ведь?
дам чуть больше информации - два файла DBF. Первый - мой, который с кроказябрами, второй - выгрузка из 7.7, с которым все пучком.
Кто знает, как глянуть кодировку файла? Моя в ANSI
Кто знает, как глянуть кодировку файла? Моя в ANSI
Прикрепленные файлы:
qqqq.DBF
123 (2).DBF
(7) Вручную написал
Файл.Кодировка = КодировкаXBase.ANSI;
и все равно, посмотрите пожалуйста этот файл
Файл.Кодировка = КодировкаXBase.ANSI;
и все равно, посмотрите пожалуйста этот файл
Прикрепленные файлы:
fdfdfd.DBF
Тоже маюсь с кодировкой, можно подробнее расписать, что нужно сделать? Вот у меня есть файл .Dbf.
Вот что есть сейчас:
Что нужно вставить, чтобы текст читался и подставлялся в 1с нормально? Пробовал КодировкаXBase.ANSI и КодировкаXBase.OEM, не помогло, хотя может что не так делал.
Вот что есть сейчас:
ДБФ_PLAT = новый XBase;
ДБФ_PLAT.ОткрытьФайл(Файл+"\datao\PLAT.DBF");
.....
ДБФ_PLAT.ЗакрытьФайл();
Что нужно вставить, чтобы текст читался и подставлялся в 1с нормально? Пробовал КодировкаXBase.ANSI и КодировкаXBase.OEM, не помогло, хотя может что не так делал.
в одной кодировке это выглядит вот так: ___i_i_ __ _______ _ ___.___., _____i_ __ ___ _184 _i_ 25-APR-13 _.2.2.5, ___ ___
...а в другой вот так: чр ъюэ-х шч- ёюуы эръы ╣ 5965 юЄ 21.11.2016 у., т Є. i. ╧─┬ 20% 16666.67 уЁэ.
...а в другой вот так: чр ъюэ-х шч- ёюуы эръы ╣ 5965 юЄ 21.11.2016 у., т Є. i. ╧─┬ 20% 16666.67 уЁэ.
Посмотрите пожалуйста файл dbf не понятная кодировка никак не могу понять как его прочитать из 1с.
Прикрепленные файлы:
instx2.DBF
Для файлов дбф выгруженных из 7.7 для нормального чтения в 8
ФайлДБФ = Новый XBase;
ФайлДБФ.Кодировка = КодировкаXBase.OEM;
ФайлДБФ.ОткрытьФайл(ПутьКФайлу,,Истина);
Если ФайлДБФ.Открыта() = Ложь Тогда
Сообщить("Указанный файл не доступен, или неверного формата!!!");
Возврат;
КонецЕсли;
ФайлДБФ.Первая(); //Установим курсор на начало файла
Пока НЕ ФайлДБФ.ВКонце() Цикл
ФайлДБФ = Новый XBase;
ФайлДБФ.Кодировка = КодировкаXBase.OEM;
ФайлДБФ.ОткрытьФайл(ПутьКФайлу,,Истина);
Если ФайлДБФ.Открыта() = Ложь Тогда
Сообщить("Указанный файл не доступен, или неверного формата!!!");
Возврат;
КонецЕсли;
ФайлДБФ.Первая(); //Установим курсор на начало файла
Пока НЕ ФайлДБФ.ВКонце() Цикл
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот