ну в принципе логично. XML это текстовый файл, т.е. там должен быть человекочитаемый текст. Ни в одной кодировке символ с кодом 2 не относится к текстовым человекочитаемым.
Функция ЗаменитьНедопустимыеСимволы(Текст) Экспорт
ПозицияСимвола=1;
Пока Истина Цикл
ПозицияСимвола=НайтиНедопустимыеСимволыXML(Текст,ПозицияСимвола);
Если ПозицияСимвола=0 Тогда
Прервать;
КонецЕсли;
Текст=Сред(Текст,1,ПозицияСимвола-1)+"&"+Строка(КодСимвола(Сред(Текст,ПозицияСимвола,1)))+Сред(Текст,ПозицияСимвола+1);
КонецЦикла;
КонецФункции
вам нужно при записи документа этот символ заменить уникальной последовательностью других, а при чтении сделать наоборот. Или использовать бинарный файл.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший