О некоторых особенностях реализации парсера 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 Конфигурации 1cv8 Бесплатно (free)

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

23.06.2024    7498    bayselonarrend    20    

154

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

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

13.03.2024    5962    dsdred    16    

80

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

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

24.01.2024    17782    YA_418728146    26    

71

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

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

06.10.2023    23782    SeiOkami    48    

135

WEB-интеграция Универсальные функции Механизмы платформы 1С Программист Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

При работе с интеграциями рано или поздно придется столкнуться с получением JSON файлов. И, конечно же, жизнь заставит проверять файлы перед тем, как записывать данные в БД.

28.08.2023    14772    YA_418728146    7    

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