О некоторых особенностях реализации парсера 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 интеграция

См. также

SALE! %

Мастера заполнения Поиск данных База данных Инструментарий разработчика Корректировка данных Универсальные функции Механизмы платформы 1С Подбор и обработка объектов 1С 8.3 1С 8.5 Платные (руб)

Infostart MagicInput улучшает подбор в полях ввода 1С: ищет по любой части названия и по нескольким ключевым фрагментам, распознаёт ввод в другой раскладке и показывает иконки/статусы объектов прямо в списке. Поддерживает вставку навигационной ссылки/представления документа для автоподбора; для разработчиков доступны поиск по GUID и полному имени предопределённого. Работает в управляемых формах и подключается в большинстве конфигураций 1С 8.3/8.5.

5000 4000 руб.

25.02.2026    1545    9    1    

11

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

Разберем 15 мифов о работе платформы «1С:Предприятие 8» – как распространенных, так и малоизвестных. Начнем с классики: «Код, написанный в одну строку, работает быстрее, чем многострочный». Так ли это на самом деле?

16.07.2025    29964    TitanLuchs    106    

149

Механизмы платформы 1С Работа с интерфейсом Программист Стажер 1С:Предприятие 8 Бесплатно (free)

Про ООП в 1С и о том, как сделать свой код более кратким и выразительным при помощи использования текучего интерфейса (fluent interface).

03.02.2025    16340    bayselonarrend    127    

68

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

В этой статье подробно рассматривается работа с JSON в XDTO в 1С:Предприятие. Вы узнаете, как сериализовать и десериализовать объекты XDTO в JSON, интегрировать 1С с веб-сервисами и API, а также корректно обрабатывать данные при обмене. Разбираются особенности работы с коллекциями, использование функций восстановления и частые ошибки при работе с JSON и XDTO.

30.01.2025    19488    user2122906    9    

66

Механизмы платформы 1С WEB-интеграция Программист 1С:Предприятие 8 Бесплатно (free)

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

14.01.2025    30404    dsdred    100    

147

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

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

23.06.2024    27037    bayselonarrend    22    

176

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

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

13.03.2024    14720    dsdred    22    

85
Для отправки сообщения требуется регистрация/авторизация