1с видимость команды по ролям

Обновлено: 06.07.2024

Статья входит в цикл «Первые шаги в разработке на 1С». В ней мы продолжаем знакомиться с управляемым интерфейсом «Такси» и приступаем непосредственно к его конфигурированию.

Как известно, разработка интерфейса информационной базы начинается с создания структуры его меню, ведь насколько удобным и логичным оно будет, настолько понятным пользователю будет вся система в целом.

Прочитав статью, вы узнаете:

  • Какую роль в формировании структуры меню играет подсистема?
  • Как сформировать разделы меню 1-го и 2-го уровня?
  • Как настроить состав команд, отображаемых в разделах меню?
  • Для чего нужен редактор Командного интерфейса и как с ним работать?
  • Как настроить Командный интерфейс основного раздела?

Применимость

В статье рассматривается интерфейс «Такси» конфигурации, разработанной на платформе 1C 8.3.4.496. Информация актуальна для текущих релизов платформы.

Подсистемы. Настройка интерфейса с помощью подсистем

Подсистемы относят к общим объектам. Они обеспечивают возможность классификации объектов конфигурации по Подсистемам.

Для указания принадлежности объекта к подсистемам в Окне редактирования объекта существует соответствующая закладка, на которой флагами отмечается, к каким подсистемам относится объект.

Классификация объектов по Подсистемам

В дальнейшем можно выстроить фильтр дерева объектов по Подсистемам.

При этом имеется возможность управления: включать для выбранных Подсистем объекты подчиненных Подсистем и родительских Подсистем или нет.

Управление Подсистемами в Конфигурации

Классификация объектов по Подсистемам создает удобство при создании Ролей.

Для объекта Роль можно определить соответствующие права и указать, что данную Роль можно построить только по тем объектам, которые входят в выбранные Подсистемы.

Объект Роль по подсистемам

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

Интерфейсы по подсистемам

Классификация объектов по Подсистемам используется также при объединении конфигураций. Т.е. можно объединять объекты, отфильтрованные по Подсистемам.

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

Структура подсистем

Панель разделов

Для существующих Подсистем можно определять вложенные (подчиненные). Данные Подсистемы будут образовывать группы Панели навигации.

Вложенные (подчиненные) подсистемы

Структура подсистем

Панель навигации 1С

Не рекомендуется создавать подсистемы с уровнем вложенности больше двух, так как в противном случае интерфейс будет сложно читаемым.

Когда мы классифицируем объект по Подсистемам, возможно включить объект только во вложенную Подсистему, возможно в Подсистему первого уровня, возможно и в ту и в другую.

В последнем случае объект будет отображаться дважды: и внутри вложенной Подсистемы и отдельно в Панели навигации. В большинстве случаев это не совсем правильно.

1С Конфигурация - объект в Подсистеме

Объект в панели навигации, объект внутри вложенной Подсистемы

В принципе, Подсистемы являются не обязательным объектом. Т.е. конфигурация, разработанная на Платформе 8.3, вполне сможет работать без каких-либо Подсистем.

Но в этом случае Панели разделов вообще не будет, все будет отображаться на Рабочем столе. Очень простые конфигурации с малым набором объектов смогут работать и без Подсистем.

Но если в конфигурации достаточно много Документов, Справочников и Регистров, использование Подсистем существенно облегчает работу пользователя.

Конфигурация 1С:Предприятие

Отметить, что некоторый объект конфигурации принадлежит какой-либо Подсистеме можно тремя способами.

Во-первых, это можно сделать в Окне редактирования объекта на закладке Подсистемы. Данный вариант мы уже рассматривали.

Во-вторых, можно использовать Окно редактирования самой Подсистемы. На закладке Состав можно указать объекты, входящие в данную Подсистему.

Объекты подсистемы

И наконец, для объектов конфигурации через контекстное меню можно вызвать специальное диалоговое окно, которое называется Дополнительно.

Диалоговое окно Дополнительно

1С Конфигурация Дополнительно

Данное окно также позволяет для объекта отмечать принадлежность к Подсистемам. Это окно используется в том случае, если мы хотим сразу поработать с несколькими объектами.

При перемещении курсора по объектам дерева конфигурации в окне Дополнительно высвечивается соответствующая информация по подсистемам.

