|
Ошибка при доработке шаблона RLS | ☑ | ||
---|---|---|---|---|
0
SOLO1C
07.11.12
✎
14:23
|
В типовой УПП есть глюк - прих и расх ордера сделанные по перемещениям не видны пользователям, т.к. не заполнен контрагент при включенных отборах по контрагентам.
Соответсвенно пытаюсь отработать ситуацию проверкой типа таблицы и вида операции прих и расх ордера. Столкнулся с проблемой при написании такого кода: (привожу только проблемную часть с проверкой типа) #Если (&ИспользоватьОграничениеПоКонтрагенты И ( НЕ ТипЗначения(#ТекущаяТаблица.Ссылка) =ТИП(Документ.ПриходныйОрдерНаТовар))) ИЛИ &ИспользоватьОграничениеПоОрганизации ИЛИ &ИспользоватьОграничениеПоСклады #Тогда ..... Ошибка Ошибка в ограничении доступа к данным. объект: 'Документ.ПриходныйОрдерНаТовары', поле: 'Проведен'; право: 'Чтение' Синтаксическая ошибка "Синтаксическая ошибка "ТипЗначения"" по причине: Синтаксическая ошибка "Синтаксическая ошибка "ТипЗначения"" Пеерписка кода на #Если (&ИспользоватьОграничениеПоКонтрагенты И НЕ #ТекущаяТаблица.Ссылка Ссылка Документ.ПриходныйОрдерНаТовар) .... эффекта не дает все равно синтаксическая ошибка... Ошибка в ограничении доступа к данным. объект: 'Документ.ПриходныйОрдерНаТовары', поле: 'Проведен'; право: 'Чтение' Синтаксическая ошибка "Синтаксическая ошибка" по причине: Синтаксическая ошибка "Синтаксическая ошибка" в чем она ? |
|||
1
Homer
07.11.12
✎
14:32
|
Добавь к доступу пустого контрагента
|
|||
2
SOLO1C
07.11.12
✎
14:35
|
)) хороший вариант - толкьо в этом случае пользователь получит доступ ко всем контагентам.
|
|||
3
SOLO1C
07.11.12
✎
14:47
|
еще идеи ?
кстати ошибка в синтаксе была , нужно было писать ПриходныйОрдерНаТоварЫ! но эффекта не дало |
|||
4
SOLO1C
07.11.12
✎
15:09
|
ап
|
|||
5
SOLO1C
07.11.12
✎
16:06
|
Мож кому понадобится
#Если &ИспользоватьОграничениеПоКонтрагенты ИЛИ &ИспользоватьОграничениеПоОрганизации ИЛИ &ИспользоватьОграничениеПоСклады #Тогда ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ СоставГруппы.Ссылка КАК ГруппаПользователей ИЗ Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы ГДЕ СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей ПО (ИСТИНА) ГДЕ НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL И (НЕ 1 В (ВЫБРАТЬ ПЕРВЫЕ 1 1 ИЗ РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты ПО Контрагенты.Ссылка = ТекущаяТаблица.#Параметр(1) #КонецЕсли ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей ПО НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ТОГДА ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка)) #КонецЕсли #Если &ИспользоватьОграничениеПоОрганизации #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) ТОГДА ТекущаяТаблица.#Параметр(2) #КонецЕсли #Если &ИспользоватьОграничениеПоСклады #Тогда КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады) ТОГДА ТекущаяТаблица.#Параметр(3) #КонецЕсли КОНЕЦ И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа И НастройкиПравДоступаПользователей.ОбластьДанных = #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда ВЫБОР КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ТОГДА ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДанные) ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка) КОНЕЦ #Иначе ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка) #КонецЕсли И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей ГДЕ НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В ( ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка) #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда //+ГО , ВЫБОР КОГДА НЕ (ТипЗначения(#ТекущаяТаблица.Ссылка) = ТИП (Документ.ПриходныйОрдерНаТовары) или ТипЗначения(#ТекущаяТаблица.Ссылка) = ТИП (Документ.РасходныйОрдерНаТовары) ) ИЛИ ТекущаяТаблица.ВидОперации В(Значение(Перечисление.ВидыОперацийПриходныйОрдер.ОтПокупателя),Значение(Перечисление.ВидыОперацийПриходныйОрдер.ОтПоставщика), Значение(Перечисление.ВидыОперацийРасходныйОрдер.ВозвратПоПриходномуОрдеру), Значение(Перечисление.ВидыОперацийРасходныйОрдер.РасходПоНакладной), Значение(Перечисление.ВидыОперацийРасходныйОрдер.ВозвратПоставщику), Значение(Перечисление.ВидыОперацийРасходныйОрдер.ВПереработку), Значение(Перечисление.ВидыОперацийРасходныйОрдер.ИзПереработки)) ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты) ИНАЧЕ НЕОПРЕДЕЛЕНО КОНЕЦ #КонецЕсли //-ГО #Если &ИспользоватьОграничениеПоОрганизации #Тогда , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации) #КонецЕсли #Если &ИспользоватьОграничениеПоСклады #Тогда , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Склады) #КонецЕсли ) И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL)) #КонецЕсли |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |