Имя: Пароль:
1C
 
Как проверить наличие недопустимых символов xml ?
0 Вальдемар
 
25.09.10
17:08
Сижу себе, выгружаю типовыми правилами из ТиС в УТ.  
Вдруг вываливается злобная ошибка парсера в msxml4.dll


   childNode.text = Строка(value);

вот на этой вот строчке его корёжит.

это в обработке tr77_81.ert

вот в этой процедуре:

Процедура ЗаписатьЭлемент(node, name, value = "")
   childNode = DOMDocument.createNode(1, name, "");
   childNode.text = Строка(value);
   node.appendChild(childNode);
КонецПроцедуры // одЗаписатьЭлемент()



Причём на самой заурядной строчке : там всего лишь наименование   (буквы, цифры, скобки). Т.е. ничего особенного, чего не было бы  в других строчках!  

Как с этим справиться
1 smaharbA
 
25.09.10
17:10
Найти(валюя,СимволТабуляции)
2 Torquader
 
25.09.10
23:02
Там скорее < и > встречаются.
3 Torquader
 
25.09.10
23:03
Точнее ( < > )
4 zak555
 
25.09.10
23:17
-->
5 woody woodpecker
 
25.09.10
23:26
сделай в 77 ТиИ. Было такое, когда в наименовании контрагента затесался запрещённый символ. ТиИ исправило ситуацию
6 Рэйв
 
25.09.10
23:57
(0)я их в свое время как таракfнов по одному вылавливал
точно помню как  "№" менял на "N"  :-)
приятного мало конечно, но лучше посиди пару часов, прошерсти базу один раз, чем поптом все время спотыкаться.
7 Вальдемар
 
26.09.10
00:29
(1)
(2)
(6)

Спасибо.
Вставил операторы

   Сообщить("Value="+value);
   Сообщить("?????="+СтрДлина(Строка(value)));

И оно выдало

Value=910097A00892
Длина=13

Оппа! 12! одного символа не хватает.

Делаю копипаст в опенофис-- копипастится вот чё:
910097A008#92

а в обычный txt - при просмотре totalcommander lister показывает 910097A008.92

В общем некий значок, который не отображается ни 1С, ни обычный блокнот!
Будем ловить дальше...
8 Вальдемар
 
26.09.10
01:50
В HEX-просмотре эта штука выглядит так:
39 31 30 30 39 37 41 30 30 38 1D 39 32

910097A008.92

т.е. это символ, HEX-код которого 1D.  

Открываем тамблицу ASCII и узнаём... что это

GS    Group Separator (Разделитель групп).

Вот от вредитель. Как он туды попал - загадка, видимо магия Гарри Поттера в шаловливых ручках операторов :)
9 Поручик
 
26.09.10
02:00
Мог быть копи-паст при вводе данных или загрузка откуда-то.
Если можно курочить конфу, сделай вырезание определённых символов из наименований и вообще строковых реквизитов при записи объекта.