наверх
Справка / работа с элементами управления

Работа с элементами управления

  • В форме есть панель со страницами. Как разместить картинку на закладке?
  • Как обеспечить, чтобы при открытии формы уже записанного элемента справочника "Контрагенты" активной была закладка "СчетаИДоговоры" панели "Панель"?
  • Как организовать выбор из нескольких списков документов для открытия?
  • Как можно организовать подстановку обращения к персоне?
  • Как в командной панели создать подменю с кнопками?
  • Как созданной кнопке назначить "горячие клавиши"?
  • Как реализовать заполнение возможных значений поля выбора "ОбрабатываемаяТабличнаяЧасть" при заполнении поля ввода "ОбрабатываемыйДокумент"?
  • Если пользователь указал несколько дат в поле календаря - как их перебрать?
  • Как организовать работу с индикатором?
  • Как у элемента управления сменить источник данных?
  • Как задать представление даты, отображаемое в поле ввода по-умолчанию?
  • Как вывести текст в поле картинки в том случае, если картинка не выбрана?
  • Как открыть пользователю стандартный диалог выбора цвета?
  • В форме есть панель со страницами. Как разместить картинку на закладке?

    ЭлементыФормы.ОсновнаяПанель.Страницы.СчетаУчета.КартинкаЗаголовка = БиблиотекаКартинок.ДебетКредит;

    Как обеспечить, чтобы при открытии формы уже записанного элемента справочника "Контрагенты" активной была закладка "СчетаИДоговоры" панели "Панель"?

    Процедура ПриОткрытии() 
    	Если ЭтоНовый() = Ложь Тогда 
    		ЭлементыФормы.Панель.ТекущаяСтраница = ЭлементыФормы.Панель.Страницы.СчетаИДоговоры; 
    	КонецЕсли; 
    КонецПроцедуры

    Как организовать выбор из нескольких списков документов для открытия?

    Док = Метаданные.Документы; 
    СписокДокументов = Новый СписокЗначений(); 
    
    СписокДокументов.Добавить(Док.ПлатежноеПоручениеИсходящее, , Ложь); 
    СписокДокументов.Добавить(Док.ПлатежноеПоручениеВходящее, , Ложь); 
    СписокДокументов.Добавить(Док.АккредитивПереданный, , Ложь); 
    СписокДокументов.Добавить(Док.АккредитивПолученный, , Ложь); 
    СписокДокументов.Добавить(Док.ПлатежноеТребованиеВыставленное, , Ложь); 
    СписокДокументов.Добавить(Док.ПлатежноеТребованиеПолученное, , Ложь); 
    СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПереданное, , Ложь); 
    СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПолученное, , Ложь); 
    СписокДокументов.Добавить(Док.ПлатежныйОрдерСписаниеДенежныхСредств, , Ложь); 
    СписокДокументов.Добавить(Док.ПлатежныйОрдерПоступлениеДенежныхСредств, , Ложь); 
    
    Если СписокДокументов.ОтметитьЭлементы("Укажите, какие списки документов открыть") Тогда 
    	Для Каждого НазваниеДокумента из СписокДокументов Цикл 
    		Если НазваниеДокумента.Пометка Тогда 
    			ФормаСписка = Документы[НазваниеДокумента.Значение.Имя].ПолучитьФормуСписка(); 
    			ФормаСписка.Открыть(); 
    		КонецЕсли; 
    	КонецЦикла; 
    КонецЕсли;

    Как можно организовать подстановку обращения к персоне?

    Процедура ПерсонаОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) 
    
    	Значение = Новый СписокЗначений(); 
    	Значение.Добавить("Уважаемый " + Текст); 
    	Значение.Добавить("Уважаемая " + Текст); 
    	Значение.Добавить("Уважаемое " + Текст); 
    	Значение.Добавить("Уважаемые " + Текст); 
    	Значение.Добавить(Текст); 
    
    	СтандартнаяОбработка = Ложь; 
    
    КонецПроцедуры

    Как в командной панели создать подменю с кнопками?

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

    Как созданной кнопке назначить "горячие клавиши"?

    СозданнаяКнопка.СочетаниеКлавиш = Новый СочетаниеКлавиш(Клавиша.L, Истина, Истина,);

    Как реализовать заполнение возможных значений поля выбора "ОбрабатываемаяТабличнаяЧасть" при заполнении поля ввода "ОбрабатываемыйДокумент"?

    Процедура ОбрабатываемыйДокументПриИзменении(Элемент) 
    
    	СписокВыбора = ЭлементыФормы.ОбрабатываемаяТабличнаяЧасть.СписокВыбора; 
    	СписокВыбора.Очистить(); 
    
    	Если Элемент.Значение <> Неопределено И Не(Элемент.Значение.Пустая()) Тогда 
    		ТабличныеЧасти = Элемент.Значение.Метаданные().ТабличныеЧасти; 
    
    		Для Каждого ТабличнаяЧасть из ТабличныеЧасти Цикл 
    			СписокВыбора.Добавить(ТабличнаяЧасть); 
    		КонецЦикла; 
    	КонецЕсли; 
    
    КонецПроцедуры 
    
    
    
    Процедура ОбрабатываемыйДокументОчистка(Элемент, СтандартнаяОбработка) 
    	ОбрабатываемаяТабличнаяЧасть = ""; 
    КонецПроцедуры

    Если пользователь указал несколько дат в поле календаря - как их перебрать?

    КоллекцияДат = ЭлементыФормы.ПолеКалендаря.ВыделенныеДаты; 
    
    Для каждого ДатаКалендаря из КоллекцияДат Цикл 
    	Сообщить(ДатаКалендаря); 
    КонецЦикла; 
    
    ЭлементыФормы.ПолеКалендаря.РежимВыделения = РежимВыделенияДаты.Множественный;

    Как организовать работу с индикатором?

    Выборка = РезультатЗапроса.Выбрать(); 
    Индикатор = ЭлементыФормы.ИндикаторПеребора; 
    Индикатор.МаксимальноеЗначение = Выборка.Количество(); 
    Индикатор.Значение = 0; 
    
    Пока Выборка.Следующий() Цикл 
    	Индикатор.Значение = Индикатор.Значение + 1; 
    КонецЦикла; 
    
    
    Выборка = РезультатЗапроса.Выбрать(); 
    Индикатор = ЭлементыФормы.ИндикаторПеребора; 
    Индикатор.МаксимальноеЗначение = Выборка.Количество(); 
    Индикатор.Значение = 0; 
    Индикатор.ОтображатьПроценты = Истина; 
    Индикатор.СтильОтображения = РежимСглаживанияИндикатора.Прерывистый; 
    Индикатор.Ориентация = Ориентация.Вертикально; 
    Индикатор.Шаг = 0.1; 
    
    Пока Выборка.Следующий() Цикл 
    	Индикатор.Значение = Индикатор.Значение + 1;
    КонецЦикла;

    Как у элемента управления сменить источник данных?

    Процедура КнопкаВыполнитьНажатие(Элемент) 
    	ЭлементыФормы.ТП.Данные = "СписокКонтрагентов"; 
    	ЭлементыФормы.ТП.СоздатьКолонки(); 
    КонецПроцедуры 
    
    
    Процедура Номенклатура(Кнопка) 
    	ЭлементыФормы.ТП.Данные = "СписокНоменклатуры"; 
    	ЭлементыФормы.ТП.СоздатьКолонки(); 
    КонецПроцедуры

    Как задать представление даты, отображаемое в поле ввода по-умолчанию?

    ЭлементыФормы.ПолеВвода1.Формат = "ДП='01.01.0001'"; 
    
    ЭлементыФормы.ПолеВвода1.Формат = "ДП='00:00:00'"; 
    
    ЭлементыФормы.ПолеВвода1.Формат = "ДП='01.01.0001 00:00:00'";

    Как вывести текст в поле картинки в том случае, если картинка не выбрана?

    ЭлементыФормы.ОсновноеИзображение.ТекстНевыбраннойКартинки = "фотография номенклатуры отсутствует";

    Как открыть пользователю стандартный диалог выбора цвета?

    Диалог = Новый ДиалогВыбораЦвета; 
    Если Диалог.Выбрать() Тогда 
    	ВыбранныйЦвет = Диалог.Цвет; 
    КонецЕсли;