1с как программно скрыть раздел

Обновлено: 08.07.2024

Есть необходимость в зависимости от пользователя скрыть некоторые команды в командном интерфейсе рабочего стола.

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

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

Самописная конфигурация. Какая версия Розницы? В инете будет? Если не сложно, кинь ссылку или саму конфу на ящик.

Если у тебя самописка

1.Введи пользователей базы елси нет.

2.Введи функциональные опции в спр. пользователи

3. У ОодулеСеанса распиши все что тебе надо по скрытию

В базе порядка 50 учетных записей пользователей. Функционал между ними определяется шестью ролями.

Для пользователей одной из ролей (МАСТЕР) хотелось бы ввести ограничения по видимости команд на рабочем столе по дополнительным

признакам. Признаки эти формируются особым пользователем через справочник и наделяются пользователям с ролью МАСТЕР. У одного пользователя этик признаков может быть несколько. Исходя из этих наборов и хотелось бы гасить команды рабочего стола. Т.е. по сути добавление дополнительных

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

Что бы выйти на роль НУЖЕН Пользователь(что она у него есть) который зашел в базу от этого и плясасть. Если нет пользователя как ты к нему привяжушь роль. Изменять придется .

Все разнообразие ножно сделать путем рзабирия ролей на более мелкие

Разбитие ролей на более мелкие приведет к постоянному изменению конфигурации, что не возможно. Пользовательская видимость завязана на роли, которая одна (МАСТЕР) и вопрос не решает. Пользователя и его роль я определяю. Вопрос в том, как гасить программно команды рабочего стола исходя из пользователя с его набором дополнительных характеристик (количество которых изначально не определено) Грубо говоря хочу с имитировать распределение мастеров по ролям, но на программном уровне а не на уровне конфигурации. Я понимаю, что роль в конфигурации это одно, а гасить кнопки это другое, но смысл похож. Как добраться до команд программно, типа: Метаданные.ЭлементыРабочегоCтола и т.д.

Роли когда ты их разобъешь слажаваются между собой и никагого измения конфигурации НЕ ТРЕБУЮТ.В итоге ты получишь свою роль МАСТЕР.

Что такое ДОПОЛНИТЕЛЬНЫЕ ХАРАКТЕРИСТИКИ.? Что бы добраться до команд надо ОПРЕДЕЛИТЬ РОЛИ (С РАЗБИТИЕМ по кажому документу ).ДОКУМЕНТ это и есть твой команда. Гасить документы (надо определить эти докменты) , а это роли.

Anderson --> Anderson



Просмотр профиля Vofka --> Vofka



Просмотр профиля Anderson --> Anderson



Просмотр профиля logist --> logist



Просмотр профиля Чтобы скрыть панель разделов надо убрать права у соответствующих подсистем, пункты меню убираются в настройке интерфейса подсистемы (раздела). Если надо свернуть/развернуть, по идее можно програмно управляя правами (включать/выключать) и ОбновитьИнтерфейс
Панель открытых вряд ли можно скрыть. Anderson --> Anderson



Просмотр профиля logist @ 20.05.21, 12:49 ,
Скрыть то можно эмулируя сочетания клавиш, вот только как я писал СОМ на вебклиенте не работает. Может кто-то знает способ эмуляции без СОМ? logist --> logist



Просмотр профиля вот только как я писал СОМ на вебклиенте не работает.
Какой конкретно СОМ? Попробуйте обновить платформу до более актуальной, на 8,3,8 ActiveX работает вроде только в IE с включением соответствующей опции в настройках безопасности, нормальная поддержка этого функционала сделана кажись в 8,3,14
Либо попробуйте использовать JS в ПолеHTMLДокумента которое будет отображаться на начальной странице sava1 --> sava1



Просмотр профиля

А стандартное изменение не проходит? типо

Batchir --> Batchir



