Опишите ошибку
Медод ЗаписьXML.ЗаписатьТипДокумента() работает несовместмо с 1С.
В самой платформе (до 8.3.27.2214 включительно) содержатся ошибки.
Воспроизведение ошибки
- В 1С не работает ЗаписатьТипДокумента с двумя параметрами:
ЗаписьXML = Новый ЗаписьXML;
ЗаписьXML.УстановитьСтроку();
ЗаписьXML.ЗаписатьТипДокумента("a","b"); //!!
Результат = ЗаписьXML.Закрыть();
1С: Недостаточно фактических параметров
- В 1С нет проверки первого параметра на корректность!
ЗаписьXML = Новый ЗаписьXML;
ИмяФайла = ПолучитьИмяВременногоФайла("xml");
ЗаписьXML.ОткрытьФайл(ИмяФайла);
ИмяДокумента = "html><script xmlns=""http://www.w3.org/1999/xhtml""><![CDATA[alert('PWNED!');]]></script>";
ЗаписьXML.ЗаписатьТипДокумента(ИмяДокумента ," ",);
ЗаписьXML.Закрыть();
...и открываем файл ИмяФайла...
Дополнительная информация
Далее приведены только отличающиеся результаты вызовов.
Также см. примечание к п.8
-
ЗаписьXML.ЗаписатьТипДокумента(,"2","3");
1С: Несоответствие типов (параметр номер '1')
OneScrpit: Пропущен обязательный параметр
-
ЗаписьXML.ЗаписатьТипДокумента("","2","3");
1С: Результат==<!DOCTYPE SYSTEM "2" [3]>
OneScrpit: Внешнее исключение (System.ArgumentException): The value cannot be an empty string. (Parameter 'name')
-
ЗаписьXML.ЗаписатьТипДокумента(" ","2","3");
1С: Результат==<!DOCTYPE SYSTEM "2" [3]>
OneScrpit: Внешнее исключение (System.ArgumentException): Invalid name character in ' '
-
ЗаписьXML.ЗаписатьТипДокумента("a",,"3");
1С: Несоответствие типов (параметр номер '2')
OneScrpit: Пропущен обязательный параметр
-
ЗаписьXML.ЗаписатьТипДокумента("a","","3");
1С: Результат==<!DOCTYPE a [3]>
OneScrpit: Результат==<!DOCTYPE a SYSTEM ""[3]>
-
ЗаписьXML.ЗаписатьТипДокумента("a"," ","3");
1С: Результат==<!DOCTYPE a SYSTEM " " [3]>
OneScrpit: Результат==<!DOCTYPE a SYSTEM " "[3]>
Здесть отличие в пробеле между " и [. Оно сохраняется всегда при наличии 3-го параметра.
-
ЗаписьXML.ЗаписатьТипДокумента("a","2","");
1С: Результат==<!DOCTYPE a SYSTEM "2">
OneScrpit: Результат==<!DOCTYPE a SYSTEM "2"[]>
-
ЗаписьXML.ЗаписатьТипДокумента("a","2","3","");
1С: Результат==<!DOCTYPE a PUBLIC "2" "3">
OneScrpit: Результат==<!DOCTYPE a PUBLIC "2" "3"[]>
Кто где прав? Какие случаи требуют исправления?
Опишите ошибку
Медод ЗаписьXML.ЗаписатьТипДокумента() работает несовместмо с 1С.
В самой платформе (до 8.3.27.2214 включительно) содержатся ошибки.
Воспроизведение ошибки
1С: Недостаточно фактических параметров
...и открываем файл
ИмяФайла...Дополнительная информация
Далее приведены только отличающиеся результаты вызовов.
Также см. примечание к п.8
ЗаписьXML.ЗаписатьТипДокумента(,"2","3");1С: Несоответствие типов (параметр номер '1')
OneScrpit: Пропущен обязательный параметр
ЗаписьXML.ЗаписатьТипДокумента("","2","3");1С: Результат==<!DOCTYPE SYSTEM "2" [3]>
OneScrpit: Внешнее исключение (System.ArgumentException): The value cannot be an empty string. (Parameter 'name')
ЗаписьXML.ЗаписатьТипДокумента(" ","2","3");1С: Результат==<!DOCTYPE SYSTEM "2" [3]>
OneScrpit: Внешнее исключение (System.ArgumentException): Invalid name character in ' '
ЗаписьXML.ЗаписатьТипДокумента("a",,"3");1С: Несоответствие типов (параметр номер '2')
OneScrpit: Пропущен обязательный параметр
ЗаписьXML.ЗаписатьТипДокумента("a","","3");1С: Результат==<!DOCTYPE a [3]>
OneScrpit: Результат==<!DOCTYPE a SYSTEM ""[3]>
ЗаписьXML.ЗаписатьТипДокумента("a"," ","3");1С: Результат==<!DOCTYPE a SYSTEM " " [3]>
OneScrpit: Результат==<!DOCTYPE a SYSTEM " "[3]>
Здесть отличие в пробеле между
"и[. Оно сохраняется всегда при наличии 3-го параметра.ЗаписьXML.ЗаписатьТипДокумента("a","2","");1С: Результат==<!DOCTYPE a SYSTEM "2">
OneScrpit: Результат==<!DOCTYPE a SYSTEM "2"[]>
ЗаписьXML.ЗаписатьТипДокумента("a","2","3","");1С: Результат==<!DOCTYPE a PUBLIC "2" "3">
OneScrpit: Результат==<!DOCTYPE a PUBLIC "2" "3"[]>
Кто где прав? Какие случаи требуют исправления?