При создании объекта конфигурации по умолчанию Платформа 8.3 не проставляет привязку объекта ни к какой подсистеме.

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

Если разработчик этого не выполнит, то система определит отсутствие принадлежности к Подсистемам как ошибку.

Но ошибка не является критичной, поэтому с этим можно согласиться.

Ошибки в конфигурации

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

К таким объектам пользователь может обратиться только через Главное меню, используя команду Все функции.

Естественно, чтобы объект возможно было открыть, необходимо, чтобы пользователю были предоставлены соответствующие права.

Настройка 1С:Предприятие

Существует ряд случаев, когда разработчикам удобнее включать добавленные в типовую конфигурацию объекты в свою отдельную подсистему.

Для Подсистем в Окне редактирования можно снять флаг Включать в командный интерфейс.

Настройка Подсистем

При этом Подсистемы не будут отображаться в командном интерфейсе. Если нет ни одной Подсистемы, которая должна быть включена в командный интерфейс, то для новых объектов Платформа 8.3 не проверяет принадлежность к какой-либо подсистеме.

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

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

Редактирование Подсистемы

Командный интерфейс 1С

Можно для каждой Подсистемы вызвать данный редактор. Из редактора имеется возможность управлять открытием списков в Панели навигации, доступностью команд в Панели действий.

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

Элементы в редакторе можно перемещать. При этом из Панели навигации в Панель действий и в обратном направлении перемещение невозможно. Перемещать элементы можно либо внутри Панели навигации, либо внутри Панели действий.

Существуют колонка общей видимости и колонки видимости по ролям. Для каждой роли, определенной в конфигурации, будет своя колонка. То значение, которое установлено в колонке общей видимости, является значением по умолчанию для видимости по ролям.

Видимость по ролям может принимать три значения: либо для данной роли элемент будет невидимым (1); либо будет виден всегда, не зависимо от того, какой флаг выставлен в колонке видимости (2); либо флаг видимости по роли будет наследоваться от флага общей видимости (3).

Если пользователю назначены две роли и для одной их них указан флажок, а для другой нет, то будет работать стандартное правило системы 1С:Предприятие 8 – действие пользователю разрешено, если оно разрешено в одной из ролей.

Иногда бывает необходимо сразу менять командный интерфейс в нескольких Подсистемах. В платформе 1C:Предприятие 8 существует сервисный инструмент, который позволяет редактировать командный интерфейс сразу нескольких Подсистем.

Данный инструмент вызывается из контекстного меню корневого узла ветки Подсистемы.

Все подсистемы

Редактируем командный интерфейс нескольких Подсистем в 1С:Предприятие 8

В открывшемся окне можно быстро перемещаться по Подсистемам и редактировать командные интерфейсы. Кроме того, в данном окне можно редактировать состав Подсистемы. Также можно перемещать объекты в Панели навигации и Панели действий.

Кроме того, можно даже изменить подчиненность Подсистемы. Для этого есть специальная кнопка Переместить подсистему.

Чтобы настроить командный интерфейс Основного раздела также используется редактор командного интерфейса.

Вызывается он уже не для Подсистем, а через контекстное меню корневого узла конфигурации, пункт Открыть командный интерфейс основного раздела.

Корневой узел конфигурации

Командный интерфейс основного раздела Конфигурации

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

Следует иметь в виду, что при удалении Подсистем Платформа, к сожалению, не проверяет: входит ли в данную подсистему хоть один объект или не входит.

На этом завершим наше знакомство с настройкой структуры меню информационной базы. В следующей статье мы продолжим наше знакомство с Управляемым интерфейсом и рассмотрим, какие возможности предоставляет платформа «1С:Предприятие 8» для работы со списками.


PDF-версия статьи для участников группы ВКонтакте

Статья в PDF-формате

Никак не соображу. Ситуация:
У справочника (не у формы) есть параметризированная команда, отнесенная к группе "Перейти" панели навигации формы. В командном интерфейсе формы элемента отмечены "Видимость" и "Автовидимость" (как они, кстати, взаимодействуют?)
В ролях доступных пользователю даны права на просмотр этой команды.
В итоге под полными правами команда отображается как доступный переход из формы справочника, а у пользователя - нет.
Куда еще можно глянуть?

Имеется возможность редактирования командного интерфейса формы: включение новых, использование имеющихся команд и т. д.
Заметим, что командный интерфейс формы редактируется на отдельной закладке в редакторе формы и описывает состав панели навигации вспомогательного окна, в котором отображается форма, и частично состав командной панели формы. В основном этот механизм нужен для настройки команд глобального интерфейса, которые необходимо отображать в форме в этих двух панелях. Состав командной панели формы определяется и непосредственно в структуре элементов, и в редакторе командного интерфейса.
Команда автоматически попадает в командный интерфейс формы, в случае если тип параметра параметризованной команды совпадает с типом основного реквизита формы.
Кроме того, можно принудительно добавить команду в нужную панель командного интерфейса. Для этого достаточно просто перетащить ее в нужную группу нужной командной панели.
Установленный признак Автоположение показывает, что будет использована последовательность команд, формируемая системой по умолчанию. Если его отключить, то можно редактировать порядок команд.
Для того чтобы настроить видимость команд, которые расположены в панелях командного интерфейса, можно снять флажок в колонке Автовидимость и изменить значение в колонке Видимость.

Что-то понятнее не стало. Конец дня и маразм.
Можно на пальцах, когда полезно эту галку использовать, а когда нет и почему?

Ага. Без галки "Автовидимость" можно явно задать видимость в разрезе ролей. Тогда понятно.

Разобрался.
Если даю права на просмотр команды в той же роли, где и права на просмотр справочника - пользователь видит. А если в роли, где прав на просмотр справочника нет - то игнорируется. Несмотря на то, что в другой роли пользователю даются права на просмотр справочника.
Вот такая неочевидная фигня.

В предыдущей статье мы научились создавать подсистемы 1С, а в этой статье научимся, как при помощи подсистем можно настраивать интерфейс пользовательского приложения.

Ссылка на предыдущую статью: подсистемы в 1С.

Для написания статьи я использовал учебную базу из книги «Основы разработки в 1С: Такси» со следующими подсистемами.

Подсистемы в конфигураторе

Подсистемы в пользовательском режиме

Свойство конфигурации «Командный интерфейс»

Мы можем самостоятельно конфигурировать расположение подсистем в пользовательском режиме. Делается это в свойстве конфигурации «Командный интерфейс». Для того, чтобы попасть в это свойство, необходимо вызвать контекстное меню конфигурации (выделить самый верхний узел конфигурации, и вызвать правой кнопкой мышки контекстное меню), в этом контекстном меню интересует команда «Свойства».

Контекстное меню конфигурации

После выполнения команды «Свойства» контекстного меню, откроется палитра свойств конфигурации, где нас интересует свойство «Командный интерфейс».

Свойство командный интерфейс конфигурации

После нажатия гиперссылки «Открыть» этого свойства, откроется окно командного интерфейса. В этом окне мы можем передвигать иконки подсистем, настраивать общее отображение (колонка Видимость), и настраивать отображение по ролям (колонка соответствующей роли).

Окно командного интерфейса

Заметьте, у колонок ролей могут быть «серые» флажки, это значит, что если у роли установлен такой «серый» флажок, то для данной роли у подсистемы будет такая же видимость, которая установлена в колонке Видимость.

В этом случае роль Администратор будет видеть подсистему Закупки

Видимость подсистемы у роли

Видимость подсистемы у роли

Если мы отключим видимость подсистемы в свойстве Командный интерфейс, то ее в пользовательском режиме по умолчанию видно не будет (мы отключили подсистему Закупки).

Но пользователь, может включить её. Для этого нужно зайти в настройку панелей разделов.

Для платформы версий 8.15 и выше

Путь к настройке панелей разделов платформа 8.15 и выше

Для платформы версий ниже 8.15.

Путь к настройке панелей разделов платформа ниже 8.15

И в открывшемся окне «Настройка панелей разделов», при помощи кнопки «Добавить» переместить нужный раздел в список «Выбранные раздел». В этом же списке вы можете перемещать разделы между собой по своему усмотрению.

Окно Настройка панелей разделов

Если же мы хотим, чтобы подсистема вообще не была доступна пользователю. То необходимо отключить у нужной роли право на просмотр этой подсистемы.