Просмотр профиля Стояла задача для мобильного клиента урезать функционал, т.к. на нем не нужны были все эти подсистемы
т.е. В толстом/тонком/веб клиенте должен быть интерфейс тот который настроен ролями, в мобильном клиенте - только определенный состав.
Написал обработку с пользовательским интерфейсом (с доступными командами). При старте мобильного клиента открывал её в режиме блокировки всего интерфейса.
При закрытии обработки вызывал команду завершения работы.
Тем самым убрал возможность лазить где-попало.
Из самой обработки люди уже переходили по нужному функционалу.
Мне кажется это самый простой способ который доступен (в моем случае ещё нужен был кликабельный интерфейс) logist --> logist



Просмотр профиля
Если обработка выдаст какую-то ошибку и даст себя закрыть - можно будет лазить где угодно, поэтому если задача чтобы не лазили - всё же лучше регулировать правами, благо управляемые формы это позволяют делать достаточно гибко. Batchir --> Batchir



Просмотр профиля

Так тут же и проблема, что права у пользователя одни и те же.
Используемые клиенты разные

Мне кажется что у ТС стоит задача что-то типа запустить веб клиенты на планшетах, где нужно максимально экономить место на экране - убрать все панели и оставить только рабочую область.

Anderson --> Anderson



Просмотр профиля


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

Вариантов много, но, в рамках задачи, всё укладывалось в расширение в режиме совместимости 8.3.10 (действующей на сегодня). Конфигурацию остаётся на поддержке, а с разделами поступим, как водится , с использованием ролей…

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

В общем, по итогам вышло так:

1. Создаём дополнительное сведение для справочника «Пользователи», например «Доступный раздел», с типом значения «Дополнительное значение». Значениями которого сделаем «Вот такой раздел» и «Совсем другой раздел».

Как сделать? Администрирование – Общие настройки – «Дополнительные реквизиты и сведения» устанавливаем одноимённый флаг, затем гиперссылка «Дополнительные сведения». Ищем справочник «Пользователи», жмём «Создать», в поле наименование пишем «Доступный раздел», жмём «Записать», потом на закладке «Значения» создаём две, поименованные выше, строки.


2. Создаем расширение «СкрытьПоказатьРазделыПользователям»


Галки делаем как на картинке.

3. В модуле управляемого приложения расширения создаём процедуру:

Как сделать? ПКМ на первой строке расширения «Открыть модуль управляемого приложения». Туда копируем приведённый выше текст.

4. Добавляем в расширение все измерения и ресурс регистра сведений «ДополнительныеСведения»

Как сделать? В дереве конфигурации ветка «Регистры сведений» находим «ДополнительныеСведения», открываем вету «Измерения», и на каждом измерении» ПКМ выбираем «Добавить в расширение», затем это же делаем с ресурсом, получим:


5. Добавляем в расширение два справочника, например «Контрагенты» и «Номенклатура». Добавление аналогично п.4, только никаких реквизитов не добавляем, для примера нам достаточно только справочников.

6. Создаем две подсистемы в расширении «еаю_ВотТакаяПодсистема» и «еаю_СовсемДругаяПодсистема». В состав первой добавляем справочник «Контрагенты», с состав второй «Номенклатура». В обеих подсистемах устанавливаем флаг «Включать в командный интерфейс».

7. Добавляем две роли в расширение «еаю_ВТР» и «еаю_СДР», в ревой делаем доступной подсистему «еаю_ВотТакаяПодсистема», во второй «еаю_СовсемДругаяПодсистема»

Как сделать? В конфигураторе в ветке «Роли» открываем нужную роль, и с дереве прав в ветке подсистемы устанавливаем флаг «Просмотр» для соответствующей подсистемы:


8. Создаем два общих модуля еаю_ОбработчикиКлиент (галка «Клиент (Управляемое приложение)») и еаю_ОбработчикиСервер (галки «Сервер» и «Вызов сервера»)

Затем нужным пользователем выбираем в дополнительных сведениях нужный ему раздел, и после перезапуска наслаждаемся его наличием в панели разделов))))


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

Статья входит в цикл «Первые шаги в разработке на 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-формате

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