Хм... У меня вопрос такого же смысла. Вот я смотрю роль. Справа список объектов, слева права для вида объекта. Скажем для документов список один, а для справочников справочников он похож, но имеет ещё одно право или не имеет. Вот как получить этот список в виде списка в конфигурации ,для того,чтобы автоматически подставлять циклом в ПравоДоступа()? Я прочитал выше написанное и засомневался, но решил переспросить, вообще такое возможно?
По теме из базы знаний
- Гибкое управление свойствами доступности элементов управления в обычных формах 1С:Предприятия 8.х
- Как получить список простых чисел в запросе
- Как получить из текста в BPMN схему. Видеоинструкция
- Управление сборкой. Расширение для конфигурации СППР
- API-интеграция 1С с маркетплейсами ОЗОН, WildBerries, Я.Маркет, СберМегаМаркет, Стройландия, Леруа Мерлен, Hoff, AliExpress для УТ11, КА2, ERP2, УНФ, БП3, Розница, УТ10, УПП1.3
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Да и способов вагон - через ПравоДоступа... через парсинг текстового файлика , полученного из описания конфигурации, через ВКЮ коих вагон и маленькая тележка, через средства для работы с компаундом - gcomp/activemd/compaund.dll и др..
Компаундный файл users.usr, хранилище Page.2, поток
Container.Contents.
На дельфи выглядит так:
OleCheck(RootStg.OpenStorage(StringToOLEStr('UserDef'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD1));
OleCheck(UD1.OpenStorage(StringToOLEStr('Page.2'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD3));
OleCheck(UD3.OpenStream(StringToOleSTR('Container.Contents'), nil, STGM_READWrite or STGM_SHARE_EXCLUSIVE, 0, Strm));
OS := TOleStream.Create(Strm);
GetMem(newbuff, OS.size);
OS.ReadBuffer(Pointer(newbuff)^, OS.Size);
Получим строку вида:
{"Container.Contents",{"RightsEditorType","Page.A","Бухгалтер материальной группы",""},{"RightsEditorType","Page.1","Бухгалтер основные средства",""},{"RightsEditorType","Page.B","Бухгалтер производственной группы",""},{"RightsEditorType","Page.F","Бухгалтер расчетной группы",""},{"RightsEditorType","Page.E","Бухгалтер финансовой группы",""},....
Container.Contents.
На дельфи выглядит так:
OleCheck(RootStg.OpenStorage(StringToOLEStr('UserDef'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD1));
OleCheck(UD1.OpenStorage(StringToOLEStr('Page.2'), nil, OF_READWRITE or STGM_SHARE_EXCLUSIVE, nil, 0, UD3));
OleCheck(UD3.OpenStream(StringToOleSTR('Container.Contents'), nil, STGM_READWrite or STGM_SHARE_EXCLUSIVE, 0, Strm));
OS := TOleStream.Create(Strm);
GetMem(newbuff, OS.size);
OS.ReadBuffer(Pointer(newbuff)^, OS.Size);
Получим строку вида:
{"Container.Contents",{"RightsEditorType","Page.A","Бухгалтер материальной группы",""},{"RightsEditorType","Page.1","Бухгалтер основные средства",""},{"RightsEditorType","Page.B","Бухгалтер производственной группы",""},{"RightsEditorType","Page.F","Бухгалтер расчетной группы",""},{"RightsEditorType","Page.E","Бухгалтер финансовой группы",""},....
Спасибо. Так то мне ваще надо получить матрицу доступа:
какие наборы прав на что имеют доступ
а потом список пользователей и соответствующий им набор прав.
Так понимаю через метаданные это не получить, а жаль.
А ни одна внешняя компонента это не поддерживает?
какие наборы прав на что имеют доступ
а потом список пользователей и соответствующий им набор прав.
Так понимаю через метаданные это не получить, а жаль.
А ни одна внешняя компонента это не поддерживает?
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот