Имя: Пароль:
1C
1С v8
Как оптимизировать обход выборки изменений плана обмена?
0 Nikoss
 
10.07.18
13:21
Есть стандартный кусок кода обмена. Получение выборки всех измененных объектов и далее его обработка:

ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(УзелОбмена, ЗаписьСообщения.НомерСообщения);
Пока ВыборкаИзменений.Следующий() Цикл
    Попытка
        Данные = ВыборкаИзменений.Получить();
    Исключение
        Продолжить;
    КонецПопытки;
...........

Ситуация такая: есть РЛС, на некоторые объекты конфигурации стоит авторегистрация изменений. Соответственно, в момент обхода выборки измененных объектов в строке:

Данные = ВыборкаИзменений.Получить();

Все объекты, на которые нет прав на чтение, отсекаются в «исключение-продолжить».

Проблема в том, что, как мне кажется, метод Получить() сначала получает объект, а потом проверяет есть ли на него права. По крайней мере замер производительности на это намекает.

Понятно, что правильное решение – это снимать авторегистрацию изменений и делать вручную. Но может есть другой метод более оптимально определить, что на строку выборки нет прав на чтение.
1 Михаил Козлов
 
10.07.18
13:23
Можно попробовать запросом с РАЗРЕШЕННЫЕ.
2 DrShad
 
10.07.18
13:24
а вообще какое отношение имеют права и уже зарегистрованные изменения? имхо нужно в момент регистрации проверять права
3 Nikoss
 
10.07.18
13:27
(2) так и есть, я про это упомянул в (0). Но всеже рассматриваю и другие варианты.
4 Nikoss
 
10.07.18
13:28
(1) Это придется громоздить 10 этажный запрос, по всем таблицам изменений, получается?
5 ptiz
 
10.07.18
13:35
(0) Для чего выборка делается? Обмен? Тогда делать в привилегированном режиме.
6 Serg_1960
 
10.07.18
13:36
Мелкое замечание: в типовых алгоритмах используется принцип "Всё или ничего", т.е. вот так:

Попытка
   ВыборкаИзменений = ПланыОбмена.ВыбратьИзменения(ЗаписьСообщения.Получатель, ЗаписьСообщения.НомерСообщения);
   Пока ВыборкаИзменений.Следующий() Цикл
7 triviumfan
 
10.07.18
13:37
Да автор всех запутал.
Для чего получать выборку данных?
8 pavig
 
10.07.18
13:38
(0)
Смешались в кучу кони, люди,
И залпы тысячи орудий
Слились в протяжный вой...
9 Михаил Козлов
 
10.07.18
13:40
(4) Запрос программно.