Версия для печати темы (https://pro1c.org.ua/index.php?s=3ce1614284c0e7782e671c0b66a28c8b&showtopic=47851)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Программно открыть или скрыть подсистему

Автор: Gigi 17.09.18, 11:59

Всем привет!
Никто не подскажет возможно ли это и как это сделать?
Буду признателен!

Gigi @ Сегодня, 12:44 * ,
Вот код из модуля управляемого приложения:

Перем АктивнаяПодсистема;
Процедура ПриНачалеРаботыСистемы()
АктивнаяПодсистема="desktop";
//АктивнаяПодсистема="СТАТИСТИКА";
ПодключитьОбработчикОжидания("СканТекущейПодсистемы",0.1,Истина);
КонецПроцедуры

Процедура СканТекущейПодсистемы() Экспорт
ТекНавигСсылка=АктивноеОкно().ПолучитьНавигационнуюСсылку();
//-------------------------
Сообщить("Навигационная ссылка: «" + ТекНавигСсылка+"»");
Подсистема=СтрЗаменить(ТекНавигСсылка,"e1cib/navigationpoint/","");
Знак=Найти(Подсистема,"/");
Если Знак>0 Тогда
    Подсистема=Лев(Подсистема,Знак-1);
КонецЕсли;
//-------------------------
Если АктивнаяПодсистема<>Подсистема Тогда
Сообщение=Новый СообщениеПользователю;
Сообщение.Текст="Вы в подсистеме: «" + Подсистема+"»";
Сообщение.Сообщить();
АктивнаяПодсистема=Подсистема
КонецЕсли;
//ПодключитьОбработчикОжидания("СканТекущейПодсистемы",0.1,Истина);
КонецПроцедуры

Дело в том, что все это просто сообщает текущую подсистему.
А нужно программно открыть или скрыть любую указанную подсистему.
Как это сделать?
Буду весьма признателен!

Автор: ed.kharkov 17.09.18, 12:23

Gigi @ Сегодня, 12:59 * ,
Добрый день.

ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/ИмяТвоейПодсистемы")

Автор: Gigi 17.09.18, 12:46

ed.kharkov @ Сегодня, 13:23 * ,
Всего лишь ... очень хорошо что всего лишь одной командой... да именно ... вспомнил что такая команда есть.
Только вот еще два вопроса к тому...
1) А можно не только подсистему но перейти в указанный список в ней. На пример так

ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/СТАТИСТИКА/КомерческийУчет");

Выдает ошибку
2) Ладно! Как перейти на подсистему понятно. А как скрыть ее от пользователя?
Вот это было бы не плохо.

Gigi @ Сегодня, 13:33 * ,
Просто по поводу второго вопроса, дело в том, что мне для каких то пользователей нужно вообще убрать подсистему рабочий стол. И вместо него вывести одну или две подсистемы и все. А рабочий стол в любом случае фигурирует. Даже если убрать права на все подсистемы.

Автор: ed.kharkov 17.09.18, 12:54

Gigi @ Сегодня, 13:33 * ,
1. КомерческийУчет - это что? Список документов?

2. Что подразумевается под "скрыть"? Убрать видимость или сделать активной другую подсистему?

Gigi @ Сегодня, 13:46 * ,

ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/ИмяПодсистемы/Справочник.ИмяСправочника.Команда.ОткрытьСписок")


ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/ИмяПодсистемы.РазделПодсистемы/Документ.ИмяДокумента.Команда.ОткрытьСписок")

Автор: Gigi 17.09.18, 13:19

ed.kharkov @ Сегодня, 13:54 * ,

Цитата(ed.kharkov @ 17.09.18, 13:54) *
1. КомерческийУчет - это что? Список документов?

Это наименование одной из общих форм.... поэтому по первому вопросу со списком сработало. Но как вывести форму.... ту форму которая запускается из панели навигации подсистемы, через общие команды. Той команды которая запускает форму из общих форм.
Короче не знаю как правильнее. Так пробовал .... ругается.
//ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/СТАТИСТИКА/ОбщаяФорма.Отчеты_ЮлЛица.ОткрытьФорму");
А по поводу:
Цитата(ed.kharkov @ 17.09.18, 13:54) *
2. Что подразумевается под "скрыть"? Убрать видимость или сделать активной другую подсистему?

Нужно просто убрать из виду на пример несколько указанных подсистем или все кроме указанных. Все в том числе и саму подсистему "рабочий стол". А потом сделать активной одну из отображаемых.
Вот собственно что нужно!

Автор: cos12 17.09.18, 13:22

Цитата(Gigi @ 17.09.18, 14:19) *
Нужно просто убрать из виду на пример несколько указанных подсистем или все кроме указанных. Все в том числе и саму подсистему "рабочий стол". А потом сделать активной одну из отображаемых.
Вот собственно что нужно!

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

Автор: ed.kharkov 17.09.18, 13:26

Gigi @ Сегодня, 14:19 * ,
Для общей команды

ПерейтиПоНавигационнойСсылке("e1cib/navigationpoint/ИмяПодсистемы/ОбщаяКоманда.ИмяКоманды")

Автор: Gigi 17.09.18, 13:34

cos12 @ Сегодня, 14:22 * ,

Цитата(cos12 @ 17.09.18, 14:22) *
Если я правильно Вас понял, то Вам нужно просто сделать настройки интерфейса, подвязаться к правам и в зависимости от прав выводит те или иные подсистемы.

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

Автор: ed.kharkov 17.09.18, 13:35

Цитата(Gigi @ 17.09.18, 14:19) *
Нужно просто убрать из виду на пример несколько указанных подсистем или все кроме указанных. Все в том числе и саму подсистему "рабочий стол". А потом сделать активной одну из отображаемых.
Вот собственно что нужно!

Можно воспользоваться функциональными опциями

Автор: Gigi 17.09.18, 13:42

Цитата(ed.kharkov @ 17.09.18, 14:35) *
Можно воспользоваться функциональными опциями

А где эти опции. В ролях их че то нет. Даже если для указанного пользователя убрать любую форму в рабочей области начальной страницы, сама подсистема: "Рабочий стол" , хотя и пуста, но все равно видна.

Автор: ed.kharkov 17.09.18, 13:52

Gigi @ Сегодня, 14:42 * ,
Функциональные опции подойдут для других подсистем.
Рабочий стол - это обязательный элемент интерфейса.

Автор: Gigi 17.09.18, 14:17

ed.kharkov @ Сегодня, 14:52 * ,
Ладно! понятно. Просто у меня уже готова одна подсистема где отсутствуют списки а имеются только формы отчетов и обработок. Это для пользователей которые должны только смотреть отчеты и не более.
Все это я вывел в одну подсистему. Просто не охота делать двойную работу создавать общую форму с теми же отчетами и выводить ее в рабочий стол. Тогда как все это уже сделано в подсистеме: "СТАТИСТИКА".
Но к сожалению в 1С нельзя вывести указанную подсистему без рабочего стола. К СОЖАЛЕНИЮ!
Ладно! Спасибо!
Пока!

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua