Кнопка ~ Программное добавление кнопок на командную панель формы Код 1C v 8.х
для каждого метпер из Метаданные. Перечисления. СостоянияРаботникаОрганизации. ЗначенияПеречисления Цикл
МенюКнопки = ЭлементыФормы. ОсновныеДействияФормы. Кнопки. ПодменюНеявки. Кнопки;
НоваяКнопка = МенюКнопки. Вставить( инд, метпер. Имя, ТипКнопкиКоманднойПанели. Действие, метпер, Новый Действие( "Пометка" ) ) ;
Если НЕ ( метпер. Имя= "Работает" или метпер. Имя= "Командировка" ) тогда
НоваяКнопка. Пометка = Истина ;
КонецЕсли ;
инд= инд+ 1 ;
КонецЦикла ;
Процедура Пометка(Кнопка)
Кнопка. Пометка= ? ( Кнопка. Пометка, Ложь , Истина ) ;
КонецПроцедуры
Следующий пример показывает как выгрузить из табличной части Подразделения, удалить повторяющиеся и в "КоманднаяПанельЗарплата" - меню "ФормированиеВедомостей" - подменю "СформироватьПоПодразделению" добавить для каждого подразделения кнопку формирования ведомости
Код 1C v 8.х // заполним меню подразделений для ведомостей
ТзПодразделений=Зарплата.ВыгрузитьКолонку("ПодразделениеРаботника");
//Удалим в массиве задвоения
ТекущийИндекс = 0;
ВсегоЭлементов = ТзПодразделений.Количество();
Пока ТекущийИндекс < ВсегоЭлементов Цикл
Индекс2 = ТекущийИндекс + 1;
Пока Индекс2 < ВсегоЭлементов Цикл
Если ТзПодразделений[Индекс2] = ТзПодразделений[ТекущийИндекс] Тогда
ТзПодразделений.Удалить(Индекс2);
ВсегоЭлементов = ВсегоЭлементов - 1;
Иначе
Индекс2 = Индекс2 + 1;
КонецЕсли;
КонецЦикла;
ТекущийИндекс = ТекущийИндекс + 1;
КонецЦикла;
инд=0;
для каждого ТекПодразд из ТзПодразделений Цикл
МенюКнопки = ЭлементыФормы.КоманднаяПанельЗарплата.Кнопки.ФормированиеВедомостей.Кнопки.СформироватьПоПодразделению.Кнопки;
НоваяКнопка = МенюКнопки.Вставить(инд, ТекПодразд, ТипКнопкиКоманднойПанели.Действие, ТекПодразд, Новый Действие("СформироватьВедомостиПоПодразделению"));
инд=инд+1;
КонецЦикла;
Категория:
Работа с Формой (Диалог) и её элементами