Создаете выгрузку из 1с на сайт с помощью текстового файла? Ничего не работает из-за BOM в UTF8. Разбираемся как создать UTF8 без BOM.
Рассмотрим абсурдный вариант без программирования, создавать файлы программно, открывать их в текстовом редакторе например notepad++ и менять кодировку. Понимая что вариант не рабочий перейдем к нормальному решению.
Что бы создать UTF8 без BOM создаем текстовый документ с BOM, потом открываем его считываем без «БУМ» и перезаписываем.
Пример функции которая это делает:
Функция ЗаписатьФайлВформате_UTF8_без_BOM(текст,полноеИмяФайла)
// записываем в файл с символами BOM в начале файле
ТекстовыйФайлUTF8_Bom = Новый ТекстовыйДокумент();
ТекстовыйФайлUTF8_Bom.ДобавитьСтроку(текст);
ТекстовыйФайлUTF8_Bom.Записать(полноеИмяФайла,"UTF-8″);
// открываем файл и считываем символы после символов BOM
Данные = Новый ДвоичныеДанные(полноеИмяФайла);
Строка64=Base64Строка(Данные);
Строка64=Прав(Строка64,СтрДлина(Строка64)-4);
ДанныеНаЗапись=Base64Значение(Строка64);
ДанныеНаЗапись.Записать(полноеИмяФайла);
КонецФункции
//Или использовать функцию ТекстовогоДокумента в поток
//Записать(, , , )
Дополнительные материалы:
