Имя: Пароль:
1C
1С v8
как получить полные права из справочника?
,
0 YamEgor
 
26.12.20
13:11
Добрый день! подскажите как получить роль полные права? конфигурация 1С:ERP Управление предприятием 2 для Казахстана. Задача следующая, нужно выбрать все документы у которых не назначена роль. В конфигурации есть справочник ИдентификаторыОбъектовМетаданных и в нем храняться наверное все объекты,то есть там справочники, документы, роли, и т.д. и этот справочник используется для регистра сведений ПраваРолей. В РегСведений есть два измерения Роль и ОбъектМетаданных и я в обработке вот что сделал:

    РодительДокументов = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию("Документы",Истина);
    //ВсеРоли = Справочники.ИдентификаторыОбъектовМетаданных.НайтиПоНаименованию("Роли",Истина); //здесь все роли
    //а мне нужна только одна роль полные права
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ИдентификаторыОбъектовМетаданных.Ссылка КАК Ссылка
        |ПОМЕСТИТЬ ВТ_Документы
        |ИЗ
        |    Справочник.ИдентификаторыОбъектовМетаданных КАК ИдентификаторыОбъектовМетаданных
        |ГДЕ
        |    ИдентификаторыОбъектовМетаданных.Родитель В(&Родитель)
        |    И НЕ ИдентификаторыОбъектовМетаданных.ПометкаУдаления
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ПраваРолей.Роль КАК Роль,
        |    ПраваРолей.ОбъектМетаданных КАК ОбъектМетаданных
        |ПОМЕСТИТЬ РолиСправочника
        |ИЗ
        |    РегистрСведений.ПраваРолей КАК ПраваРолей
        |ГДЕ
        |    НЕ ПраваРолей.Роль = &РольПолныеПрава
        |;
        |
        |////////////////////////////////////////////////////////////////////////////////
        |ВЫБРАТЬ
        |    ВТ_Документы.Ссылка КАК Ссылка
        |ИЗ
        |    ВТ_Документы КАК ВТ_Документы
        |        ЛЕВОЕ СОЕДИНЕНИЕ РолиСправочника КАК РолиСправочника
        |        ПО ВТ_Документы.Ссылка = РолиСправочника.ОбъектМетаданных
        |ГДЕ
        |    РолиСправочника.Роль ЕСТЬ NULL";
            
    Запрос.УстановитьПараметр("Родитель", РодительДокументов);
    РезультатЗапроса = Запрос.Выполнить();
    Если РезультатЗапроса.Пустой() Тогда
        Сообщить("Нет ничего");
    Иначе
        ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
        Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
            Сообщить(ВыборкаДетальныеЗаписи.Ссылка);
        КонецЦикла;
    КонецЕсли;
1 vicof
 
26.12.20
13:53
У меня один вопрос. Зачем?
2 YamEgor
 
26.12.20
14:06
(1) нужно получить все объекты у которых не назначили права
3 ASU_Diamond
 
26.12.20
14:28
(2) Которые ни в одной из ролей не участвуют наверное? Это можно получить без всяких справочников и регистров
4 YamEgor
 
26.12.20
14:31
(3) просто выбираем скажем по документам только
5 YamEgor
 
26.12.20
14:34
(3) Которые ни в одной из ролей не участвуют наверное? - скорее всего одна роль ПолныеПрава будет всегда, надо получается тот объект у которого будет только одна роль, как в запросе проверить на количество Роль.Количество() = 1?
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс