Вход | Регистрация
 
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) Запрос программно.

Список тем форума
Рекламное место пустует  Рекламное место пустует
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.