helpf.pro
Регистрация
 0 
Распечатать

Кнопка ~ Программное добавление кнопок на командную панель формы

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

// а Действие("Пометка") это:
Процедура Пометка(Кнопка)
Кнопка.Пометка=?(Кнопка.Пометка, Ложь, Истина);
// Можно и так:
// Кнопка.Пометка = Не Кнопка.Пометка;
КонецПроцедуры


Следующий пример показывает как выгрузить из табличной части Подразделения, удалить повторяющиеся и в "КоманднаяПанельЗарплата" - меню "ФормированиеВедомостей" - подменю "СформироватьПоПодразделению" добавить для каждого подразделения кнопку формирования ведомости
Код 1C v 8.х
  // заполним меню подразделений для ведомостей
ТзПодразделений=Зарплата.ВыгрузитьКолонку("ПодразделениеРаботника");
//Удалим в массиве задвоения
ТекущийИндекс = 0;
ВсегоЭлементов = ТзПодразделений.Количество();
Пока ТекущийИндекс < ВсегоЭлементов Цикл
Индекс2 = ТекущийИндекс + 1;
Пока Индекс2 < ВсегоЭлементов Цикл
Если ТзПодразделений[Индекс2] = ТзПодразделений[ТекущийИндекс] Тогда
ТзПодразделений.Удалить(Индекс2);
ВсегоЭлементов = ВсегоЭлементов - 1;
Иначе
Индекс2 = Индекс2 + 1;
КонецЕсли;
КонецЦикла;
ТекущийИндекс = ТекущийИндекс + 1;
КонецЦикла;
инд=0;
для каждого ТекПодразд из ТзПодразделений Цикл
МенюКнопки = ЭлементыФормы.КоманднаяПанельЗарплата.Кнопки.ФормированиеВедомостей.Кнопки.СформироватьПоПодразделению.Кнопки;
НоваяКнопка = МенюКнопки.Вставить(инд, ТекПодразд, ТипКнопкиКоманднойПанели.Действие, ТекПодразд, Новый Действие("СформироватьВедомостиПоПодразделению"));
инд=инд+1;
КонецЦикла;
Разместил:   Версии: | 8.x | 8.2 УП |  Дата:   Прочитано: 15109
 0 
Распечатать
Возможно, вас также заинтересует
ДБФ, работа с Индекс, Ключ 0
ФайлНаДиске = Новый Файл(ИмяФайла); Если НЕ(ФайлНаДиске.Существует()) Тогда Предупреждение(" Файл с таким именем не существует " + ИмяФайла); Возврат; КонецЕсли; ДБФ = Новый xBase; ДБФ.Кодировка = КодировкаXBase.OEM; ...
Добавление в список значений элементов справочника помеченных на удаление и управление ими 0
СписокЗначений = Новый СписокЗначений; Запрос = Новый Запрос; Запрос.Текст=" ВЫБРАТЬ | Подразделения.Ссылка, | Подразделения.Наименование, | Подразделения.ПометкаУдаления |ИЗ | Справочник.Подразделения КАК...
Использование RLS 3
Начиная с платформы 8.0 системы 1С Предприятие, существует возможность ограничивать права доступа пользователей на уровне записей. Для этого используется механизм RLS (Record Level Security). Такая «тонкая» настройка может быть...
Как в 1С Бухгалтерии изменить должность сотрудника, после повышения? 0
Вопрос: Как в 1С Бухгалтерия 8 ПРОФ поменять должность «кладовщик» на «зав.складом», если было повышение? Ответ: Перевод сотрудника внутри организации на другое постоянное место работы регистрируется в программе...
Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении? 1
Как в ЗУПе выбрать всех сотрудников, когда-либо работавших в выбранном подразделении и изменить у них значение указанного реквизита. Запрос=Новый Запрос; Запрос.Текст=" |ВЫБРАТЬ РАЗЛИЧНЫЕ ...
Посмотреть все результаты поиска похожих
Вы не можете отправить комментарий анонимно, пожалуйста войдите или зарегистрируйтесь.