|
Словил такой баг - в строке символ STX (с кодом 2) |
☑ |
0
RomaH
naïve
16.11.17
✎
14:12
|
Работаю с лабораторным анализатором
обмен через текстовые файлы и базу данных программно-аппаратного
и вот через год работы аппарат пишет в БД и в файл такой символ
1С его в коде нормально обрабатывает - присваивает строковому реквизиту и вываливается в ошибку при попытке записать документ в базу 1С
модуль формы документа:
СтрокаДанных = СтрСоединить(МасивДанных,"&");
СтрокаТЧ.Результаты = СтрокаДанных;
КонецЦикла;
Записать();
СтрокаТЧ.Результаты содержит символ "STX"
на Записать() выдает ошибку - что-то там про недопустимый символ XML
|
|
1
NorthWind
16.11.17
✎
14:46
|
ну в принципе логично. XML это текстовый файл, т.е. там должен быть человекочитаемый текст. Ни в одной кодировке символ с кодом 2 не относится к текстовым человекочитаемым.
|
|
2
H A D G E H O G s
16.11.17
✎
14:49
|
Функция ЗаменитьНедопустимыеСимволы(Текст) Экспорт
ПозицияСимвола=1;
Пока Истина Цикл
ПозицияСимвола=НайтиНедопустимыеСимволыXML(Текст,ПозицияСимвола);
Если ПозицияСимвола=0 Тогда
Прервать;
КонецЕсли;
Текст=Сред(Текст,1,ПозицияСимвола-1)+"&"+Строка(КодСимвола(Сред(Текст,ПозицияСимвола,1)))+Сред(Текст,ПозицияСимвола+1);
КонецЦикла;
КонецФункции
|
|
3
NorthWind
16.11.17
✎
14:49
|
вам нужно при записи документа этот символ заменить уникальной последовательностью других, а при чтении сделать наоборот. Или использовать бинарный файл.
|
|
4
RomaH
naïve
16.11.17
✎
15:10
|
(2) это конечно хорошо
но получается в любой строке которую пишем в базу и которая получается из файла надо делать такую проверку
|
|
5
H A D G E H O G s
16.11.17
✎
15:10
|
(4) ИИииии?
|
|
6
RomaH
naïve
16.11.17
✎
15:14
|
(5) да как-то криво
в отладчике я эту строку вижу
символы 1С как-то интерпретирует
а вот в базу писать не хочет...
|
|
7
alxxsssar
16.11.17
✎
15:15
|
|
|