Имя: Пароль:
1C
1С v8
Настроить интерфейс пользователя (нет возможности)
,
0 Sevish
 
12.02.22
08:01
Добрый день!
Конечная цель: пользователь заходит в программу, у него открывается обработка на начальной странице и всё, больше ничего нет и не надо.
Комплексная автоматизация 2.5.
Создал профиль, который дает вход в программу.
Создал обработку, дал права.
Зашел под пользователем, хочу убрать все панели и на начальную страницу добавить обработку - никак. В меню "Настройка" просто нет этих пунктов!
Какие роли надо добавить, чтобы появилось?

Благодарю за помощь.
1 Мимохожий Однако
 
12.02.22
08:03
Добавь роль Администратор. Зайди под пользователем. Убери панели. Выйди. Убери роль Администратор.
Возможно, есть варианты программного решения. Но если на коленках, то есть вероятность успеха.
2 Гений 1С
 
гуру
12.02.22
08:34
(0) можно программно расширением указать начальную страницу.
3 Мимохожий Однако
 
12.02.22
08:49
(2) ТС хочет убрать ПАНЕЛИ.
4 acht
 
12.02.22
08:58
(0) РежимОсновногоОкнаКлиентскогоПриложения посмотри
5 dmt
 
12.02.22
09:07
Программно убрать панели:

    НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
    
    НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
    
    НастройкиСостава.Лево.Очистить();
    НастройкиСостава.Верх.Очистить();
    НастройкиСостава.Низ.Очистить();
    НастройкиСостава.Право.Очистить();
    
    НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
    ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);
    
Потом перезапуск 1с
6 acht
 
12.02.22
09:09
(5) Если это вставить в обработку начала сеанса, то перезапуск не нужен.
7 dmt
 
12.02.22
09:23
(6) гуд!
8 Гений 1С
 
гуру
12.02.22
09:23
тут такая засада, что все что доступно пользователю, он может открыть по перейти по ссылке. И это отключить нельзя, спасибо Управляемым Формам за это. ;-)
9 acht
 
12.02.22
09:27
(8) Гыгыгеня, иди перди в лужу в другой теме.
Речь идет не об ограничении пользователя, а по организации внещнего вида рабочего места.
10 Фрэнки
 
12.02.22
09:34
Ну хорошо, как убрать лишние панели - ответили.
Можно и вручную убрать из какого-то пользователя все это и затем ее же подгрузить.
Просто подозреваю, что код из 5 без обвязки у любого сеанса снесет всё, что там есть, а это вроде не просили делать.

А вот как затолкать свою произвольную обработку в вызов на начальной странице есть где-то описание, не попадалось?
11 pechkin
 
12.02.22
09:37
если нужна 1 форма, то можно режим киоска или рабочего стола
12 Фрэнки
 
12.02.22
09:53
(11) в смысле, достаточно это в обработке указать и она зацепится?
надо будет попробовать
13 Sevish
 
12.02.22
10:13
(5) Благодарю! Как раз попробую вставить это в "&После" при запуске клиента и повесить на роль.
Осталось решить вторую задачу - на начальной панели открыть только мою обработку.
14 acht
 
12.02.22
10:35
(13) > только мою обработку
Это не через "начальную панель", это через РежимОсновногоОкнаКлиентскогоПриложения
15 Sevish
 
12.02.22
12:26
И так,

&После("УстановкаПараметровСеанса")
Процедура расш_УстановкаПараметровСеанса(ИменаПараметровСеанса)
    Если (РольДоступна("ТолькоНачальнаяПанель")) Тогда
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
        НастройкиСостава.Лево.Очистить();
        НастройкиСостава.Верх.Очистить();
        НастройкиСостава.Низ.Очистить();
        НастройкиСостава.Право.Очистить();
        НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
        ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);        
    КонецЕсли;
КонецПроцедуры

Удалило все панели, отлично!!! Ещё раз спасибо!
16 pechkin
 
12.02.22
12:31
(15) но почему установка параметров сеанса? Этож для каждого параметра будет срабатывать.
Хотя бы проверяй тогда что имя параметра на задано
17 Фрэнки
 
12.02.22
12:35
(16) меня больше корежит, когда ради такой фигни "ломают" замок на конфигурации, при том, что это КА 2.5

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

Костыльный способ программирования.
18 acht
 
12.02.22
12:38
(16) > установка параметров сеанса
Потому что оно гарантировано срабатывает перед началом работы приложения, до того как эти настройки прочитаются и будут использованы. Это позволяет сбросить настройки, накликанные хитрым пользователем, в исходное сотостояние без дополнительного рестарта клиента 1С.
19 acht
 
12.02.22
12:38
Про проверку на пустоту имен согласен, надо проверить.
20 Sevish
 
12.02.22
12:39
Я не ломал, видно же, что через расширение :)
21 Фрэнки
 
12.02.22
12:42
(20) но я не имеел ввиду конкретно тебя... так просто под настроение попалось видимо.

А подумал про  сломанную конфу из-за вот этой строчки

РольДоступна("ТолькоНачальнаяПанель")

В ней не видно, что это добавлено в расширении.
22 Sevish
 
12.02.22
12:43
Понял :) Нет, это то же в расширении, просто для красоты не стал там писать "расш_" :)
23 Фрэнки
 
12.02.22
12:46
Чтоб не просто критиковать, но предлагать

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

И даже сам термин, который исторически на эту функционалность прилип - ну вот исторически так сложилось, да.
И замену этому термину не подберешь просто так.

Но группа доступа как-то выше и ближе к пользователю, чем запрятанные где-то внутри профилей роли. Ради одной единственной проверки - Роль, затем Профиль, а затем еще и группу доступа...
Так зачем делать отдельные Роли и отдельные Профили, когда можно просто склонировать подходящую Группу доступа, но переименовать ее.
24 Sevish
 
12.02.22
12:49
В итоге для решения задачи в расширении создал роль и обработку.

Добавил в расширение процедуру модуля приложения:

&Перед("ПередНачаломРаботыСистемы")
Процедура ФиП_И_ПередНачаломРаботыСистемы()
    КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.ПолноэкранноеРабочееМесто);
КонецПроцедуры

Добавил в расширение процедуру модуля сеанса

&После("УстановкаПараметровСеанса")
Процедура ФиП_И_УстановкаПараметровСеанса(ИменаПараметровСеанса)
    Если (РольДоступна("ТолькоНачальнаяПанель")) Тогда
        //Убираем все панели
        НастройкиИнтерфейса = ХранилищеСистемныхНастроек.Загрузить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения");
        НастройкиСостава = НастройкиИнтерфейса.ПолучитьСостав();
        НастройкиСостава.Лево.Очистить();
        НастройкиСостава.Верх.Очистить();
        НастройкиСостава.Низ.Очистить();
        НастройкиСостава.Право.Очистить();
        НастройкиИнтерфейса.УстановитьСостав(НастройкиСостава);
        ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиИнтерфейсаКлиентскогоПриложения", , НастройкиИнтерфейса);        
        
        //Размещаем единственную обработку на начальной странице
        НастройкиНачальнойСтраницы = Новый НастройкиНачальнойСтраницы;
        СоставФорм = Новый СоставФормНачальнойСтраницы;
        СоставФорм.ЛеваяКолонка.Добавить("Обарботка.РабочийСтол.Форма.Форма");
        НастройкиНачальнойСтраницы.УстановитьСоставФорм(СоставФорм);
        ХранилищеСистемныхНастроек.Сохранить("Общее/НастройкиНачальнойСтраницы", , НастройкиНачальнойСтраницы);        
    КонецЕсли;
КонецПроцедуры

Результат просто отличный, всех благодарю!

PS: у пользователя будет в обработке 2-3 закладки для работы с разными задачами, с большими полями и кнопками под сенсорный экран, ну а создание необходимых документов программное, есть отдельный пользователь, который потом уже в нормальном интерфейсе проверяет прошедший день по отчетам.
25 Sevish
 
12.02.22
16:44
немного лоханулся, поэтому поправочка:

&Перед("ПередНачаломРаботыСистемы")
Процедура ФиП_И_ПередНачаломРаботыСистемы()
    Если (ФункцииОбщиеСервер.ЭтаРольДоступна("ТолькоНачальнаяПанель")) Тогда
        КлиентскоеПриложение.УстановитьРежимОсновногоОкна(РежимОсновногоОкнаКлиентскогоПриложения.ПолноэкранноеРабочееМесто);
    КонецЕсли;
КонецПроцедуры

Общий модуль в расширении (сервер, вызов сервера).
26 pechkin
 
12.02.22
21:32
(18) есть же событие перед началом
27 acht
 
12.02.22
21:52
(26) Это поздно. В этот момент клиенсткая часть уже прочитала и применила настройки.
28 Гений 1С
 
гуру
12.02.22
22:11
(15) тока пользователь может их руками себе заново настроить, приколись.
29 acht
 
12.02.22
22:12
(28) Гыгыгеня, иди перди в лужу в другой теме.
Речь идет не об ограничении пользователя, а по организации внещнего вида рабочего места.
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс