Некоторые картинки не загружаются из РФ и РК, используйте VPN.

среда, 4 января 2023 г.

1СЗаготовка ADODB.Connection OLEDB UTF-8

Загружал прайс сварога и получил кривую кодировку. Посмотрел какая кодировка и выснилось, что стоит UTF-8. Сначала решений не было, но вернувшись к вопросу пару месяцев спустя нашел случайно ответ


Функция ПрочитатьCSVвТЗ_ADO(ИмяФайла, Разделитель=";", ЗаголовкиИзПервойСтроки = Ложь)
	ТаблицаРезультат = Новый ТаблицаЗначений;
	Файл = Новый Файл(ИмяФайла);
    
	Connection=Новый COMОбъект("ADODB.Connection");
	Connection.Open("Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Файл.Путь+";Extended Properties=""text;HDR=No;IMEX=1;FMT=Delimited;CharacterSet=65001""");

	Схема = СтрШаблон("[%1]
		|ColNameHeader=%2
		|Format=Delimited(%3)
		|DecimalSymbol=.", Файл.Имя, Формат(ЗаголовкиИзПервойСтроки, "БЛ=False; БИ=True"), Разделитель);
	ФайлСхемы = Новый ТекстовыйДокумент;
	ФайлСхемы.УстановитьТекст(Схема);
	ФайлСхемы.Записать(Файл.Путь + "Schema.ini", "CESU-8"); // UTF-8 без BOM
	
	RecordSet=Новый COMОбъект("ADODB.Recordset");
	RecordSet.ActiveConnection = Connection;
	ЗапросЛист="select * from "+Файл.Имя;
	RecordSet.Open(ЗапросЛист, Connection);
    
	//Здесь читаем файл в ТаблицаРезультат
    
	RecordSet.Close();
	Connection.Close();
	Возврат(ТаблицаРезультат);
КонецФункции

Собственно кодировка указывается в настройке подключения

Комментариев нет:

Отправить комментарий