|
Как оптимизировать обход выборки изменений плана обмена?
| ☑ |
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) Запрос программно.
|
|