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