Имя: Пароль:
1C
1С v8
При индексировании не хватает прав
0 Плехоть
 
07.05.14
13:07
О умы секты 1С подскажите, плиз!

   Я под неким пользователем в консоле запросов ввожу не хитрый код. Компилирую - выдаёт: "Ошибка выполнения запроса: У пользователя недостаточно прав на исполнение операции над базой данных."
Под полными правами - нет ошибки. Видимо, проблема в индексировании, потому что без него код отрабатывает.
   Подскажите где копать?

Собственно, код:
ВЫБРАТЬ
    СчетФактураВыданный.Дата,
    СчетФактураВыданный.Проведен,
    СчетФактураВыданный.Ссылка КАК ДокументОснование
ПОМЕСТИТЬ ВТ_СчетФактураВыданный
ИЗ
    Документ.СчетФактураВыданный КАК СчетФактураВыданный
ГДЕ
    СчетФактураВыданный.Организация = &Организация

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
    СчетФактураВыданный.Ссылка.Дата,
    СчетФактураВыданный.Ссылка.Проведен,
    СчетФактураВыданный.ДокументОснование
ИЗ
    Документ.СчетФактураВыданный.ДокументыОснования КАК СчетФактураВыданный
ГДЕ
    СчетФактураВыданный.Ссылка.Организация = &Организация

ИНДЕКСИРОВАТЬ ПО
    ДокументОснование
1 Apokalipsec
 
07.05.14
13:09
РЛС. Использовать конструкцию ВЫБРАТЬ РАЗРЕШЕННЫЕ
2 maxile
 
07.05.14
13:10
Делаешь просто заходишь в пользовательсете права и ставишь все флаги - 100%. Есть такой глюк у полных прав.
3 su_mai
 
07.05.14
13:11
(0) На самом деле надо разбираться с шаблонами ограничения. У пользователя нет прав на чтение одной из таблиц использ. в запросе
4 Плехоть
 
07.05.14
13:12
(1) Тогда почему отрабатывает код без индексирования?
5 Maxus43
 
07.05.14
13:12
ДокументОснование - составной тип, надо права на все типы, входящие в него
6 su_mai
 
07.05.14
13:14
(1) Это концептуально ситуацию не меняет, просто ошибка не возникает. При такой конструкции недоступные строки таблиц не включаются в данные запроса
7 su_mai
 
07.05.14
13:16
(5) Вот именно!
РЛС приводит к тому, что текст запроса дополняется ограничением данных путем соединения со всеми таблицами составного типа.
8 Плехоть
 
07.05.14
13:16
ещё одно наблюдение: Если поставить ограничения по датам для документов, то в большом интервале ошибка возникает, а если сделать по-меньше временной интервал, то ошибка исчезает
9 su_mai
 
07.05.14
13:17
+(7) Используй Выразить в запросе
10 Плехоть
 
07.05.14
13:18
(9) Дело в том, что код из типового запроса... и он огромный. Не хотелось бы править сам запрос. Мне бы понять, что можно исправить в данных, или может в правах
11 Плехоть
 
07.05.14
13:20
(5) Как вариант, посмотрю про типы.
12 Maxus43
 
07.05.14
13:21
(11) это не вариант, это 146%
13 Плехоть
 
07.05.14
13:22
(12) Просто было интересно, почему индексирование так влияет на итог запроса
14 su_mai
 
07.05.14
13:24
(12) А (9)?
15 Maxus43
 
07.05.14
13:25
(13) тут дело не совсем в индексировании, дело в правах, но вылезли они в неожиданном месте. Если бы в результате запроса попался докуент на который нет прав - тоже бы ошибка была.
напиши Выразить(СчетФактураВыданный.ДокументОснование Как Документ.СчетФактураВыданный)
16 su_mai
 
07.05.14
13:32
(15) А я о чем (9)? :))))
17 Крошка Ру
 
07.05.14
13:33
(15) лучше

ВЫБОР
   КОГДА (СчетФактураВыданный.ДокументОснование ССЫЛКА Документ.СчетФактураВыданный) ТОГДА
        ВЫРАЗИТЬ(СчетФактураВыданный.ДокументОснование КАК Документ.СчетФактураВыданный)
КОНЕЦ

а иначе ошибку выдаст, если ДокументОснование будет не счетом-фактурой
18 Плехоть
 
07.05.14
13:34
Я сначала попробую права поправить, а если не поможет буду исправлять запрос. Спасибо всем!
19 Maxus43
 
07.05.14
13:36
(16) вижу вижу, молодец
20 su_mai
 
07.05.14
13:37
(18) Да не правильно это! Права не надо трогать! Надо в запросе приведение к типу сделать (15)...
21 su_mai
 
07.05.14
13:37
(19) Етить тить !!!
22 su_mai
 
07.05.14
13:39
(17) Не правильно!!!

Просто когда используем (15) в случае когда (17) Выразить вернет Null :)))
23 su_mai
 
07.05.14
13:40
(22) Не сори набрехал :)))
Независимо от того, куда вы едете — это в гору и против ветра!