Имя: Пароль:
1C
1С v8
1с8.2 Ограничение доступа к спр.Организации некорректно работает с спр.Договоры
0 Risoks
 
15.03.14
21:13
Собственно с договорами, которые находятся в корне справочника, - все хорошо. Но если пользователь с ограничением доступа откроет договор, который находится в какой-нибудь папке и который принадлежит "разрешенной" организации, то в поле "Группа договоров" - "Объект не найден". И, конечно,этому пользователю уже этот договор не изменить. Хотя использование реквизита "Организация" в этом справочнике стоит "Для элемента".
Заранее благодарна
1 EugeniaK
 
15.03.14
21:48
(0) Смотрите настроки РЛС на справочник "Договора"
Без указания конфигурации и настройки ролей пользователя никто больше ничего не скажет.
2 Risoks
 
15.03.14
21:54
Конфигурация УПП. Пользователю назначены все роли, кроме роли "РасчетчикЗП" + ограничение доступа к спр.Организации
3 Naumov
 
15.03.14
22:25
(0) В РЛС для групп должно быть условие = Истина, иначе у тебя группы не попадают.
4 Risoks
 
15.03.14
22:27
(3)Конфигурация стандартная. Вы хотите сказать, придется ковырять в коде?
5 Naumov
 
15.03.14
22:31
(4) не в коде, а в настройках РЛС.
Могли в 1С и проморгать такой баг в настройке. Можно отписаться в техподдержку.
6 Risoks
 
15.03.14
22:34
В настройках невозможно что-то отдельно указать про группы((. В техподдержку уже написала. Спасибо
7 Naumov
 
15.03.14
22:42
нет, в данном случае нужно РЛС-запрос корректировать, чтобы для группы условие возвращало ИСТИНА.
У вас случайно для реквизита Организация никто не поставил назначение для группы и для элемента?
8 Risoks
 
15.03.14
22:46
в запросе вообще про группы - молчок. Для реквизита Организация стоит "Для элемента".
9 Naumov
 
15.03.14
22:47
ЕСли молчок, то нужно добавить, чтобы работало.
10 Risoks
 
15.03.14
22:47
#Если &ИспользоватьОграничениеПоКонтрагенты ИЛИ &ИспользоватьОграничениеПоОрганизации #Тогда
ТекущаяТаблица
ИЗ
    Справочник.ДоговорыКонтрагентов КАК ТекущаяТаблица
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ РАЗЛИЧНЫЕ
            СоставГруппы.Ссылка КАК ГруппаПользователей
        ИЗ
            Справочник.ГруппыПользователей.ПользователиГруппы КАК СоставГруппы
        ГДЕ
            СоставГруппы.Пользователь = &ТекущийПользователь) КАК ГруппыПользователей
        ПО (ИСТИНА)
ГДЕ
НЕ ГруппыПользователей.ГруппаПользователей ЕСТЬ NULL
И
    (НЕ 1 В
                (ВЫБРАТЬ ПЕРВЫЕ 1
                    1
                ИЗ
                    РегистрСведений.НазначениеВидовОбъектовДоступа КАК НазначениеВидовОбъектовДоступа
                                            
                    #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
                    ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Контрагенты КАК Контрагенты
                    ПО Контрагенты.Ссылка = ТекущаяТаблица.Владелец
                    #КонецЕсли                                                                              
                    
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                        ПО
                            НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР
                                    
                                    #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
                                    КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                        ТОГДА ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
                                    #КонецЕсли
                                    
                                    #Если &ИспользоватьОграничениеПоОрганизации #Тогда
                                    КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                        ТОГДА ЕСТЬNULL(ТекущаяТаблица.Организация, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
                                    #КонецЕсли
                            
                                КОНЕЦ
                                И НастройкиПравДоступаПользователей.ВидОбъектаДоступа = НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа
                                И                              
                                #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
                                    ВЫБОР КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                        ТОГДА НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.КонтрагентыДопИнформация)
                                    ИНАЧЕ
                                        НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
                                    КОНЕЦ
                                #Иначе                                  
                                    НастройкиПравДоступаПользователей.ОбластьДанных = ЗНАЧЕНИЕ(Перечисление.ОбластиДанныхОбъектовДоступа.ПустаяСсылка)
                                #КонецЕсли
                                                                                                
                                И НастройкиПравДоступаПользователей.Пользователь = ГруппыПользователей.ГруппаПользователей
                                И НастройкиПравДоступаПользователей.Запись = ИСТИНА
                ГДЕ                
                     НазначениеВидовОбъектовДоступа.ГруппаПользователей = ГруппыПользователей.ГруппаПользователей
                           И НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа В (
                                                                                  ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.ПустаяСсылка)
                                                                                  
                                                                                  #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
                                                                                  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                                                                  #КонецЕсли
                                                                                  
                                                                                  #Если &ИспользоватьОграничениеПоОрганизации #Тогда
                                                                                  , ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                                                                  #КонецЕсли
                                                                                  
                                                                                  )
                
                    И НастройкиПравДоступаПользователей.ОбъектДоступа ЕСТЬ NULL))
#КонецЕсли
11 Risoks
 
15.03.14
22:48
вот. и куда добавить - теряюсь в догадках...
12 Naumov
 
15.03.14
23:07
Вот здесь:
                                    #Если &ИспользоватьОграничениеПоОрганизации #Тогда
                                    КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                        ТОГДА ЕСТЬNULL(ТекущаяТаблица.Организация, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка))
                                    #КонецЕсли

Написать что-то типа:
                                    #Если &ИспользоватьОграничениеПоОрганизации #Тогда
                                    КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Организации)
                                        ТОГДА ЕСТЬNULL(ТекущаяТаблица.Организация, ЗНАЧЕНИЕ(Справочник.Организации.ПустаяСсылка)) или ТекущаяТаблица.ЭтоГруппа
                                    #КонецЕсли
13 Naumov
 
15.03.14
23:09
ой нет. не так
14 Naumov
 
15.03.14
23:29
Скорее так условие связи надо переписать:
                    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.НастройкиПравДоступаПользователей КАК НастройкиПравДоступаПользователей
                        ПО
                           ТекущаяТаблица.ЭтоГруппа или
                            НастройкиПравДоступаПользователей.ОбъектДоступа = ВЫБОР
                                    
                                    #Если &ИспользоватьОграничениеПоКонтрагенты #Тогда
                                    КОГДА НазначениеВидовОбъектовДоступа.ВидОбъектаДоступа = ЗНАЧЕНИЕ(Перечисление.ВидыОбъектовДоступа.Контрагенты)
                                        ТОГДА ЕСТЬNULL(Контрагенты.ГруппаДоступаКонтрагента, ЗНАЧЕНИЕ(Справочник.ГруппыДоступаКонтрагентов.ПустаяСсылка))
                                    #КонецЕсли
15 Risoks
 
15.03.14
23:34
Спасибо. Сейчас попробую
16 Risoks
 
15.03.14
23:42
Получилось! УРА! Спасибо огромное!
Компьютеры — прекрасное средство для решения проблем, которых до их появления не было.