Стоит очень древняя, очень сильно переписанная конфигурация УТ 10.2
В свое время я эту конфигурацию перевел с платформы 8.1 на платформу 8.2
Конфигурация при переводе осталась в режиме совместимости "Версия 8.1"
Со временем я переделал все на перевод в режим совместимости "Версия Версия 8.2.13".
На новогодних перевел конфигурацию на новый режим совместимости.
В результате в одном справочнике перестало корректно работать RLS
В ограничении доступа написан такой код:
До перевода все работало без проблем, а сейчас пользователи ничего не видят, даже группы.
В чем может быть причина?
В свое время я эту конфигурацию перевел с платформы 8.1 на платформу 8.2
Конфигурация при переводе осталась в режиме совместимости "Версия 8.1"
Со временем я переделал все на перевод в режим совместимости "Версия Версия 8.2.13".
На новогодних перевел конфигурацию на новый режим совместимости.
В результате в одном справочнике перестало корректно работать RLS
В ограничении доступа написан такой код:
#Если &ИспользоватьОграниченияПравДоступаККонтрагентамНаУровнеЗаписей #Тогда
ДокументацияПоСистеме ГДЕ ВЫБОР
КОГДА &ЕстьПолныеПрава
ИЛИ ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА НЕ ДокументацияПоСистеме.ЕстьОграничениеПоДоступу
ТОГДА ИСТИНА
КОГДА &ОтделПользователя = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
ТОГДА ИСТИНА
КОГДА &ТекущийПользователь = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ
#КонецЕсли
ПоказатьДо перевода все работало без проблем, а сейчас пользователи ничего не видят, даже группы.
В чем может быть причина?
По теме из базы знаний
- 1С:Предприятие Бухгалтерия переход с редакции 2.0 на 3.0. Практика перевода информационной базы для работы в управляемом приложении.
- [Расширения] Динамическое управление видимостью и доступностью элементов форм (УФ) (8.3.6+)
- Управление задачами: Канбан доска
- Проверка доступности объектов с учетом видов ограничений при RLS
- Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия
Найденные решения
Нашел, в чем проблема.
В справочнике есть таблица "ГруппыДоступа" и в эту таблицу указывают тех, кто имеет доступ к конкретному элементу.
В 8.1 по своему отрабатывала эту ситуацию и поэтому выводилось все, что нужно.
В 8.2 это исправили и в запрос попадали только те элементы, в таблице которых были нужные пользователи.
Пришлось на скорую руку переписывать.
Получилось вот такое:
Это заработало.
В справочнике есть таблица "ГруппыДоступа" и в эту таблицу указывают тех, кто имеет доступ к конкретному элементу.
В 8.1 по своему отрабатывала эту ситуацию и поэтому выводилось все, что нужно.
В 8.2 это исправили и в запрос попадали только те элементы, в таблице которых были нужные пользователи.
Пришлось на скорую руку переписывать.
Получилось вот такое:
#Если &ИспользоватьОграниченияПравДоступаККонтрагентамНаУровнеЗаписей #Тогда
ДокументацияПоСистеме ГДЕ ВЫБОР
КОГДА &ЕстьПолныеПрава
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА НЕ ДокументацияПоСистеме.ЕстьОграничениеПоДоступу
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.Ссылка В
(ВЫБРАТЬ
ДокументацияПоСистемеГруппыДоступа.Ссылка
ИЗ
Справочник.ДокументацияПоСистеме.ГруппыДоступа КАК ДокументацияПоСистемеГруппыДоступа
ГДЕ
(ДокументацияПоСистемеГруппыДоступа.ГруппаПользователей = &ОтделПользователя
ИЛИ ДокументацияПоСистемеГруппыДоступа.ГруппаПользователей = &ТекущийПользователь))
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ
#КонецЕсли
ПоказатьЭто заработало.
Остальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(2)В коде прописано:
Т.е. для групп всегда должно чтение произойти, а его не происходит.
Открытие списка справочника происходит всегда в иерархическом просмотре.
Опять же раньше работало а сейчас перестало.
КОГДА &ЕстьПолныеПрава
ИЛИ ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
Т.е. для групп всегда должно чтение произойти, а его не происходит.
Открытие списка справочника происходит всегда в иерархическом просмотре.
Опять же раньше работало а сейчас перестало.
(6) создайте в конфигурации новые формы списков(временно)
- в виде простого списка без иерархии
- в виде дерева
с какой-то версии платформы в палитре свойств списка есть свойство "Отображать корень" с ним по играйте.
если результат нет - переходим к разделу неверятное и ждем потного гарри.
- в виде простого списка без иерархии
- в виде дерева
с какой-то версии платформы в палитре свойств списка есть свойство "Отображать корень" с ним по играйте.
если результат нет - переходим к разделу неверятное и ждем потного гарри.
Загрузил под полными правами, запустил консоль запросов.
создал вот такой запрос:
В параметрах указал ЕстьПолныеПрава = Ложь;
В результате в отчет вывелись все группы.
Создал вот такой запрос:
В параметрах указал:
ЕстьПолныеПрава - ложь
ОтделПользователя - указал отдел, который точно есть в одном из элементов
ТекущийПользователь - указал пользователя, который тоже присутствует.
Выполнил запрос. В результате не вывелось ни одной группы, а вывелись только элементы, для которых указан отдел или пользователь.
Куда пропали группы???
создал вот такой запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ДокументацияПоСистеме.Ссылка,
ДокументацияПоСистеме.Код,
ДокументацияПоСистеме.Наименование,
ДокументацияПоСистеме.ЭтоГруппа
ИЗ
Справочник.ДокументацияПоСистеме КАК ДокументацияПоСистеме
ГДЕ
ВЫБОР
КОГДА &ЕстьПолныеПрава
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
//ИНАЧЕ ВЫБОР
// КОГДА НЕ ДокументацияПоСистеме.ЕстьОграничениеПоДоступу
// ТОГДА ИСТИНА
// КОГДА &ОтделПользователя = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
// ТОГДА ИСТИНА
// КОГДА &ТекущийПользователь = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
// ТОГДА ИСТИНА
// ИНАЧЕ ЛОЖЬ
// КОНЕЦ
КОНЕЦ
ПоказатьВ параметрах указал ЕстьПолныеПрава = Ложь;
В результате в отчет вывелись все группы.
Создал вот такой запрос:
ВЫБРАТЬ РАЗРЕШЕННЫЕ
ДокументацияПоСистеме.Ссылка,
ДокументацияПоСистеме.Код,
ДокументацияПоСистеме.Наименование,
ДокументацияПоСистеме.ЭтоГруппа
ИЗ
Справочник.ДокументацияПоСистеме КАК ДокументацияПоСистеме
ГДЕ
ВЫБОР
КОГДА &ЕстьПолныеПрава
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА НЕ ДокументацияПоСистеме.ЕстьОграничениеПоДоступу
ТОГДА ИСТИНА
КОГДА &ОтделПользователя = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
ТОГДА ИСТИНА
КОГДА &ТекущийПользователь = ДокументацияПоСистеме.ГруппыДоступа.ГруппаПользователей
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ
ПоказатьВ параметрах указал:
ЕстьПолныеПрава - ложь
ОтделПользователя - указал отдел, который точно есть в одном из элементов
ТекущийПользователь - указал пользователя, который тоже присутствует.
Выполнил запрос. В результате не вывелось ни одной группы, а вывелись только элементы, для которых указан отдел или пользователь.
Куда пропали группы???
Нашел, в чем проблема.
В справочнике есть таблица "ГруппыДоступа" и в эту таблицу указывают тех, кто имеет доступ к конкретному элементу.
В 8.1 по своему отрабатывала эту ситуацию и поэтому выводилось все, что нужно.
В 8.2 это исправили и в запрос попадали только те элементы, в таблице которых были нужные пользователи.
Пришлось на скорую руку переписывать.
Получилось вот такое:
Это заработало.
В справочнике есть таблица "ГруппыДоступа" и в эту таблицу указывают тех, кто имеет доступ к конкретному элементу.
В 8.1 по своему отрабатывала эту ситуацию и поэтому выводилось все, что нужно.
В 8.2 это исправили и в запрос попадали только те элементы, в таблице которых были нужные пользователи.
Пришлось на скорую руку переписывать.
Получилось вот такое:
#Если &ИспользоватьОграниченияПравДоступаККонтрагентамНаУровнеЗаписей #Тогда
ДокументацияПоСистеме ГДЕ ВЫБОР
КОГДА &ЕстьПолныеПрава
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.ЭтоГруппа
ТОГДА ИСТИНА
ИНАЧЕ ВЫБОР
КОГДА НЕ ДокументацияПоСистеме.ЕстьОграничениеПоДоступу
ТОГДА ИСТИНА
КОГДА ДокументацияПоСистеме.Ссылка В
(ВЫБРАТЬ
ДокументацияПоСистемеГруппыДоступа.Ссылка
ИЗ
Справочник.ДокументацияПоСистеме.ГруппыДоступа КАК ДокументацияПоСистемеГруппыДоступа
ГДЕ
(ДокументацияПоСистемеГруппыДоступа.ГруппаПользователей = &ОтделПользователя
ИЛИ ДокументацияПоСистемеГруппыДоступа.ГруппаПользователей = &ТекущийПользователь))
ТОГДА ИСТИНА
ИНАЧЕ ЛОЖЬ
КОНЕЦ
КОНЕЦ
#КонецЕсли
ПоказатьЭто заработало.
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот