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

1С 8.x : Кнопка ~ Программное добавление кнопок на командную панель формы

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

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


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