О некоторых особенностях реализации парсера XPath в 1С

25.07.24

Разработка - Механизмы платформы 1С

О некоторых особенностях реализации парсера XPath в 1С, из-за которых может возникать ошибка "Ошибка в выражении XPath Invalid expression "

Наткнулся на одну особенность парсера XPath в 1С, из-за которой вполне валидные запросы вызывают ошибку "XPath Invalid expression".

Если попытаться, например, выбрать узлы, содержащие некое значение атрибута, но при этом не содержащие дочерние узлы определенного вида, то выражение с функцией not(), примененной к элементу, приводит к ошибке.

/*/ElementA[ElementB[@attrib="value"]/not(ElementC)]



В то же время отрабатывает запрос
 

/*/ElementA[ElementB[@attrib="value"] and not(descendant::elementC)] 


Но, например, в Oxygen XML Editor отрабатывают оба запроса (для демонстрации использована XSD-схема от EnterpriseData 1.17, выбираются узлы вида "simpleType" c типом "string", но не являющиеся перечислениями (то есть не содержащие подузлы вида "enumeration").






Вывод такой: получается, что необходимо пока воздерживаться от применения функции not() непосредственно к элементу поиска, а использовать ось descendant:: .

Возможно, в будущих релизах платформы ситуация изменится.

Может быть, кому-то будет полезно.

разработка XPath интеграция

См. также

Механизмы платформы 1С Программист Платформа 1С v8.3 Бесплатно (free)

В платформе 8.3.27 появилась возможность использовать WebSocket-клиент. Давайте посмотрим, как это все устроено и чем оно нам полезно.

14.01.2025    6899    dsdred    49    

96

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Эта небольшая статья - некоторого рода шпаргалка по файловым потокам: как и зачем с ними работать, какие преимущества это дает.

23.06.2024    10737    bayselonarrend    21    

161

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 1C:Бухгалтерия Бесплатно (free)

Пример использования «Сервисов интеграции» без подключения к Шине и без обменов.

13.03.2024    7560    dsdred    18    

81

Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Все мы используем массивы в своем коде. Это один из первых объектов, который дают ученикам при прохождении обучения программированию. Но умеем ли мы ими пользоваться? В этой статье я хочу показать все методы массива, а также некоторые фишки в работе с массивами.

24.01.2024    25292    YA_418728146    32    

73

Механизмы платформы 1С Программист Бесплатно (free)

Язык программирования 1С содержит много нюансов и особенностей, которые могут приводить к неожиданным для разработчика результатам. Сталкиваясь с ними, программист начинает лучше понимать логику платформы, а значит, быстрее выявлять ошибки и видеть потенциальные узкие места своего кода там, где позже можно было бы ещё долго медитировать с отладчиком в поисках источника проблемы. Мы рассмотрим разные примеры поведения кода 1С. Разберём результаты выполнения и ответим на вопросы «Почему?», «Как же так?» и «Зачем нам это знать?». 

06.10.2023    25738    SeiOkami    48    

136
Оставьте свое сообщение