Заказы на доработку 1С (сервис удаленной работы)

Хранилище

База знаний
Неназначенных незавершенных заказов: 2, свеженьких 1
Бесплатные отчеты, обработки, конфигурации, внешние компоненты для 1С Статьи, описание работы, методики по работе с 1С

Здравствуйте, гость ( Вход | Зарегистрироваться )



> В XML файле вначале BODY в режиме HEX есть 3 символа: EF BB BF          
kuzma2000 Подменю пользователя
сообщение 22.04.25, 16:32
Сообщение #1

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

А помогите с формированием тела HTTP запроса в 1С.

Нам нужно отправлять в банк POST запрос с XML структурой.
В 1С сформировал заголовок и саму структуру.
Но банк рукается на парсинг - в начале тела сообщения есть какие то символы.

Отпарсил в Proxyman - да, таки есть.

В начале BODY в режиме HEX есть 3 символа: EF BB BF

Потом уже идет то, что я вставляю <?xml и т.д..

Ну и банк пишет что за заначки перед "<?xml"


Вот код который я тестирую.
Пробовал по разному отправить POST запрос - все равно в начале что-то есть.
Пробовал на разных платформах. Работаем на 8.3.18.1627.

Может кто-то сталкивался с такой бедой?
Что-то можете подсказать, что делать в этой ситуации?

    Заголовки = Новый Соответствие;
    Заголовки.Вставить("Authorization", "Bearer " + Токен);
    Параметры = "<?xml  version=""1.0"" encoding=""UTF-8"" standalone=""yes""?>
    |<PayerPays>
    |</PayerPays>
    |";
    
    НовыйЗапрос = Новый HTTPЗапрос(Адрес, Заголовки);
    НовыйЗапрос.УстановитьТелоИзСтроки(Параметры);
    SSL         = Новый ЗащищенноеСоединениеOpenSSL;
    Соединение  = Новый HTTPСоединение(Сервер, 443, , , , 3000, SSL, Ложь);
    //1Ответ       = Соединение.ВызватьHTTPМетод("POST", НовыйЗапрос);
    //2Ответ       = Соединение.Записать(НовыйЗапрос)
    HTTPОтвет = Соединение.ОтправитьДляОбработки(НовыйЗапрос);


Сообщение отредактировал Vofka - 22.04.25, 17:03
Прикрепленные файлы
Прикрепленный файл  Screenshot_2025_04_22_172821.jpg ( 79,87 килобайт ) Кол-во скачиваний: 11
 

Vofka Подменю пользователя
сообщение 22.04.25, 17:08
Сообщение #2

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14043
Из: Киев
Спасибо сказали: 4598 раз
Рейтинг: 3730.9

А скриншот это откуда?
Попробуйте сохранить ваш XML в файл на диске и посмотреть есть ли там эти символы.

kuzma2000 Подменю пользователя
сообщение 22.04.25, 17:32
Сообщение #3

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Сегодня, 18:08 * ,
Скриншот из Proxyman
Это я полез копаться что ж собственно шлет 1С наружу

В режиме обычного просмотра ничего не видно.
В Hex какие-то символы.
Банк вот это показывает.

Вот про файл я не понял, простите.

Как записать в файл данные из объекта НовыйЗапрос?

Если я в переменную Параметры напишу что угодно (какой-то "тест") то потом эта строчка через НовыйЗапрос.УстановитьТелоИзСтроки(Параметры) попадает в НовыйЗапрос

kuzma2000 @ Сегодня, 18:19 * ,
Вот что прислал банк.


Я пробовал в качестве тела сообщения писать любой тестовый текст - всегда есть 3 символа.
Видимо их некорректно парсит банк.

Сообщение отредактировал Vofka - 22.04.25, 18:14

sava1 Подменю пользователя
сообщение 22.04.25, 17:38
Сообщение #4

Живет на форуме
Иконка группы
Группа: Местный
Сообщений: 2745
Из: Проскуров
Спасибо сказали: 705 раз
Рейтинг: 684.2

