Имя: Пароль:
1C
 
Непонятное поведение СКД
0 rudnitskij
 
20.02.25
12:48
Всем добрый день.
Есть отчет на СКД, никаких особых хитростей там нет, но есть его странное поведение если его выполняет пользователь с ограниченными через RLS правами. Если под ним выполнять запрос в консоли запросов - никаких проблем с доступом нет, но этот же запрос при выполнении отчета вызывает ошибку
Ошибка получения данных
по причине:
Ошибка создания набора данных "НаборДанных1"
по причине:
Ошибка при исполнении запроса набора данных
по причине:
{(19, 66)}: Поле не найдено "_ПродажиОбороты.Регистратор.ДокументОснование._Менеджер._Команда"
ТОГДА _ПродажиОбороты.Регистратор.ДокументОснование._Менеджер.<<?>>_Команда
----------------------
Может, кто поделится опытом борьбы с подобными вещами?
1 Fedor-1971
 
20.02.25
12:54
(0) Выразить(_ПродажиОбороты.Регистратор.ДокументОснование._Менеджер)._Команда
В Документ основание может лежать недоступный данному пользователю документ
2 rudnitskij
 
20.02.25
12:56
(1) а) не была бы тогда ошибка доступа к первому полю (_Менеджер)? По нему же нет ошибки
б) а в консоли он тогда тоже ведь должен ошибку выдавать - если нет прав
3 youalex
 
20.02.25
12:59
Для СКД играет право "Просмотр", для консоли запроса - только "Чтение"
4 youalex
 
20.02.25
13:01
ФО еще может быть (но не в твоем случае похоже)
5 rudnitskij
 
20.02.25
13:01
Реквизит "_Менеджер" имеет тип "СправочникСсылка.Пользователи", были права только на чтение, добавил на просмотр - ошибка исчезла. Но само поле "_Команда" отсутствует в доступных полях, хотя в конфигураторе указано
6 toypaul
 
гуру
20.02.25
13:01
_ПродажиОбороты.Регистратор.ДокументОснование._Менеджер._Команда - за такое сразу на месте расстрел. а после расстрела таким не поделишься.
7 rudnitskij
 
20.02.25
13:01
(3) не знал, благодарю
8 rudnitskij
 
20.02.25
13:03
(6) это до меня писали, от меня требуется, чтобы выводились данные. Я и сам вижу, что это чушь, но там слишком много надо всего переписывать
9 toypaul
 
гуру
20.02.25
13:05
(5) тоже надо смотреть на права. например в предприятии посмотреть видны ли через (+) реквизиты у _Менеджер. если видны, то права на тип у _Команда
10 CepeLLlka
 
20.02.25
13:09
(7)Для дин списков тоже
11 rudnitskij
 
20.02.25
17:07
(9) Там проблема была в составном типе у "ДокументОснование", у одного из документов реквизита "_Менеджер" нету, всё порешалось, всем спасибо
12 T32
 
20.02.25
17:24
(11) "Если под ним выполнять запрос в консоли запросов - никаких проблем с доступом нет" - как тогда в консоли отработало?
13 Волшебник
 
20.02.25
18:47
(12) Подозреваю, что в параметрах был другой период или другие отборы. Документ другого типа не попал в выборку в консоли.
14 rudnitskij
 
20.02.25
22:05
(12) "Для СКД играет право "Просмотр", для консоли запроса - только "Чтение" " - это из сообщения №3 здесь, видимо поэтому
15 Волшебник
 
20.02.25
22:06
(14) Для СКД нужно право "Просмотр", это верно.
16 rudnitskij
 
20.02.25
22:08
(13) не, период тогда брался специально один и тот же.
Подозреваю, что в консоли отсутствие реквизита будет критично только если документ такого типа в выборку попадет, а СКД проверяет такие вещи в запросе до выполнения и видимо отсекает поля с потенциальными проблемами (потому что все другие поля запроса СКД получает и выводит)
17 craxx
 
21.02.25
10:14
(0) вот я бы убивал (как минимум, морально) тех, кто через четыре точки вызовы делает. Перепиши нормально запрос.
18 Волшебник
 
21.02.25
10:32
(17) Считайте точку синтаксическим сахаром для LEFT JOIN. Использовать можно!
19 rudnitskij
 
21.02.25
14:23
(17) об этом уже писали здесь, я уже отвечал выше
20 СвинТуз
 
21.02.25
14:26
(17)

(18) Прав. Что пугает? Индексы работают.
2 + 2 = 3.9999999999999999999999999999999...