Имя: Пароль:
1C
1С v8
Ошибка выполнения запроса
0 ils108
 
09.12.15
09:50
Добра!
Собственно такая ошибка вылетает при срабатывании следующей функции.

Функция Состояние Оплаты Сделки(Ссылка На Сделку)
    
    Запрос = Новый Запрос;
    Запрос.Установить Параметр("Ссылка", Ссылка На Сделку);
    Запрос.Текст = "ВЫБРАТЬ
                   |    ВЫРАЗИТЬ(ЕСТЬ NULL(Вложенный Запрос.Сумма Оплаты, 0) КАК ЧИСЛО(15, 2)) КАК СуммаОплаты,
                   |    ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос1.СуммаСчетов, 0) КАК ЧИСЛО(15, 2)) КАК СуммаСчетов,
                   |    ДокументГУ_Сделка.СуммаДокумента,
                   |    ВЫБОР
                   |        КОГДА (ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос.СуммаОплаты, 0) КАК ЧИСЛО(15, 2))) = ДокументГУ_Сделка.СуммаДокумента
                   |                И (ВЫРАЗИТЬ(ЕСТЬNULL(ВложенныйЗапрос.СуммаОплаты, 0) КАК ЧИСЛО(15, 2))) > 0
                   |            ТОГДА ИСТИНА
                   |        ИНАЧЕ ЛОЖЬ
                   |    КОНЕЦ КАК Оплата
                   |ИЗ
                   |    Документ.ГУ_Сделка КАК ДокументГУ_Сделка
                   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            ГУ_ПродажиОборудованияПоСделкамОбороты.Сделка КАК Сделка,
                   |            СУММА(ГУ_ПродажиОборудованияПоСделкамОбороты.СуммаОборот) КАК СуммаОплаты
                   |        ИЗ
                   |            РегистрНакопления.ГУ_ПродажиОборудованияПоСделкам.Обороты(, , Регистратор, Этап = ЗНАЧЕНИЕ(Перечисление.ГУ_ЭтапыСделки.Оплата)) КАК ГУ_ПродажиОборудованияПоСделкамОбороты
                   |        ГДЕ
                   |            НЕ ГУ_ПродажиОборудованияПоСделкамОбороты.Регистратор.ПометкаУдаления
                   |        
                   |        СГРУППИРОВАТЬ ПО
                   |            ГУ_ПродажиОборудованияПоСделкамОбороты.Сделка) КАК ВложенныйЗапрос
                   |        ПО ДокументГУ_Сделка.Ссылка = ВложенныйЗапрос.Сделка
                   |        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                   |            ГУ_ПродажиОборудованияПоСделкамОбороты.Сделка КАК Сделка,
                   |            СУММА(ГУ_ПродажиОборудованияПоСделкамОбороты.СуммаОборот) КАК СуммаСчетов
                   |        ИЗ
                   |            РегистрНакопления.ГУ_ПродажиОборудованияПоСделкам.Обороты(, , Регистратор, Этап = ЗНАЧЕНИЕ(Перечисление.ГУ_ЭтапыСделки.Счет)) КАК ГУ_ПродажиОборудованияПоСделкамОбороты
                   |        ГДЕ
                   |            НЕ ГУ_ПродажиОборудованияПоСделкамОбороты.Регистратор.ПометкаУдаления
                   |        
                   |        СГРУППИРОВАТЬ ПО
                   |            ГУ_ПродажиОборудованияПоСделкамОбороты.Сделка) КАК ВложенныйЗапрос1
                   |        ПО ДокументГУ_Сделка.Ссылка = ВложенныйЗапрос1.Сделка
                   |ГДЕ
                   |    ДокументГУ_Сделка.Ссылка = &Ссылка";
                  
    Результат = Запрос.Выполнить();
    СтруктураОтвета = Новый Структура("СуммаОплаты, СуммаСчетов, СуммаДокумента, Оплата", 0, 0, 0, Ложь);
    Выборка = Результат.Выбрать();
    Если Выборка.Следующий() Тогда
        Для Каждого ТекКолонка ИЗ Результат.Колонки Цикл
            
            СтруктураОтвета.Вставить(ТекКолонка.Имя, Выборка[ТекКолонка.Имя]);         
            
        КонецЦикла;
    КонецЕсли;
    
    Возврат СтруктураОтвета;

Как выявить причину. права чтения всех документов у пользователя есть
1 ils108
 
09.12.15
09:51
Ошибка выполнения запроса по причине: У пользователя недостаточно прав на исполнение операции над базой данных.
2 Про100Филя
 
09.12.15
09:51
ВЫБРАТЬ РАЗРЕШЕННЫЕ попробуй
3 lxs
 
09.12.15
09:52
Запусти отладчик, увидишь любимую кнопку Подробнее и поймешь, к чему нет прав.
4 lxs
 
09.12.15
09:53
(2) Это неверный подход при тестировании системы. Потом конечно такой вариант возможно и пригодится, но изначально надо понимать, к чему нет прав.
5 denis_jj
 
09.12.15
09:55
В журнале регистрации посмотрите запись об этой ошибке. Там может быть написано к чему нет доступа.
6 lxs
 
09.12.15
09:55
(5) не всегда пишет
7 ils108
 
09.12.15
10:10
(5) в журнале пишет, что нет доступа к регистру и его
документам регистраторам, но по ролям доступ чтения есть.

(2) можно подробней, что мне поможет увидеть выбрать разрешенные? вычленить конкретные поля которые не дают прочитать?
8 Про100Филя
 
09.12.15
10:17
(4) Ну как пишет автор "права чтения всех документов у пользователя есть", возможно RLS не заметил.
(7) Возможно, стоит ограничения на выбираемые поля для роли. Стоит посмотреть роли. Разрешенные выберут только те объекты, которые разрешены. Но если нет RLS, то ничем.
9 lxs
 
09.12.15
11:53
(7) смотри отладчиком, там всё хорошо расписано обычно
10 vhl
 
09.12.15
12:00
(7) Значит нет права "чтение" на регистр
11 ils108
 
09.12.15
12:18
(10) в том то и дело, что есть :)
речь о документе, который используется в каждодневной работе менеджеров (т.е. это не новая разработка), но за последнее время складывается система, что в каких-то случаях при выполнении функции документа вылазит эта ошибка
12 vhl
 
09.12.15
12:28
(11) регистр <> документ
13 ils108
 
09.12.15
12:33
(12) я понимаю, проверил сейчас еще раз права регистра, чтение, изменение и т.д.
14 Nuobu
 
09.12.15
12:38
(13) Проверь права на ВСЕ документы-регитраторы, которые пишут в этот регистр.
15 ils108
 
09.12.15
13:19
что-то с RLS оказалось.
подскажите пожалуйста когда Поле задано , а условий ограничения нет, то оно всегда отрабатывает или никогда?
Есть два вида языков, одни постоянно ругают, а вторыми никто не пользуется.