Ошибка запроса из-за кодировки UTF-8 с BOM (ByteOrderMark)

Возникает в момент выполнения запроса.

Поведение системы:

Прерывается выполнение модуля, система продолжает работать.

Ситуация и поиск проблемы

Используется HTTP-сервис, одним из методов которого является возврат текста запроса (для унификации текста запроса в различных базах).

После установке текста в объект “Запрос”, в момент выполнения запроса выходит ошибка “Синтаксическая ошибка “ВЫБРАТЬ”“.

Похожая ошибка описана вот здесь, но ситуация другая.

При этом визуально проблема с кодировкой не наблюдается: сообщение непонятно, так как любой запрос должен начинаться с “ВЫБРАТЬ”, в отладчике так же текст виден нормально, при копировании отрабатывает корректно.

Изначально был вызов Ответ.УстановитьТелоИзСтроки(ТекстЗапроса);

заменен на Ответ.УстановитьТелоИзСтроки(ТекстЗапроса,КодировкаТекста.UTF8);

далее Ответ.УстановитьТелоИзСтроки(ТекстЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.Использовать);

окончательный работоспособный вариант:

Ответ.УстановитьТелоИзСтроки(ТекстЗапроса,КодировкаТекста.UTF8,ИспользованиеByteOrderMark.НеИспользовать);

В примере, Ответ = Новый HTTPСервисОтвет;

Реклама похоронного бюро: “Если наши клиенты воскреснут, то вновь обратятся к нам!

— Аркадий Давидович