Имя: Пароль:
1C
1C 7.7
v7: Существует ли аналог НайтиНедопустимыеСимволыXML в 7.7 ?
,
0 dimm7310
 
27.08.19
12:52
На сайт выгружается большой XML файл, где то в нем есть недопустимый(е) символы. Файл не проходит проверку валидности на сайте.
Возможно ли при формировании файла проверять все строки на недопустимые символы? Не смог найти в инете решения для 7.7
1 Злопчинский
 
27.08.19
12:56
составь перечень недопустимых символов или допустимых символов и проверяй при формировании.
часто такими символами становятся символ табуляции и перевод строки
2 Ёпрст
 
27.08.19
13:00
(0) ну дый проверяй xml по схеме, делов то.
3 dimm7310
 
27.08.19
13:13
(1) Может есть полный список таких символов?
4 dimm7310
 
27.08.19
13:18
сейчас при попытке открыть xml файл https://ibb.co/3M7Wm2d
такой или похожий символ можно получить по Alt26, в блокноте поиском не нашел.
строка 56944 пустая
5 Карст
 
27.08.19
13:43
оченно если копируют со всяких оутлоков в 1С , много неожиданных символов можно узнать ))
6 MWWRuza
 
гуру
27.08.19
15:17
Я вот такую функцию, правда для немного других, но похожих, целей писал:

Функция ПроверитьСтроку(Стр)
    ВалидСимв = "йцукеёнгшщзхъфывапролджэячсмитьбю.ЙЦУКЕЁНГШЩЗХЪФЫВАПРОЛДЖЭЯЧСМИТЬБЮ,1234567890-=_+*%&$#№~*“”/\|@#qwertyuiop[]asdfghjkl;'zxcvbnm,./QWERTYUIOP{}ASDFGHJKL:""ZXCVBNM<>«»`()!? ±";
    Если СтрДлина(Стр) < 84 Тогда
        Сообщить(Стр);
    КонецЕсли;
    Сч = 0;
    Для Сч = 1 По СтрДлина(Стр) - 1 Цикл
        Провсимв = Сред(Стр, Сч, 1);    
        Если Найти(ВалидСимв, ПровСимв) = 0 Тогда
            Сообщить(Стр);    
        КонецЕсли;
    КонецЦикла;
КонецФункции

Тут наоборот, список допустимых для моей задачи символов. И если в нем не находится проверяемый символ, то считается недопустимым и выводится соответствующее сообщение...
7 MWWRuza
 
гуру
27.08.19
15:20
(5)Да, именно так. Проблемы у клиентов возникают иногда, именно после загрузки накладной из присланного по почке файла exel.
8 NikVars
 
28.08.19
12:09
(7) Есть еще в регламентированных отчетах, которые умеют выгружаться процедура ЗаписатьУзелВФайл, там есть обработка спец символов. Может будет полезно.
9 MWWRuza
 
гуру
28.08.19
12:57
(8)Это немного другое... Это "экранирование" всяких кавычек, и т.п., вот из комментария: При формировании символьной строки сиволы &, <, >, ", ' должны заменяться на последовательность символов &amp, &lt, &gt, &quot, &apos соответственно.
То-есть, это символы допустимые, но должны правильно передаваться.
А тут, как я понимаю, всякие табы, ентеры и т.п...
10 NikVars
 
29.08.19
09:24
(9) Ага, понимаю. Или удаляй из строки все символы с кодами меньше 32.
11 ProgAL
 
29.08.19
09:37
Посмотри в любой типовой функцию в общем модуле ОбщегоНазначения.
Оптимист верит, что мы живем в лучшем из миров. Пессимист боится, что так оно и есть.