Имя: Пароль:
1C
1С v8
как изменить состав команд у программно создаваемого элемента?
0 vde69
 
23.09.21
10:45
создаю на форме элемент (при создании на сервере)



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


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

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

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

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

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

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

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

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

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