Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Как настроить кодировку чтения DBF?
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
grail
1С:Підприємство 8.2 (8.2.13.219)
"Бухгалтерія для України", редакція 1.2.
Розробка конфігурації: "ABBYY Ukraine", 2005-2011 (1.2.3.5)

Читаем DBF и записываем в текстовый файл.
Не получается настроить корректную кодировку текстовых полей в TXT файле, которые импортируются из DBF.
Как настроить кодировку чтения DBF?

Вот в каком виде выводится информация в TXTфайл:
**********************
ПлательщикСчет=20681097000659
Плательщик=‚I‹…Љ‘,’‡Ћ‚
ПлательщикБанк=I-”ђ.”.ЏЂ’ ЉЃ"Џђ?‚Ђ’ЃЂЌЉ",Њ.I-”ђЂЌЉI‚.
**********************

ПутьDBF = "C:\jbkl_rec.dbf"; 
ПутьTXT = "C:\CB_to_1C.txt";

Текст = Новый ТекстовыйДокумент;
БД = Новый XBase;
//БД.Кодировка="ANSI";
БД.ОткрытьФайл(ПутьDBF,,);

Текст.ДобавитьСтроку("_1CClientBankExchange");
Текст.ДобавитьСтроку("ВерсияФормата=1.00");
Текст.ДобавитьСтроку("Кодировка=Windows");
Текст.ДобавитьСтроку("Отправитель=Система 'Клієнт-Банк'");
Текст.ДобавитьСтроку("Получатель=Бухгалтерия для Украины (базова), редакция 1.2");
//Текст.ДобавитьСтроку("СекцияРасчСчет");
Текст.ДобавитьСтроку("ДатаНачала=2011-10-01");
Текст.ДобавитьСтроку("ДатаКонца=2011-10-20");
Текст.ДобавитьСтроку("РасчСчет=26001356326024");
Текст.ДобавитьСтроку("КодВалюты=980");
Текст.ДобавитьСтроку("НачальныйОстаток=0");

Пока БД.Следующая() Цикл
    Текст.ДобавитьСтроку("СекцияДокумент=Платежное поручение");
    Текст.ДобавитьСтроку("ВидДокумента=Платежное поручение");
    Текст.ДобавитьСтроку("Номер="+БД.N_D);
    Текст.ДобавитьСтроку("Дата="+БД.DATE);
//     Текст.ДобавитьСтроку("ДокументИД="+БД.REF);
    Текст.ДобавитьСтроку("Сумма="+БД.SUMMA);
    Текст.ДобавитьСтроку("КодВалюты=980");

    Текст.ДобавитьСтроку("ПлательщикСчет="+БД.COUNT_A);
    Текст.ДобавитьСтроку("Плательщик="+БД.NAME_A);    
    Текст.ДобавитьСтроку("ПлательщикБанк="+БД.BANK_A);        
    Текст.ДобавитьСтроку("ПлательщикМФО="+БД.MFO_A);
    Текст.ДобавитьСтроку("ПлательщикОКПО="+БД.OKPO_A);    

    Текст.ДобавитьСтроку("ПолучательСчет="+БД.COUNT_B);
    Текст.ДобавитьСтроку("Получатель="+БД.NAME_B);    
    Текст.ДобавитьСтроку("ПолучательБанк="+БД.BANK_B);        
    Текст.ДобавитьСтроку("ПолучательМФО="+БД.MFO_B);
    Текст.ДобавитьСтроку("ПолучательОКПО="+БД.OKPO_B);    

    Текст.ДобавитьСтроку("НазначениеПлатежа="+БД.N_P);
    Текст.ДобавитьСтроку("КонецДокумента");
    
КонецЦикла;
Текст.ДобавитьСтроку("КонецФайла");
Текст.Записать(ПутьTXT);
БД.ЗакрытьФайл();
Vond
КодировкаXBase (XBaseEncoding)
Значения
ANSI (ANSI)
OEM (OEM)

Описание:
Содержит варианты кодировок XBase.

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

См. также:
XBase, свойство Кодировка

Пример:
    B = Новый XBase;
    B.Поля.Добавить("CODE","S",11);
    B.Поля.Добавить("NAME","S",100);
    B.Поля.Добавить("ED","S",100);
    B.Кодировка = КодировкаXBase.OEM;
grail
Цитата(Vond @ 21.10.11, 22:49) необходимо зарегистрироваться для просмотра ссылки
КодировкаXBase (XBaseEncoding)
Значения
ANSI (ANSI)
OEM (OEM)

Описание:
Содержит варианты кодировок XBase.

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

См. также:
XBase, свойство Кодировка

Пример:
    B = Новый XBase;
    B.Поля.Добавить("CODE","S",11);
    B.Поля.Добавить("NAME","S",100);
    B.Поля.Добавить("ED","S",100);
    B.Кодировка = КодировкаXBase.OEM;


Точно!
Получилось!
Спасибо.

И еще пожалуйста!:

Как преобразовать число 165000.00 в стороку "165000.00", а то у меня выдаёт "165 000"!
и
Как преобразовать дату 2011.10.04 в стороку "2011-10-04", а то у меня выдаёт "20111004"!
Понимаю что не в тему ветки, но очень нужно!
Vond
чето не понятно, а что такое в конфигураторе комбинация клавиш Ctrl+F1 знаем?

Самостоятельно курим тему:
Встроенные функции языка (Script functions)

Строка (String)
Синтаксис:
Строка(<Значение>)

Параметры:
<Значение> (обязательный)

Тип: Произвольный.
Исходное значение.
Возвращаемое значение:

Тип: Строка.
Полученное значение.

Описание:
Преобразует полученный параметр в значение типа Строка.
При преобразовании к строке числа формируется его полное представление в стандартном виде, соответствующем национальным установкам.
Преобразование значений типа Булево зависит от национальных установок и содержит строковое представление этих значений.
При преобразовании к строке даты формируется ее полное представление в стандартном читабельном виде, соответствующем национальным установкам.
Преобразование к строке значений остальных типов производится по мере возможности и обычно содержит читабельное представление значения.

Пример:
Строка(Формат(текущаядата(),"ДФ=dd-MM-yyyy"))
logist
Цитата(grail @ 21.10.11, 22:56) необходимо зарегистрироваться для просмотра ссылки
Понимаю что не в тему ветки, но очень нужно!

Раз понимаете, то зачем пишите. Правила для всех одинаковы. "Очень нужно" после детского сада уже не катит.
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.