Для этого открываем дополнительные настройки отключаемой для роли подсистемы.

Свойство дополнительно в контекстном меню подсистемы

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

Право на просмотр подсистемы

После этого, пользователь не увидит эту подсистему, и не сможет добавить её, используя настройку панелей разделов.

Настройка панелей разделов

Командный интерфейс подсистемы

Мы можем настраивать видимость нужной нам подсистемы при помощи командного интерфейса. Есть два способа попасть в командный интерфейс подсистемы.

Используя кнопку «Командный интерфейс» в редакторе подсистемы.

Кнопка командный интерфейс

Используя команду «Открыть командный интерфейс» контекстного меню подсистемы.

Команда командный интерфейс контекстного меню

В командном интерфейсе подсистемы по умолчанию существует всего 6 групп: три группы команд навигации (панель навигации), и три группы команд действий (панель действий).

Группы командного интерфейса подсистемы

Вы можете перемещать команды навигации между группами команд навигации, и перемещать команды действий между группами команд действий. Но команду навигации нельзя переместить в группу команд действий. И наоборот, команду действия нельзя переместить в команду навигации.

Перемещать команду внутри группы можно при помощи кнопок контекстного меню (для этого нужно выделить нужную команду).

После перемещения команды, в названии группы команд появится словосочетание «Ручной порядок».

Ручной порядок у названии группы

Если вы хотите вернуть расположение команд, как было по умолчанию, то необходимо выделить нужную группу, вызвать контекстное меню и выполнить команду «Восстановить автоматический порядок».

Команда восстановить автоматический порядок

Если вы хотите, чтобы команда располагалась в другой группе, то можно мышкой «перетащить» эту команду в нужную группу.

Перемещение команды в другую группу


Или воспользоваться иконкой команды на верхней панели.

Переместить меню

Окно выбора групп

После тех или иных действий, команда переместится в нужную группу.

Команда в другой группе

В командном интерфейсе подсистемы имеются также колонка Видимость и колонки видимости по ролям.

Колонки видимости в командном интерфейсе подсистемы

Флажки в этих колонках отвечают за видимостью команд подсистемы.

Если флаг снят у соответствующей команды в колонке Видимость, то пользователь не увидит эту команду в интерфейсе подсистемы. У колонок ролей имеется возможность установить «серый» флаг. Это значит, что видимость этой команды для данной роли будет такая, какая установлена по умолчанию в колонке «Видимость».

Например, в этом случае, роль не будет видеть команду.

Серая колонка видимости роли

В случае остальных состояний флага, все точно также как и для колонки Видимость.

Стоит флаг – пользователь с этой ролью видит команду.

Флаг установлен у колонки видимости роли

Флаг снят – не видит.

Флаг снят у колонки видимости роли

Но в тоже время, если видимость на какую-либо команду снята в командном интерфейсе подсистемы в конфигураторе 1С, то её можно установить обратно в пользовательском режиме.

Для этого необходимо зайти либо в настройки навигации, либо в настройки действий подсистемы в пользовательском режиме, в зависимости от того видимость какой команды (навигации или действий) вы хотите установить.

Путь к настройкам подсистемы

Откроется окно настроек, где можно переместить выбранную команду или при помощи кнопки «Добавить», или мышкой.

Окно настроек навигации

После перемещения команды

Команду переместили в доступные

Она появится в командном интерфейсе подсистемы.

Командный интерфейс подсистемы

Команда «Все подсистемы»

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

Команда все подсистемы

После этого откроется окно «Все подсистемы», где вы можете работать со всеми подсистемами сразу.

Все подсистемы

Заметьте, если у подсистемы имеются подчиненные подсистемы, то в этом окне вы можете посмотреть, как всё выглядит в иерархии. На скрине выше это наглядно показано. Что нельзя сделать в командном интерфейсе отдельной подсистемы.

Подчиненные подсистемы

Также, в этом окне вы можете редактировать состав нужной вам подсистемы.

Редактирование состава подсистемы

В остальном настройки похожи: можно перемещать команды между группами внутри подсистемы, устанавливать видимость и т.д.

Другие статьи по вопросам конфигурирования

