Имя: Пароль:
1C
 
Разный результат запроса у ПолныхПрав и Привилегированного модуля
0 ИС-2
 
04.06.15
14:12
Не понимаю почему получаются разные результаты запроса.

Один пользователь с полными правами (точно все права полные).
Один и тот же запрос с одними же и теми параметрами. Запрос тяжелый, с несколькими РН остатки и обороты и кучей связи, вложенными таблицами, итогами.

Выполняю запрос
Вариант 1:
        РезультатЗапроса = ЗапросПоТоварам.Выполнить();
        ТЗ = РезультатЗапроса .Выгрузить();
Вариант 2:
        РезультатЗапроса = ПривилегированныйМодуль.ВыполнитьЗапрос(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры);                    
        ТЗ = РезультатЗапроса .Выгрузить();

Функция ВыполнитьЗапрос(ТекстЗапрос,ПараметрыЗапрос,МенеджерВременныхТаблиц = Неопределено) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапрос;
    Для Каждого КлЗн из ПараметрыЗапрос Цикл
        Запрос.УстановитьПараметр(КлЗн.Ключ,КлЗн.Значение);
    КонецЦикла;
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    
    Возврат Запрос.Выполнить();    
КонецФункции

Вариант 3:
            ТЗ = ПривилегированныйМодуль.ВыполнитьЗапросВТЗ(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры);

Функция ВыполнитьЗапросВТЗ(ТекстЗапрос,ПараметрыЗапрос,МенеджерВременныхТаблиц = Неопределено) Экспорт
    Запрос = Новый Запрос;
    Запрос.Текст = ТекстЗапрос;
    Для Каждого КлЗн из ПараметрыЗапрос Цикл
        Запрос.УстановитьПараметр(КлЗн.Ключ,КлЗн.Значение);
    КонецЦикла;
    Запрос.МенеджерВременныхТаблиц = МенеджерВременныхТаблиц;
    
    Возврат Запрос.Выполнить().Выгрузить();    
КонецФункции

Результаты варианта 1 и 2 не совпадают. Вариант 1 и 3 совпадают.

Почему результаты запросов при выполнении в привилигированном модуле не совпадают с выполнением в обычном режиме?
1 DmitrO
 
04.06.15
14:18
а режим совместимости какой?
2 ИС-2
 
04.06.15
14:20
с 8.1, УПП
3 ИС-2
 
04.06.15
14:21
8.2.19 SQL 2008
4 DmitrO
 
04.06.15
14:35
ну, как бы, разница в функциях ВыполнитьЗапрос и ВыполнитьЗапросВТЗ в том, что предложение запроса ИТОГИ в первом случае выполняется уже не в привилегированном режиме, а во втором случае все еще в привилегированном.
:)
если в запросе конечно есть предложение ИТОГИ
5 ИС-2
 
04.06.15
14:40
(4) да, итоги есть
6 DmitrO
 
04.06.15
14:42
РезультатЗапроса = ПривилегированныйМодуль.ВыполнитьЗапрос(ЗапросПоТоварам.Текст,ЗапросПоТоварам.Параметры);                    
УстановитьПривилегированныйРежим(Истина);
        ТЗ = РезультатЗапроса .Выгрузить();
УстановитьПривилегированныйРежим(Ложь);
7 DmitrO
 
04.06.15
14:43
(6)+ попробуй так, если конечно это место выполняется на сервере
8 DmitrO
 
04.06.15
14:44
ааа, или что там, на 8.1 такого еще не было? :)
9 ИС-2
 
04.06.15
14:54
дело оказалось в итогах - без итогов результаты запросов стали идентичны. Спасибо.

Вот только как передать с сервера мутабельную выборку...
10 GROOVY
 
04.06.15
15:05
"Полные права" - это не полные права.
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.