|
Как понять - каких прав не достает? | ☑ | ||
---|---|---|---|---|
0
KindLion
29.10.12
✎
14:34
|
Друзья мои, как вы разруливаете ситуацию, когда получаете сообщение:
"Ошибка выполнения запроса по причине: У пользователя недостаточно прав на исполнение операции над базой данных." Отладчик, естественно отправляет на строку типа Запрос.Выполнить() Обычно я по тексту запроса вычисляю объекты, к которым обращается запрос, и анализирую наличие прав на каждый из объектов у данного пользователя. Но тут что-то уж оч. тяжелый случай - Книга продаж по пост. 1137 в комплексной автоматизации. Вычислил кусок текста запроса, на котором не хватает прав. Вот он: | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВЫБОР | КОГДА (СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс) | ИЛИ СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НалоговыйАгент)) | И СчетФактураВыданный.Ссылка.Исправление | ТОГДА СчетФактураВыданный.Ссылка | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаРеализацию) | И СчетФактураВыданный.ДокументОснование ССЫЛКА Документ.ОтчетКомиссионераОПродажах | ТОГДА ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.Контрагент = СчетФактураВыданный.ДокументОснование.Контрагент | ТОГДА СчетФактураВыданный.ДокументОснование | ИНАЧЕ СчетФактураВыданный.Ссылка | КОНЕЦ | ИНАЧЕ СчетФактураВыданный.ДокументОснование | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.Корректировочный) | ИЛИ СчетФактураВыданный.Ссылка.Исправление | ТОГДА СчетФактураВыданный.Ссылка.НомерИсходногоДокумента | ИНАЧЕ СчетФактураВыданный.Ссылка.Номер | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.Корректировочный) | ИЛИ СчетФактураВыданный.Ссылка.Исправление | ТОГДА СчетФактураВыданный.Ссылка.ДатаИсходногоДокумента | ИНАЧЕ СчетФактураВыданный.Ссылка.Дата | КОНЕЦ, | СчетФактураВыданный.Ссылка, | ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаСуммовуюРазницу) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаАванс) | ТОГДА ЕСТЬNULL(Авансы.СтавкаНДС, НЕОПРЕДЕЛЕНО) | КОГДА СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаСуммовуюРазницу) | ТОГДА СчетФактураВыданный.Ссылка.СтавкаНДС | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА НЕ(СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаРеализацию) | ИЛИ СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.НаСуммовуюРазницу) | ИЛИ СчетФактураВыданный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыВыставленного.Корректировочный)) | ТОГДА СчетФактураВыданный.Ссылка.ДоговорКонтрагента | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | 3, | СчетФактураВыданный.Ссылка, | СчетФактураВыданный.Ссылка.Контрагент | ИЗ | Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданный | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураВыданный.Авансы КАК Авансы | ПО СчетФактураВыданный.Ссылка = Авансы.Ссылка | ГДЕ | СчетФактураВыданный.Ссылка.Проведен | И НЕ СчетФактураВыданный.Ссылка.ПометкаУдаления | И СчетФактураВыданный.Ссылка.Организация В(&Организация) | | ОБЪЕДИНИТЬ ВСЕ | | ВЫБРАТЬ | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.НаАванс) | И СчетФактураПолученный.Ссылка.Исправление | ТОГДА СчетФактураПолученный.Ссылка | ИНАЧЕ СчетФактураПолученный.ДокументОснование | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.Корректировочный) | ТОГДА СчетФактураПолученный.Ссылка.НомерИсходногоДокумента | ИНАЧЕ СчетФактураПолученный.Ссылка.НомерВходящегоДокумента | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.Корректировочный) | ТОГДА СчетФактураПолученный.Ссылка.ДатаИсходногоДокумента | ИНАЧЕ СчетФактураПолученный.Ссылка.ДатаВходящегоДокумента | КОНЕЦ, | СчетФактураПолученный.Ссылка, | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.НаАванс) | ТОГДА ИСТИНА | ИНАЧЕ ЛОЖЬ | КОНЕЦ, | ЛОЖЬ, | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.НаАванс) | ТОГДА ЕСТЬNULL(Авансы.СтавкаНДС, НЕОПРЕДЕЛЕНО) | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | ВЫБОР | КОГДА СчетФактураПолученный.Ссылка.ВидСчетаФактуры = ЗНАЧЕНИЕ(Перечисление.ВидСчетаФактурыПолученного.НаАванс) | ТОГДА СчетФактураПолученный.Ссылка.ДоговорКонтрагента | ИНАЧЕ НЕОПРЕДЕЛЕНО | КОНЕЦ, | 5, | СчетФактураПолученный.Ссылка, | СчетФактураПолученный.Ссылка.Контрагент | ИЗ | Документ.СчетФактураПолученный.ДокументыОснования КАК СчетФактураПолученный | ЛЕВОЕ СОЕДИНЕНИЕ Документ.СчетФактураПолученный.Авансы КАК Авансы | ПО СчетФактураПолученный.Ссылка = Авансы.Ссылка | ГДЕ | СчетФактураПолученный.Ссылка.Проведен | И НЕ СчетФактураПолученный.Ссылка.ПометкаУдаления | И СчетФактураПолученный.Ссылка.Организация В(&Организация) | И НЕ СчетФактураПолученный.ДокументОснование ССЫЛКА Документ.ОтчетКомитентуОПродажах Что делать дальше? - непонятно. Помогите, плиз, советом - как найти - каких прав не достает у пользователя? |
|||
1
Beduin
29.10.12
✎
14:34
|
(0) Журнал регистрации открываешь и смотришь к каким таблицам блок.
|
|||
2
zmaximka
29.10.12
✎
14:35
|
в журнале регистрации посмотреть
|
|||
3
pumbaEO
29.10.12
✎
14:37
|
Читаем СП, потом настраиваем журнал регистрации и смотрим.
|
|||
4
Maxus43
29.10.12
✎
14:38
|
да, 1сники не ищут лёгких путей. надо всё через опу искать)
(0) ну ты ещё норм, один тут в скл запросы полез, еле уговорили в ЖР посмотреть |
|||
5
KindLion
29.10.12
✎
14:39
|
(3) - ОК. Готов прочитать СП и посмотреть ж.регистрации.
Какой раздел СП почитать, не подскажешь? |
|||
6
5 Элемент
29.10.12
✎
14:50
|
Глобальный контекст (Global context)
УстановитьИспользованиеСобытияЖурналаРегистрации (SetEventLogEventUse) Синтаксис: УстановитьИспользованиеСобытияЖурналаРегистрации(<ИмяСобытия>, <Использование>) |
|||
7
KindLion
29.10.12
✎
14:58
|
Ребята, спасибо большое, разобрался!
|
|||
8
KindLion
30.10.12
✎
12:07
|
Ох, погорячился я с (7).
Неприятно, но надо признаваться - не все так гладко прошло. Первые пару затыков ограничения я снял легко. Но потом в журнале регистрации вылезло: отсутствует доступ на чтение - и куча документов. См. https://docs.google.com/open?id=0B8cO9ZZs4P23Y3Jkb2x3Y3hPcTA При этом - у данного пользователя есть доступ на каждый из этих типов документов. В чем может быть дело, не подскажете? |
|||
9
KindLion
30.10.12
✎
14:01
|
? Нет вариантов?
|
|||
10
Stim
30.10.12
✎
14:04
|
журнал регистрации смотреть. почему никто не сказал?
|
|||
11
KindLion
30.10.12
✎
14:05
|
(10) сказали.
Смотрю. (9) - Это уже из ж.регистрации информация |
|||
12
GANR
30.10.12
✎
14:07
|
(0) На худой конец...
Для Каждого ОбъектМетаданных ИЗ Метаданные.Документы Цикл Если Не ПравоДоступа("Чтение", ОбъектМетаданных) Тогда Текст = "ru = ""Доступ к документу """ + ОбъектМетаданных.Имя + """ закрыт!"";" + " en = ""Access denied!"""; Предупреждение(НСтр(Текст)); КонецЕсли; КонецЦикла; |
|||
13
KindLion
30.10.12
✎
14:12
|
(12) спасибо.
Но, мне кажется, не в этом дело. Ведь любой из этих типов документов пользователь может открыть в интерактивном режиме. Почему же тогда отчет на это ругается?.. непонятно.. :( |
|||
14
shuhard
30.10.12
✎
14:25
|
(13) дружок, а отчет у тебя часом не на СКД ?
|
|||
15
KindLion
30.10.12
✎
14:29
|
(14) - нет, дружок.
Обычный типовой от КА (подозреваю, что такой же в УПП) - книга продаж по постановлению 1137 |
|||
16
KindLion
30.10.12
✎
15:27
|
Друзья мои, СПАСИБО ВСЕМ, желавшим помочь.
Разобрался окончательно. На будущее, может, кому пригодится. Если вы устранили все препятствия на пути к нормальному построению запроса (есть права на чтение ко всем необходимым таблицам), а в журнале регистрации все равно ругается на все мыслимые таблицы, участвующие в запросе, попробуйте добавить ключевое слово РАЗРЕШЕННЫЕ в текст запроса. :) Посыпаю голову пеплом. Так долго долбался... |
|||
17
GANR
30.10.12
✎
17:33
|
(16) Если бы в (0) спросил "как выбрать разрешенные" - в первом же сообщении ответ получил бы.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |