Имя: Пароль:
1C
1С v8
Проблемы с правами в ДО
0 ТипичнаяОшибка
 
24.07.19
13:37
Привет всем!
Не могу уже придумать ничего толкового, помогите!
ДО 8 КОРП, редакция 2.1 (2.1.12.2), платформа 8.3.10.2466
Есть типовые справочники Контрагенты и Банковские счета, есть типовая роль ДобавлениеИзменениеКонтрагентов.
Пользователь с такой ролью может отрывать, изменять, сохранять уже существующие элементы справочника Контрагенты
Но при создании нового элемента получает ошибку

{Справочник.БанковскиеСчета.МодульМенеджера(23)}: Ошибка при вызове метода контекста (Выполнить)
    Выборка = Запрос.Выполнить();
по причине:
Ошибка выполнения запроса
по причине:
У пользователя недостаточно прав на исполнение операции над базой данных.

Ошибка при выполнении

Функция ИмеетБанковскийСчет(Владелец) Экспорт
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ ПЕРВЫЕ 1
        |    БанковскиеСчета.Ссылка
        |ИЗ
        |    Справочник.БанковскиеСчета КАК БанковскиеСчета
        |ГДЕ
        |    БанковскиеСчета.Владелец = &Владелец";
    
    Запрос.УстановитьПараметр("Владелец", Владелец);
    Выборка = Запрос.Выполнить();
    
    Возврат Не Выборка.Пустой();
    
КонецФункции

Почему не дает создать новый элемент?
1 ТипичнаяОшибка
 
24.07.19
13:39
Причем при открытии существующих элементов также выполняется эта функция, но без ошибок
2 dka80
 
24.07.19
13:43
При создании нового контрагента или нового банковского счета у существующего контрагента?
3 ТипичнаяОшибка
 
24.07.19
13:52
(2) при создании нового контрагента
4 Случайный прохожий
 
24.07.19
13:56
У пользователя есть права на чтение банковских счетов?
5 dka80
 
24.07.19
14:00
Администрирование-Настройка программы-Права доступа-Используемые разрезы доступа: галочка группы доступа контрагентов не стоит, случайно?
6 ТипичнаяОшибка
 
24.07.19
14:46
(4) да, выдается той же ролью ДобавлениеИзменениеКонтрагентов
(5) да, флаг есть. Снял, попробовал - ошибка есть
7 dka80
 
24.07.19
15:59
Попробуй после выполнить обновление прав.
8 ТипичнаяОшибка
 
24.07.19
16:42
(7) не помогло, ошибка есть
9 ТипичнаяОшибка
 
25.07.19
09:38
Еще идеи у кого-нибудь будут?)
10 luter-89
 
25.07.19
10:01
(9) Возможно RLS, проверь профили и группы доступа
11 ТипичнаяОшибка
 
25.07.19
14:32
(10) есть опять же типовая штука там
на чтение #ПоДескрипторуОбъекта("", "", "", "")
на изменение #ПоДескрипторуОбъекта("Изменение", "", "", "")

Текст
// Параметр(1) - отбор по полям Изменение, Добавление:
//    по умолчанию нет условий, проверяется право чтения
//  "Изменение" - условие Изменение = ИСТИНА
//    "ИзменениеИлиДобавление" - условие (Изменение = ИСТИНА ИЛИ Добавление = ИСТИНА)
//
// Параметр(2) - имя поля, указывающее на объект, чьи права будут проанализированы
//    по умолчанию "Ссылка"
//
// Параметр(3) - дополнительные условия:
//  "БезРуководителейИДелегатов" - не включать руководителей и делегатов в права
//  "БезРуководителей" - не включать руководителей в права
//  "БезДелегатов" - не включать делегатов в права
//
// Параметр(4) - оставлять пустым (зарезервирован, не используется)
//
// Примеры использования шаблона:
//    #ПоДескрипторуОбъекта("", "")
//    #ПоДескрипторуОбъекта("Изменение", "")
//    #ПоДескрипторуОбъекта("", "Документ")
//    #ПоДескрипторуОбъекта("ИзменениеИлиДобавление", "Мероприятие")
//    #ПоДескрипторуОбъекта("ИзменениеИлиДобавление", "Мероприятие", "БезРуководителейИДелегатов")

#Если &ДокументооборотИспользоватьОграниченияПравДоступа #Тогда
    
    ТекущаяТаблица ИЗ #ТекущаяТаблица КАК ТекущаяТаблица
    
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ДескрипторыДляОбъектов КАК ДескрипторыДляОбъектов
    #Если "#Параметр(2)" = "" #Тогда
        ПО ТекущаяТаблица.Ссылка = ДескрипторыДляОбъектов.Объект
    #Иначе
        ПО ТекущаяТаблица.#Параметр(2) = ДескрипторыДляОбъектов.Объект
    #КонецЕсли
    
    ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ПраваПоДескрипторамДоступаОбъектов КАК ПраваПоДескрипторамДоступаОбъектов
    ПО ДескрипторыДляОбъектов.Дескриптор = ПраваПоДескрипторамДоступаОбъектов.Дескриптор
    
    ГДЕ ПраваПоДескрипторамДоступаОбъектов.Пользователь = &ТекущийПользователь
    И НЕ ДескрипторыДляОбъектов.Отключен
    
    #Если "#Параметр(1)" = "Изменение" #Тогда
        И ПраваПоДескрипторамДоступаОбъектов.Изменение
    #ИначеЕсли "#Параметр(1)" = "ИзменениеИлиДобавление" #Тогда
        И (ПраваПоДескрипторамДоступаОбъектов.Изменение
            ИЛИ ПраваПоДескрипторамДоступаОбъектов.Добавление)
    #КонецЕсли
    
    #Если "#Параметр(3)" = "БезРуководителейИДелегатов" #Тогда
        И ПраваПоДескрипторамДоступаОбъектов.ОбъектОснование = НЕОПРЕДЕЛЕНО
    #КонецЕсли
    
#КонецЕсли

#Если "#Параметр(4)" = "" #Тогда
#КонецЕсли


Как это может помешать создавать нового контрагента?