Емть такая мулька. Решения не помню. Гугл в помощь.BOL или чтото похлжее

Спасибо сказали: kuzma2000,

kuzma2000 Подменю пользователя
сообщение 22.04.25, 18:05
Сообщение #5

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

sava1 @ Сегодня, 18:38 * ,
Попробовал
НовыйЗапрос.УстановитьТелоИзСтроки(Параметры, КодировкаТекста.UTF8, ИспользованиеByteOrderMark.НеИспользовать);

То же самое

Почитал - таки да, EF BB BF это как раз BOM для UTF-8

Но блин не выключаеться почему-то.

Vofka Подменю пользователя
сообщение 22.04.25, 18:20
Сообщение #6

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14043
Из: Киев
Спасибо сказали: 4598 раз
Рейтинг: 3730.9

kuzma2000, а если писать строку в кодировке ANSI?

Только что быстренько нагуглил такое:
ЗТ = Новый ЗаписьТекста(ИмяФайла, КодировкаТекста.ANSI);
ЗТ.Закрыть();
ЗТ = Новый ЗаписьТекста(ИмяФайла,,, Истина, Символы.ПС);
ЗТ.Записать(Данные);
ЗТ.Закрыть();

Тут человек сначала записывает пустой файл в кодировке ANSI, потом туда дописывает что надо в кодировке UTF-8. Это может не совсем прям то, что вам надо (т.к. тут создается файл на диске), но если другого варианта не найдете, можете попробовать это прогонять таким образом через временный файл и потом файл удалять.

Сообщение отредактировал Vofka - 22.04.25, 18:20

Спасибо сказали: kuzma2000,

kuzma2000 Подменю пользователя
сообщение 22.04.25, 18:38
Сообщение #7

Молчаливый
*
Группа: Пользователи
Сообщений: 4
Спасибо сказали: 0 раз
Рейтинг: 0

Vofka @ Сегодня, 19:15 * ,
Попробовал так
НовыйЗапрос.УстановитьТелоИзСтроки(Параметры, КодировкаТекста.ANSI ,ИспользованиеByteOrderMark.НеИспользовать);

Все равно добавляет в тело BOM

Vofka @ Сегодня, 19:20 * ,
Будем пробовать, спасибо.

Сделал, вроде работает.
Осталось банку попросить првоерить.

Глупая ошибка была.

Vofka Подменю пользователя
сообщение 23.04.25, 9:49
Сообщение #8

У нас здесь своя атмосфера...
***********
Группа: Основатель
Сообщений: 14043
Из: Киев
Спасибо сказали: 4598 раз
Рейтинг: 3730.9

Цитата(kuzma2000 @ 22.04.25, 19:38) *
Глупая ошибка была.

Так а как сделали в итоге?

xlmel Подменю пользователя
сообщение 24.04.25, 16:33
Сообщение #9

Общительный
**
Группа: Пользователи
Сообщений: 39
Из: Харьков
Спасибо сказали: 22 раз
Рейтинг: 24.7

Vofka @ Вчера, 9:49 * ,
Была похожая проблема. Сделал так на MS Windows

ТекстДок = Новый COMОбъект("scripting.filesystemobject");
ТекстФайл = ТекстДок.createtextfile(ИмяФайла);
Стр = "<?xml version=""1.0"" encoding=""windows-1251""?> и здесь все тело файла
ТекстФайл.write(Стр);
ТекстФайл = 0;
ТекстДок = 0;

Спасибо сказали: Vofka,

Не нашли ответа на свой вопрос?
Зарегистрируйтесь и задайте новый вопрос.


Ответить Новая тема
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

RSS Текстовая версия Сейчас: 14.05.25, 13:30
1С Предприятие 8.3, 1С Предприятие 8.2, 1С Предприятие 8.1, 1С Предприятие 8.0, 1С Предприятие 7.7, Литература 1С, Общие вопросы по администрированию 1С, Методическая поддержка 1С - всё в одном месте: на Украинском 1С форуме!