Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

как изменить состав команд у программно создаваемого элемента?

как изменить состав команд у программно создаваемого элемента?
Я
   vde69
 
23.09.21 - 10:45
создаю на форме элемент (при создании на сервере)



        ЭлементТаб = Форма.Элементы.Добавить("ИспользуемыеФильтры", Тип("ТаблицаФормы"), ГруппаФильтров);
        ЭлементТаб.ПутьКДанным = "ИспользуемыеФильтры";
        ЭлементТаб.Высота = ТипыФильтров.Количество();
        ЭлементТаб.ИзменятьСоставСтрок = Ложь;
        ЭлементТаб.ИзменятьПорядокСтрок = Истина;
        ЭлементТаб.Шапка = Ложь;
        ЭлементТаб.УстановитьДействие("ПриИзменении", "Подключаемый_ЭлементНавигацииПриИзменении");        


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

Интерактивно это делается здесь https://infofront.su/wp-content/uploads/2020/08/1c-sostav-komandnoi-paneli-tablichnoy-chasti.png

а как это сделать программно?

ЭлементТаб.ПодчиненныеЭлементы - там команд нет
ЭлементТаб.КоманднаяПанель.ПодчиненныеЭлементы - то же пусто
Форма.Команды - там искал
   vde69
 
1 - 23.09.21 - 12:44
up
   серый КТУЛХУ
 
2 - 23.09.21 - 14:15
Для Каждого ЭлементКоманднойПанели Из Элементы.ЭлементТабКоманднаяПанель.ПодчиненныеЭлементы Цикл
    Если ЭлементКоманднойПанели.Имя <> "ТоШоНадо" Тогда
        ЭлементКоманднойПанели.Видимость = Ложь;
        ЭлементКоманднойПанели.Доступность = Ложь;
    КонецЕсли;
КонецЦикла;
   polosov
 
3 - 23.09.21 - 14:18
(2) Да нет там подчиненных.
   серый КТУЛХУ
 
4 - 23.09.21 - 14:44
(3): глаза разуй. там не ЭлементТаб.КоманднаяПанель.ПодчиненныеЭлементы.
ну и - сначала попробуй потом голоси.
   polosov
 
5 - 23.09.21 - 14:53
(4) Ты пробовали или просто так в лужу пукнул?
   vde69
 
6 - 23.09.21 - 14:54
(4) ЭлементТабКоманднаяПанель - не найден
   серый КТУЛХУ
 
7 - 23.09.21 - 14:56
(5): (6): извини. рам имя составняется из имени элемента (таблицы) и "КоманднаяПанель"
если у тебя мя элемента (таблицы формы) ИспользуемыеФильтры - то нужно не ЭлементТабКоманднаяПанель, а ИспользуемыеФильтрыКоманднаяПанель
   серый КТУЛХУ
 
8 - 23.09.21 - 14:57
(по shift-F9 бы в коллекцию Элементы слазил бы да проверил))
   vde69
 
9 - 23.09.21 - 14:58
короче я понял в чем проблема:

эти кнопки создаются позже... то есть в процедуре "ПриСозданииНаСервере" это сделать невозможно...

видимо надо делать отложеную перерисовку
   серый КТУЛХУ
 
10 - 23.09.21 - 14:59
(9): есс-но, я наклиенте все это проверяд.
в приоткрытии можно например
   polosov
 
11 - 23.09.21 - 15:02
(7) Да я то в курсе.
(10) Да, получается, что так
   серый КТУЛХУ
 
12 - 23.09.21 - 15:12
(11): нет, (2) с учетом (7) работает и в ПриСозданииНаСервере.
   серый КТУЛХУ
 
13 - 23.09.21 - 15:16
//(12)+ рабочий тестовый кусок кода (на форме есть таблицаформы с именем "ДдсДанныеДляИмпорта", на комндную панель была добавлена своя кнопка с именем "КнопкаДдсДанныеЗаполнить"):
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    Для Каждого ЭлементКоманднойПанели Из Элементы.ДдсДанныеДляИмпортаКоманднаяПанель.ПодчиненныеЭлементы Цикл
        Если ЭлементКоманднойПанели.Имя <> "КнопкаДдсДанныеЗаполнить" Тогда
            ЭлементКоманднойПанели.Видимость = Ложь;
            ЭлементКоманднойПанели.Доступность = Ложь;
        КонецЕсли;
    КонецЦикла;
КонецПроцедуры//ПриСозданииНаСервере

// результат - в командной панели осталась только кнопка с именем "КнопкаДдсДанныеЗаполнить"
   vde69
 
14 - 23.09.21 - 15:25
(13) у тебя элемент статический, то есть НЕ программный
   vde69
 
15 - 23.09.21 - 15:28
кроме того решение (13) закрывает не команды а кнопки, еще остается контекстное меню и горячие клавиши.
   серый КТУЛХУ
 
16 - 23.09.21 - 15:30
(15): нет, НЕ "остается". ибо доступность = ложь
   серый КТУЛХУ
 
17 - 23.09.21 - 15:32
ЗЫ: вообще - нормальный такой диалог получается. разжевали, в рот положили... а теперь не "спасибо" - теперь еще сцуки еще уговорите меня...
)))
   polosov
 
18 - 23.09.21 - 15:52
(17) Да ты вообще не то писал.
   vde69
 
19 - 23.09.21 - 16:05
(17) да ничего ты не разжевал, банально ЭлементТаб.КоманднаяПанель.ПодчиненныеЭлементы так-же работает как и поиск по длинному наименованию.

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

Подключение данного кода в "при открытии" не совсем верно так как возможно повторное открытие уже открытого окна.

Короче сабж в правильном ключе пока выглядит не решаемым...
   pechkin
 
20 - 23.09.21 - 16:21
если у тебя ЭлементТаб.ИзменятьСоставСтрок = Ложь;
то удалить и так команды не будет
   серый КТУЛХУ
 
21 - 23.09.21 - 16:43
(19): "проблема была именно в программном создании и установки видимости при создании формы, что сделать не возможно..." - враньё. установка видимости и доступности - возможна (с оговоркой: свойства элемента должны это позволять, как, например, в (20), или смещение строк и сортировка - при установленном свойстве "изменение порядка строк")


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.