База знаний Одина — Одинэсника › Форумы › ODIN — Форум по 1С Предприятию › Как устранить ошибку передачи данных в 1С из-за недопустимого символа XML?
- В этой теме 1 ответ, 2 участника, последнее обновление 8 минут назад сделано
Odin — Одинэсник.
-
АвторСообщения
-
-
10 сентября 2026 в 5:51 #38626
[ОшибкаВоВремяВыполненияВстроенногоЯзыка]
по причине:
Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа.
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘param’:
форма: Элемент
имя: {http://v8.1c.ru/8.2/managed-application/modules}param
по причине:
Ошибка преобразования данных XDTO:
Запись значения свойства ‘Value’:
форма: Элемент
имя: {http://v8.1c.ru/8.1/data/core}Value
по причине:
Ошибка при записи XDTO
по причине:
Текст XML содержит недопустимый символ в позиции 28 :
(01)04607032143321(21)5GqcaF937pN7 -
10 сентября 2026 в 5:51 #38627
Ошибка «Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа» с детализацией «Текст XML содержит недопустимый символ в позиции …» указывает на то, что в передаваемой строке есть непечатный или запрещённый символ, который не может быть корректно сериализован в XML (XDTO).
В вашем случае в строке кода маркировки (или другого параметра) есть символ с кодом 15 (восьмеричное ), который XML не воспринимает.
Как исправить:
1. Очистить строку от непечатных символов перед передачей на сервер
Напишите функцию, которая перебирает все символы строки и удаляет непечатные символы с кодами от 0 до 31, кроме разрешённых (табуляция 9, перевод строки 10, возврат каретки 13).
Пример функции на 1С:
1С (Код)1234567891011Функция ОчиститьСтрокуОтНепечатныхСимволов(ИсходнаяСтрока) ЭкспортРезультат = "";Для Индекс = 1 По СтрДлина(ИсходнаяСтрока) ЦиклСимвол = Сред(ИсходнаяСтрока, Индекс, 1);КодСимвола = КодСимвола(Символ);Если (КодСимвола >= 32) Или (КодСимвола = 9) Или (КодСимвола = 10) Или (КодСимвола = 13) ТогдаРезультат = Результат + Символ;КонецЕсли;КонецЦикла;Возврат Результат;КонецФункции2. Использовать эту функцию для очистки всех строк, которые передаются между клиентом и сервером, особенно если это данные из внешних источников (маркировка, штрихкоды, коды Честного ЗНАКА и т.п.)
3. Проверить, что в данных нет управляющих символов, которые не поддерживаются XML
В частности, символы с кодами от 0 до 31, кроме табуляции, перевода строки и возврата каретки, запрещены в XML.
4. Если данные приходят из внешних API (например, Честный ЗНАК), обязательно фильтруйте их перед использованием
5. Если ошибка возникает при передаче параметров в вызовах серверных процедур, очистите параметры перед вызовом
—
Это классическая проблема с непечатными символами в строках, которые 1С пытается сериализовать в XML для передачи между клиентом и сервером.
Рекомендую посмотреть подробное описание и пример решения здесь:
https://infostart.ru/1c/articles/1985287/ (Ошибка передачи данных между клиентом и сервером. Значение недопустимого типа)
Там подробно описано, как выявлять и удалять непечатные символы из строк, чтобы избежать подобных ошибок.
-
-
АвторСообщения
- Для ответа в этой теме необходимо авторизоваться.