helpf.pro
Регистрация

v8: Состав интерфейсов

Wertuoz
06.11.2014 09:43Прочитано: 6272

Хотел написать отчет по отображению состава интерфейса пользователя...

Как проверить включает ли в себя интерфейс объект метаданных или нет???

Например есть ли в интерфейсе "Бухгалтер" докуемнт "ПриходныйКассовыйОрдер"

Yandex
Возможно, вас также заинтересует
Реклама на портале
E_Migachev
06.11.2014 15:30Ответ № 1

попробуйте отладчиком метаданные.интерфесы

Wertuoz
07.11.2014 07:56Ответ № 2

Нет там состава...

Я думал может есть какая нить процедура как у роли... где можно проверить есть права на данный объект или нет...

Так же хочется понять как проверить определенный объект метаданных в ходит в состав интерфейса или нет...

Obscurus
12.11.2014 11:35Ответ № 3

Пользователь привязан к определенному интерфейсу. У пользователя есть права на объект. Получить список пользователей можно с помощью глобального контекста МенеджерПользователейИнформационнойБазы. Интефейс не включает в себя никаких объектов метаданных, он содержит ссылки на открытие документов/справочников/обработов и т.п

Wertuoz
13.11.2014 09:04Ответ № 4

Как получить пользователей это понятн я могу... Понятно что и нет в интерфейсе метаданных... Как получить тогда список ссылок на объекты которые храняться в интерфейсе.???

Obscurus
13.11.2014 11:52Ответ № 5

Никак. Интерфейс - это список панелей с пунктами меню.

ОбъектМетаданных: Интерфейс (MetadataObject: Interface)

Свойства:

Имя (Name)Комментарий (Comment)Синоним (Synonym)Интерфейс (Interface)Переключаемый (Switchable)

Методы:

ПолноеИмя (FullName)Представление (Presentation)Родитель (Parent)


Описание:

Используется для обращения к метаданным объекта конфигурации - интерфейс

ОбъектМетаданных: Интерфейс (MetadataObject: Interface)

Интерфейс (Interface)

Использование:

Только чтение.

Описание:

Тип: Неопределено.

Доступность:

Сервер, толстый клиент, внешнее соединение.

Примечание:

Данное свойство всегда имеет значение Неопределено, т.к. во встроенном языке не предусмотрена работа со значением данного свойства.

А для чего вообще вам это нужно? Ещё раз повторюсь, что интерфейс не включает в себя никаких объектов метаданных. Что вам даст, если узнаете, что в каком-то интерфейсе есть ссылка на открытие документа, к которому у пользователя может и не быть доступа

Как получить пользователей это понятн я могу...

Значит сможете получить таблицу вида Интерфейсы - Пользователь/Роль. У последних есть права на объекты. Методом ПереключитьИнтерфейс(<ИменаИнтерфейсов>)  сможете управлять видимостью. 

Wertuoz
14.11.2014 13:43Ответ № 6

Мне часто спрашивают у кого куда есть доступ в системе... Вот и хочется выбрать пользователя и получить список объектов к которым он имеет доступ... У меня на каждую должность разработан свой интерфей и переключаться не могут... тоесть доступ ограничевается на уровне интерфейсов... потом только уже на уровне ролей ....

Obscurus
17.11.2014 11:57Ответ № 7

Возможно вам нужно что-то подобное? Обработка Ярослава Волохова от 17.06.2009. Работает медленно, но верно). Сюда дублировать не буду, если только руки дойдут до оптимизации. Хоть и оптимизировать там нечего. Просто не выбирайте всех пользователей и роли.  В основе обработки функция гл. контекста ПравоДоступа(<Право>, <ОбъектМетаданных>, <Пользователь/Роль>, <СтандартныйРеквизитСтандартнаяТабличнаяЧасть>)

Wertuoz
18.11.2014 05:11Ответ № 8

Не совтем то.. тут показано может ли пользователь использовать интерфейс....

Давайте еще раз опишу ситуацию....

У меня на каждую должностную роль есть свой интервейс.... И доступ только к одному интерфейсу.... Напримет: Есть менеджер по продажам для него разработан интерфейс "Меннеджер по продажам" , также для него разработана роль "Менеджер по продажам" и только для этой роли есть право использовать интерфейс "Менеджер по продажам"

Со временем состав интерфейса меняется... что то как правило добавляется, иногда убирается.... 

И в один прекрасный момент у меня запрашивают к чему имеет доступ данный сотрудник... и вот тут то мне и хочется показать состав интерфейса в форме отчета.....

С одной стороны этот вопрос можно было бы закрыть с помощью анализа роли.... но тут есть 2 ньюанса...

1. Из интерфейса можно убрать объект а для роли доступ останется... 

2. Могут быть другие роли старые которые имеют свои настройки не ненужные для данного человека права...

Уменя интерфейс является одним из фильтров доступа для пользователя...

Obscurus
18.11.2014 09:18Ответ № 9

У меня интерфейс является одним из фильтров доступа для пользователя...

Платформа 1с используется для этого роли. Для ограничения доступа на уровне объектов - роль, на уровне записей - RLS

Со временем состав интерфейса меняется... что то как правило добавляется, иногда убирается....

При этом изменение роли остается за программистом. Если к чему нет видимого доступа через кнопку или пункт меню, то это не значит что нельзя получить доступ каким-то другим способом (обработка, через другие связанные справочники, документы и т.п.)

И в один прекрасный момент у меня запрашивают к чему имеет доступ данный сотрудник... и вот тут то мне и хочется показать состав интерфейса в форме отчета....

Не дает платформа таких возможностей. Хотите увидеть интефейс - заходите в режим конфигуратора и смотрите. Из режима предприятия можно только получить Имя интерфейса и переключиться на него. Дайте права тем пользователям, которые хотят увидеть интерфейс сотрудника и и пусть щелкают). И вообще, если запрашивают доступ к данным, то и показывайте этот доступ, а не то, что видно сотруднику. Я вот вижу закладки в своей любимой книжке, но доступ у меня есть ко всей) Условно говоря, у сотрудника есть пункт меню "Штатное расписание", то это значит у него есть доступ к спр. "Подразделения", "Должности", "Категории", "Физические лица", док. "Замещения должностей организации", планы счетов Бух. учета. и ещё много чего, что сразу не вспомню. Да, там свои ограничения, но это уже другой вопрос и отчет выше отображает также доступ на уровне записей. А речь шла как бы о регистре сведений "Штатное расписание".

Переходим с конфигурации ЗУП 2.1 на 2.5 и интерфесы приходится переносить вручную. Всё это касается обычного интерфейса. По поводу управляемого ничего не скажу, не прижился он у нас пока) Не используется у нас ни подсистемы, ни командный интерфейс. Вот возможно в управляемом и можно как-то получить. Хотя справка говорит:

ОбъектМетаданных: Подсистема (MetadataObject: Subsystem)

КомандныйИнтерфейс (CommandInterface)

Использование:

Только чтение.

Описание:

Тип: Неопределено. Свойство предназначено для редактирования состава глобальных команд соответствующей подсистемы.

Доступность:

Сервер, толстый клиент, внешнее соединение

Wertuoz
20.11.2014 12:32Ответ № 10

Obscurus, Я полностью с тобой согласен... о доступе и что если не видно в интерфейсе то это можно обойти... через другие объекты... Все это понятно... Понятно и что я по ходу не смогу реализовать задумку...

Так что всем спасибо )

Подсказка: Для выделения Кода используйте (в редакторе).
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.