Подробно вопросы разработки подсистем рассмотрены в книге «Основы разработки в 1С: Такси. Разработка управляемого приложения за 12 шагов». Эта книга станет настоящим подспорьем для тех, кто только начал знакомиться с разработкой управляемого приложения.


  1. Без сложных технических терминов;
  2. Более 600 страниц практического материала;
  3. Каждый пример сопровождается рисунком (скриншот);
  4. Книга посылается на электронную почту в формате PDF. Можно открыть на любом устройстве!


Эти книги плюс книга по программированию оперативного учета имеются в едином комплекте: комплект книг по разработке в 1С.
Только для читателей моего блога,
промо-код на скидку в 300 рублей на весь комплект: blog


Если Вам понравился этот урок, был полезен или помог решить какую-нибудь проблему, то Вы можете поддержать мой проект, перечислив любую сумму:

можно оплатить вручную:

Добавлено 07.10.2018 Краткое содержание: описана альтернатива внешним обработкам заполнения объектов, в конфигурациях на основе БСП.

Почему не через подсистему "Дополнительные отчеты и обработки"? Мне показалось это более удобным способом именно при вызове клиентского метода, так как можно просто получить форму объекта и сам объект, удобнее отлаживать код. Плюс подключение команды имеет больше дополнительных настроек. В конечном итоге у разработчика есть выбор как решить задачу в том или ином случае.

Итак, что нужно для подключения команды заполнения объекта?

  1. Добавить новое расширение или использовать имеющееся.
  2. Добавить в расширение подсистему "ПодключаемыеОтчетыИОбработки"
  3. Добавить в расширение роль "БазовыеПрава"
  4. Добавить в расширение объект, который будем заполнять, в моем случае документ "ЗаказПокупателя"
  5. Создать в расширении обработку, в моем случае "ЗаполнениеЗаказПокупателя"
  6. В обработке "ЗаполнениеЗаказПокупателя" добавить основную форму

Это все объекты, которые понадобятся в расширении для включения через подсистему "Подключаемые команды" команды заполнения объекта.

Далее надо настроить объекты расширения и добавить программный код:

  1. В расширении в состав подсистемы"ПодключаемыеОтчетыИОбработки" включить обработку "ЗаполнениеЗаказПокупателя"
  2. В расширении для роли "БазовыеПрава" дать право "Использование" на обработку "ЗаполнениеЗаказПокупателя"
  3. В расширении в модуле менеджера документа "ЗаказПокупателя" надо добавить экспортную процедуру "ДобавитьКомандыЗаполнения". Процедуру надо добавить в том случае, если в основной конфигурации нет этой процедуры.
  4. В расширении в модуле менеджера обработки "ЗаполнениеЗаказПокупателя" надо добавить две экспортные процедуры "ПриОпределенииНастроек" и "ДобавитьКомандыЗаполнения". При добавлении команды указывается видимость команды в формах (можно указать видимость только в форме документа, как в примере), можно указать необходимость записывать ил проводить объект перед вызовом команды, определять условия видимости команды, указывать дополнительные параметры формы (более подробно в документации к БСП).
  5. В модуле основной формы обработки "ЗаполнениеЗаказПокупателя" добавить экспортную процедуру "Подключаемый_ЗаполнитьОбъект". Имя процедуры такое, как задано в параметре команды "Обработчик". В теле процедуры собственно код заполнения объекта. Получение формы объекта и самого объекта через параметр процедуры "ПараметрыВыполнения".

Собственно это весь необходимый минимум, согласно документации БСП. Если добавляемая команда одна, то она отображается в форме документа на командной панели формы в виде кнопки с представлением команды. Если команд несколько, то команды отображаются в подменю "Заполнить".

Одна команда

Подменю "Заполнение"

Для конфигурации "Управление нашей фирмой, ред 1.6.14" мне понадобилось дополнительно включить в расширение общий модуль "ЗаполнениеОбъектовПереопределяемый" и разрешить использование подключаемых команд для формы объекта "ЗаказПокупателя" добавив процедуру "ПередДобавлениемКомандЗаполнения" с аннотацией "&После".

В приложении к публикации расширение с описанным примером плюс дополнительно показано как получить объект формы на сервере и перенести изменения объекта, сделанные на сервере, в форму объекта на клиенте. Также в расширении показано как отобразить одну команду в подменю "Заполнить".

Читайте также: