Имя: Пароль:
1C
 
программно скрыть кнопку "Изменить форму"
,
0 Prog_man
 
гуру
25.10.24
10:22
Добрый день,
Бухгалтерия 3.0

подскажите как можно программно скрыть кнопку "Изменить форму" в списке документов?
1 Волшебник
 
25.10.24
10:27
Грохаешь типовую командную панель формы и делаешь ее замену без страшной команды.

Или делаешь расширение, в котором перекрываешь процедуру МодификацияКонфигурацииПереопределяемый.ПриСозданииНаСервере, где проверяешь, что у формы есть этот пункт командной панели и делаешь его недоступным.
2 Prog_man
 
гуру
25.10.24
10:32
(1) второй способ не совсем понял. МодификацияКонфигурацииПереопределяемый - это общий модуль?
у меня такого нету
3 Волшебник
 
25.10.24
10:35
(2) Я сам не понял. Это ж не я придумывал
Закрыть пункт "Изменить форму" в УФ#2
5 osa1C
 
25.10.24
10:38
6 Prog_man
 
гуру
25.10.24
13:12
(1) -> Грохаешь типовую командную панель формы и делаешь ее замену без страшной команды.
этот способ не подходит, нужно скрыть кнопку для отдельных пользователей.
(5) попробовал, не работает.
7 Прохожий
 
25.10.24
11:13
(6) Уволиться не предлагать?
8 Prog_man
 
гуру
25.10.24
11:21
(7) по теме есть что сказать?
9 butterbean
 
25.10.24
11:21
(6) добавляй две панели - одну с кнопкой, вторую без. И переключай их видимость программно
10 ass1c
 
25.10.24
11:24
Не по теме, так как нужно "программно", но все же. Вроде как стандартная роль "СохранениеДанныхПользователя" влияет на видимость кнопки "Изменить форму".
" Рекомендуется предоставлять эту роль всем категориям пользователей, за редким исключением, когда требуется явно запретить настройку пользовательского интерфейса и любые другие персональные настройки таким образом, чтобы работа пользователя не оставляла никаких «следов» в информационной базе."
11 Prog_man
 
гуру
25.10.24
13:58
(9) интересный вариант, благодарю
12 Prog_man
 
гуру
25.10.24
11:30
(10) в таком случае видимо и другие настройки не будут сохраняться, такой вариант к этой задаче не подходит. благодарю, может в будущем пригодится.
13 Dotoshin
 
25.10.24
12:13
(0) Откройте секрет, для чего нужно именно программно скрывать? Видимость по ролям не подходит?
14 Prog_man
 
гуру
25.10.24
13:09
(13) В некоторых документах нужно, чтобы пользователь не видел суммы в списке документов, через УО я настроил, но есть лазейка, по кнопке ЕЩЕ — изменить форму, пользователь по ссылке может добавить еще одно поле суммы и увидеть сумму документа. Задача не критическая, зачастую пользователи и не знают эту опцию. Но хотелось бы закрыть доступ к изменению формы.
15 Zapal
 
25.10.24
12:23
(14) а почему бы тупо колонку с суммой не сделать невидимой?
16 Prog_man
 
гуру
25.10.24
12:27
(15) потому что, пользователь должен видеть суммы по другим документам
17 Zapal
 
25.10.24
13:08
(16) делаешь список документов на произвольном запросе, там скрываешь всё что надо
18 Prog_man
 
гуру
25.10.24
13:15
(17) хотел сделать расширением, но если программного способа нет, как скрыть команду, то тему можно закрывать.
19 Dotoshin
 
25.10.24
13:25
(18) А чем не подходит пользовательская видимость? Для разных ролей настраиваешь разную видимость и раздаешь эти роли пользователям. Один видит колонку, другой не видит. Или я что-то не понимаю?
20 Prog_man
 
гуру
25.10.24
13:58
(19) слишком много ролей, хотелось бы попроще, типа

Если НЕ РольДоступна("АдминистраторСистемы") Тогда
   Элементы.ИзменитьФорму.Доступность =Ложь;	
   Элементы.ИзменитьФорму.Видимость =Ложь;	
КонецЕсли;
21 AlvlSpb
 
25.10.24
13:46
(18) А просто скрывать элемент по условию?
Например (из ПТУ УТ 11.4) Элементы.ФормаИзменитьФорму.Видимость = Ложь;
22 Zapal
 
25.10.24
13:47
(18) в расширении тоже можно поставить запрос списку. Кодом, не трогая форму
23 Prog_man
 
гуру
25.10.24
14:00
(21) Благодарю, то, что нужно!!!
24 osa1C
 
25.10.24
14:05
(6) Я не проверял, но по идее в этой коллекции
ЭтотОбъект.КоманднаяПанель.ПодчиненныеЭлементы
должен лежать массив всех кнопок командной панели. Осталось поставить точку останова, посмотреть какой индекс имеет кнопка "Ещё" и ввести команду вида:
ЭтотОбъект.КоманднаяПанель.ПодчиненныеЭлементы[7].Видимость = Ложь;
Хотя может быть индексы имеют сами команды в меню "Ещё", тогда аналогичным образом скрыть их все и меню пропадет
25 Prog_man
 
гуру
25.10.24
14:09
Решение

&НаСервере
Процедура Расш1_ПриСозданииНаСервереПосле(Отказ, СтандартнаяОбработка)
	Если НЕ РольДоступна("АдминистраторСистемы") Тогда
		Элементы.ФормаИзменитьФорму.Доступность =Ложь;	
		Элементы.ФормаИзменитьФорму.Видимость =Ложь;	
	КонецЕсли;
КонецПроцедуры
26 mikecool
 
25.10.24
17:14
(23) эк, а сам не догадался по элементам формы посмотреть - что там есть? )
27 vis
 
25.10.24
23:48
(25) Проверку на наличие этих элементов не делали?
28 craxx
 
27.10.24
23:00
(25) Там надо искать по имени общей команды, а не имени элемента, имя элемента можно задать любое другое