1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 |
//Переберая перечисления, добавим кнопки с именем значение перечисления, и возможностью установки пометки для каждого метпер из Метаданные.Перечисления.СостоянияРаботникаОрганизации.ЗначенияПеречисления Цикл МенюКнопки = ЭлементыФормы.ОсновныеДействияФормы.Кнопки.ПодменюНеявки.Кнопки; НоваяКнопка = МенюКнопки.Вставить(инд, метпер.Имя, ТипКнопкиКоманднойПанели.Действие, метпер, Новый Действие("Пометка")); //Работает и Командировка - считается рабочими видами Если НЕ (метпер.Имя="Работает" или метпер.Имя="Командировка") тогда НоваяКнопка.Пометка = Истина; //поставим помету КонецЕсли; инд=инд+1; КонецЦикла; // а Действие("Пометка") это: Процедура Пометка(Кнопка) Кнопка.Пометка=?(Кнопка.Пометка, Ложь, Истина); // Можно и так: // Кнопка.Пометка = Не Кнопка.Пометка; КонецПроцедуры |
Следующий пример показывает как выгрузить из табличной части Подразделения, удалить повторяющиеся и в "КоманднаяПанельЗарплата" — меню "ФормированиеВедомостей" — подменю "СформироватьПоПодразделению" добавить для каждого подразделения кнопку формирования ведомости
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 |
// заполним меню подразделений для ведомостей ТзПодразделений=Зарплата.ВыгрузитьКолонку("ПодразделениеРаботника"); //Удалим в массиве задвоения ТекущийИндекс = 0; ВсегоЭлементов = ТзПодразделений.Количество(); Пока ТекущийИндекс < ВсегоЭлементов Цикл Индекс2 = ТекущийИндекс + 1; Пока Индекс2 < ВсегоЭлементов Цикл Если ТзПодразделений[Индекс2] = ТзПодразделений[ТекущийИндекс] Тогда ТзПодразделений.Удалить(Индекс2); ВсегоЭлементов = ВсегоЭлементов - 1; Иначе Индекс2 = Индекс2 + 1; КонецЕсли; КонецЦикла; ТекущийИндекс = ТекущийИндекс + 1; КонецЦикла; инд=0; для каждого ТекПодразд из ТзПодразделений Цикл МенюКнопки = ЭлементыФормы.КоманднаяПанельЗарплата.Кнопки.ФормированиеВедомостей.Кнопки.СформироватьПоПодразделению.Кнопки; НоваяКнопка = МенюКнопки.Вставить(инд, ТекПодразд, ТипКнопкиКоманднойПанели.Действие, ТекПодразд, Новый Действие("СформироватьВедомостиПоПодразделению")); инд=инд+1; КонецЦикла; |