Бьется кодировка DBF файла при открытии

1. root_szr 89 14.01.24 19:23 Сейчас в теме
Добрый день.

Помогите найти косяк.

&НаКлиенте
Асинх Процедура ЗагрузитьФайл(Команда)
	
	ПараметрыДиалога = Новый ПараметрыДиалогаПомещенияФайлов;
	ПараметрыДиалога.Заголовок = "Выберите файл";
	ПараметрыДиалога.Фильтр = "Реестр  (_*.dbf)|_*.dbf";
	ОписаниеФайла = Ждать ПоместитьФайлНаСерверАсинх(,,,ПараметрыДиалога);
	Если ОписаниеФайла <> Неопределено Тогда
		ПрочитатьDBFВТаблицуЗначений(ОписаниеФайла.Адрес);
	КонецЕсли;
	
	ПоказатьОповещениеПользователя("Обработка файла завершена!");
	
КонецПроцедуры                    

&НаСервере
Процедура ПрочитатьDBFВТаблицуЗначений(АдресДанных)
	
        НашеИмяФайла = Прав(ИмяФайлаБезРасширения,8)+".dbf";

	ПутьКФайлу = КаталогВременныхФайлов() + НашеИмяФайла;	
	Данные = ПолучитьИзВременногоХранилища(АдресДанных);
	Данные.Записать(ПутьКФайлу);

	Попытка
		ФайлDBF = Новый XBase;
//	        ФайлDBF.Кодировка = КодировкаXBase.OEM;
	        ФайлDBF.ОткрытьФайл(ПутьКФайлу,,Истина);  
//	        Сообщить(ФайлDBF.Кодировка)
	Исключение
		Сообщение = Новый СообщениеПользователю;
		Сообщение.Текст = "Не удалось прочитать файл, по причине: " + ОписаниеОшибки();
		Сообщение.Сообщить();                                                        
		Возврат;
	КонецПопытки;

        ФайлDBF.Первая(); 

        Пока Не ФайлDBF.ВКонце() Цикл 
                Если Не ФайлDBF.ЗаписьУдалена() Тогда 
                КонецЕсли;
                ФайлDBF.Следующая();
        КонецЦикла;
	
	ФайлDBF.ЗакрытьФайл();

КонецПроцедуры 
Показать


Файл изначально в кодировке OEM/DOS/CP866.
Когда через временное хранилище файл передаем на сервер (сервер 1С на Linux), то у файла бьется кодировка - кириллица не при каких вариантах не отображается корректно - получаем кракозябры.

Если dbf-файл открываем в файловом варианте базы с жесткого диска на клиенте - открывается нормально, кириллица корректна, все норм.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. independ 1556 14.01.24 20:33 Сейчас в теме
(1) прочитать содержимое dbf на клиенте например в массив структур и далее отправить массив на сервер
3. spacecraft 14.01.24 21:42 Сейчас в теме
(1)
Файл изначально в кодировке OEM/DOS/CP866

(сервер 1С на Linux)

Вот этот косяк.
Только читать на виндовом клиенте и на сервер передавать уже прочитанные данные.
Оставьте свое сообщение

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