|
RLS не распознает ТекущаяТаблица | ☑ | ||
---|---|---|---|---|
0
Altanzar
16.03.16
✎
12:41
|
Конфигурация УПП 1.3, создан шаблон ограничений для регистра накопления "Продажи" на основе типового шаблона КонтрагентОрганизацияПодразделение. При попытке формирования отчета выдает следующую ошибку:
Ошибка в ограничении доступа к данным. объект: 'РегистрНакопления.Продажи', поле: 'Номенклатура'; право: 'Чтение' {(14, 37)}: Поле не найдено "ТекущаяТаблица.ДокументПродажи.Скрытый" И НЕ ТекущаяТаблица.ДокументПродажи.<<?>>Скрытый по причине: {(14, 37)}: Поле не найдено "ТекущаяТаблица.ДокументПродажи.Скрытый" И НЕ ТекущаяТаблица.ДокументПродажи.<<?>>Скрытый При этом если закомментарить это условие, то отчет формируется нормально (как по типовому шаблону). Текст запроса шаблона: #Если &ИспользоватьОграничениеПоКонтрагенты ИЛИ &ИспользоватьОграничениеПоОрганизации ИЛИ &ИспользоватьОграничениеПоПодразделения #Тогда ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей ПО (ИСТИНА) ГДЕ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL И НЕ ТекущаяТаблица.#Параметр(4).Скрытый И (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(1) #КонецЕсли ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ТОГДА ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка)) #КонецЕсли #Если &ИспользоватьОграничениеПоОрганизации #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) ТОГДА ТекущаяТаблица.#Параметр(2) #КонецЕсли #Если &ИспользоватьОграничениеПоПодразделения #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения) ТОГДА ТекущаяТаблица.#Параметр(3) #КонецЕсли КОНЕЦ И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа И НастройкиПравДоступаПользователей.ОбластьДанных = #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда ВЫБОР КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ТОГДА ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДанные) ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка) КОНЕЦ #Иначе ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка) #КонецЕсли И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей ГДЕ НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В ( ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка) #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) #КонецЕсли #Если &ИспользоватьОграничениеПоОрганизации #Тогда , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) #КонецЕсли #Если &ИспользоватьОграничениеПоПодразделения #Тогда , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Подразделения) #КонецЕсли ) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL)) #КонецЕсли В чем корень ошибки? |
|||
1
shuhard
16.03.16
✎
12:42
|
(0) ну нет у документа такой ТЧ
|
|||
2
ViSo76
16.03.16
✎
12:44
|
1. Сбрось кэш
2. Попробуй по кускам вставлять, постепенно ограничивая права. |
|||
3
Altanzar
16.03.16
✎
12:54
|
(1) Оно говорит что не знает именно поле ТекущаяТаблица. Хотя это поле определено парой строк выше, да и потом используется.
(2) Кэш сбрасывал, не помогло. Делал тестирование и исправление - тоже безрезультатно. Там по сути все предельно просто - запрещено читать записи регистра, где у документа продажи стоит реквизит "Скрытый", даже нечего на куски разложить. |
|||
4
mikecool
16.03.16
✎
12:55
|
(3) где в ошибке про ТекущаяТаблица?
|
|||
5
Altanzar
16.03.16
✎
12:58
|
(4) Когда в запросе была проверка
ВЫБОР КОГДА ТИПЗНАЧЕНИЯ(ТекущаяТаблица) = ТИП(РегистрНакопления.Продажи) ТОГДА ... КОНЕЦ оно тоже ругалось на ТекущаяТаблица. |
|||
6
Fragster
гуру
16.03.16
✎
12:59
|
правильным решением был бы перенос реквизита в реквизит регистра и заполнении его при фомировании движений.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |