Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Как оптимизировать обход выборки изменений плана обмена?

Как оптимизировать обход выборки изменений плана обмена?
Я
   Nikoss
 
10.07.18 - 13:21
Есть стандартный кусок кода обмена. Получение выборки всех измененных объектов и далее его обработка:

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

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

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

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

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

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

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

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует