Заменить недопустимые символы xml. Заменяет недопустимые символы в XML-строке на заданные символы.
// Заменяет недопустимые символы в XML-строке на заданные символы.
//
// Параметры:
// Текст - Строка - строка, в которой требуется выполнить замену недопустимых символов.
// СимволЗамены - Строка - строка, на которую требуется выполнить замену недопустимого символа в XML-строке.
//
// Возвращаемое значение:
// Строка - строка, полученная заменой недопустимых символов в XML-строке.
//
Функция ЗаменитьНедопустимыеСимволыXML(Знач Текст, СимволЗамены = " ") Экспорт
#Если Не ВебКлиент Тогда
ПозицияНачала = 1;
Позиция = НайтиНедопустимыеСимволыXML(Текст, ПозицияНачала);
Пока Позиция > 0 Цикл
НедопустимыйСимвол = Сред(Текст, Позиция, 1);
Текст = СтрЗаменить(Текст, НедопустимыйСимвол, СимволЗамены);
ПозицияНачала = Позиция + СтрДлина(СимволЗамены);
Если ПозицияНачала > СтрДлина(Текст) Тогда
Прервать;
КонецЕсли;
Позиция = НайтиНедопустимыеСимволыXML(Текст, ПозицияНачала);
КонецЦикла;
Возврат Текст;
#Иначе
// Коды символов от 0 до 2^16-1, которые метод НайтиНедопустимыеСимволыXML
// считает недопустимыми: 0-8, 11-12, 14-31, 55296-57343.
Итог = "";
ДлинаСтроки = СтрДлина(Текст);
Для НомерСимвола = 1 По ДлинаСтроки Цикл
Символ = Сред(Текст, НомерСимвола, 1);
КодСимвола = КодСимвола(Символ);
Если КодСимвола < 9
Или КодСимвола > 10 И КодСимвола < 13
Или КодСимвола > 13 И КодСимвола < 32
Или КодСимвола > 55295 И КодСимвола < 57344 Тогда
Символ = СимволЗамены;
КонецЕсли;
Итог = Итог + Символ;
КонецЦикла;
Возврат Итог;
#КонецЕсли
КонецФункции
///////////////////////////////////////////////////////////////////////////////////////////////////////
// Copyright (c) 2019, ООО 1С-Софт
// Все права защищены. Эта программа и сопроводительные материалы предоставляются
// в соответствии с условиями лицензии Attribution 4.0 International (CC BY 4.0)
// Текст лицензии доступен по ссылке:
// https://creativecommons.org/licenses/by/4.0/legalcode
///////////////////////////////////////////////////////////////////////////////////////////////////////
ЗаменитьНедопустимыеСимволыВИмениФайла (БСП)
УдалитьНедопустимыеСимволы (БСП)
Удалить недопустимые символы XML
УдалитьНедопустимыеСимволыXML (БСП)
ПолучитьНедопустимыеСимволыВИмениФайла (БСП)
НайтиНедопустимыеСимволыВИмениФайла (БСП)
ЗаменитьОдниСимволыДругими (БСП)
Канал FastCode 1C в Телеграм! Шаблоны кода, статьи, полезные советы, курсы по 1С (8К участников)