пятница, 25 декабря 2015 г.

Перекодировка текста в/из UTF-8 штатными средствами 1С 7.7

Надо: Сохранить из 1С 7.7 файл в формате UTF-8

Решение больше частью отсюда.
Альтернативные варианты: использование библиотеки от romix или использовать adodb stream.

UPD 16.08.17 По умершей ссылке было что-то вроде этого:

Функция ПреобразоватьСтрокуВУТФ8(Стр)
    Длина=СтрДлина(Стр);
    Итог="";
    Для Н=1 По Длина Цикл
        Знак=Сред(Стр,Н,1);
        Код=КодСимв(Знак);
        Если Код<128 Тогда
            Итог=Итог+Знак;
        Иначе
            Если (Код>=КодСимв("А"))И(Код<=КодСимв("п")) Тогда
                Итог=Итог+Симв(208)+Симв(144+Код-КодСимв("А"));
            ИначеЕсли (Код>=КодСимв("р"))И(Код<=КодСимв("я")) Тогда
                Итог=Итог+Симв(209)+Симв(128+Код-КодСимв("р"));
            ИначеЕсли (Знак="ё") Тогда
                Итог=Итог+Симв(209)+Симв(145);
            ИначеЕсли (Знак="Ё") Тогда
                Итог=Итог+Симв(208)+Симв(129);
            ИначеЕсли (Знак="і") Тогда
                Итог=Итог+Симв(209)+Симв(150);
            ИначеЕсли (Знак="ї") Тогда
                Итог=Итог+Симв(208)+Симв(151);
            ИначеЕсли (Знак="є") Тогда
                Итог=Итог+Симв(209)+Симв(148);
            ИначеЕсли (Знак="Є") Тогда
                Итог=Итог+Симв(208)+Симв(132);
            КонецЕсли;
        КонецЕсли;
    КонецЦикла;
    Возврат Итог;
КонецФункции