Тема: Выборка объектов без проверки прав
Очень часто встречается задача - при модификации объекта "A" (или по команде) найти набор других (логически связанных) объектов "A.objects" и произвести изменения в них, даже если пользователь не имеет права просмотра всей/части "A.objects".
Чтобы это обойти всегда мы пользовались способом -
1. Создать в составе объекта "A" выборку "v" на основе системной
2. Присвоить еe v.permissions =SysAdminPermissions
3. Сохранить полученную коллекцию
4. Удалить выборку "v" из состава объекта "А".
Обнаружилось, что это теперь не работает (версия TDMS3.0.136).
В справке сказано: "Создать виртуальную выборку (методом TDMSApplication.CreateQuery) может любой пользователь. При этом надо учитывать, что виртуальная выборка, в отличие от сохраненной, вернет все удовлетворяющие критерию объекты (даже если пользователь не имеет права на их просмотр). "
Пробуем (аналогично примеру) выбрать все объекты типа "ISP_KD":
Set v = ThisApplication.CreateQuery
v.AddCondition tdmQueryConditionObjectDef, "ISP_KD"
v.permissions=SysAdminPermissions
msgbox v.objects.count
Скрипт выводит число, равное количеству объектов, в зависимости от прав пользователя...
Что делаем не так?
Как правильно добавить в выборку условие "или"(что-то вроди v.AddCondition tdmQueryConditionObjectDef, "ISP_KD" OR "SPL_KD")?