наверх
Свободные IT публикации
логин:
пароль:

Работа с элементами управления в 1С 8.x


В форме есть панель со страницами. Как разместить картинку на закладке?

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

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

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

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

Док = Метаданные.Документы; 
СписокДокументов = Новый СписокЗначений(); 

СписокДокументов.Добавить(Док.ПлатежноеПоручениеИсходящее, , Ложь); 
СписокДокументов.Добавить(Док.ПлатежноеПоручениеВходящее, , Ложь); 
СписокДокументов.Добавить(Док.АккредитивПереданный, , Ложь); 
СписокДокументов.Добавить(Док.АккредитивПолученный, , Ложь); 
СписокДокументов.Добавить(Док.ПлатежноеТребованиеВыставленное, , Ложь); 
СписокДокументов.Добавить(Док.ПлатежноеТребованиеПолученное, , Ложь); 
СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПереданное, , Ложь); 
СписокДокументов.Добавить(Док.ИнкассовоеПоручениеПолученное, , Ложь); 
СписокДокументов.Добавить(Док.ПлатежныйОрдерСписаниеДенежныхСредств, , Ложь); 
СписокДокументов.Добавить(Док.ПлатежныйОрдерПоступлениеДенежныхСредств, , Ложь); 

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

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

Процедура ПерсонаОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка) 

	Значение = Новый СписокЗначений(); 
	Значение.Добавить("Уважаемый " + Текст); 
	Значение.Добавить("Уважаемая " + Текст); 
	Значение.Добавить("Уважаемое " + Текст); 
	Значение.Добавить("Уважаемые " + Текст); 
	Значение.Добавить(Текст); 

	СтандартнаяОбработка = Ложь; 

КонецПроцедуры

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

КнопкиКоманднойПанели = ЭлементыФормы.КоманднаяПанельФормы.Кнопки; 

// Проверить, нет ли уже на командной панели кнопки "Сформировать". 
// Если есть - удалить. 
Индекс = КнопкиКоманднойПанели.Индекс(КнопкиКоманднойПанели.Найти("Сформировать")); 

Если Индекс = -1 Тогда 
	Индекс = 0; 
Иначе 
	КнопкиКоманднойПанели.Удалить(Индекс); 
КонецЕсли; 

// Создать подменю "Сформировать". 
ПодменюСформировать = КнопкиКоманднойПанели.Вставить(Индекс, "Сформировать", 
								 ТипКнопкиКоманднойПанели.Подменю, "Сформировать"); 

// Добавить картинку. 
ПодменюСформировать.Картинка = БиблиотекаКартинок.Сформировать; 
ПодменюСформировать.Отображение = ОтображениеКнопкиКоманднойПанели.НадписьКартинка; 

// Опросить перечисление о возможных вариантах периодичности. 
Запрос = Новый Запрос("ВЫБРАТЬ Ссылка ИЗ Перечисление.Периодичность"); 
Выборка = Запрос.Выполнить().Выбрать(); 

//Добавить кнопки к подменю. 
Пока Выборка.Следующий() Цикл 
	Период = Выборка.Ссылка; 
	ПодменюСформировать.Кнопки.Добавить("кн" + Период, ТипКнопкиКоманднойПанели.Действие, 
	"Сформировать за " + Период, Новый Действие("КнопкаСформироватьНажатие")); 
КонецЦикла; 

Процедура КнопкаСформироватьНажатие(Элемент) 
	НазваниеПериодичности = СтрЗаменить(Элемент.Имя, "кн", "");  
КонецПроцедуры

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

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

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

Процедура ОбрабатываемыйДокументПриИзменении(Элемент) 

	СписокВыбора = ЭлементыФормы.ОбрабатываемаяТабличнаяЧасть.СписокВыбора; 
	СписокВыбора.Очистить(); 

	Если Элемент.Значение <> Неопределено И Не(Элемент.Значение.Пустая()) Тогда 
		ТабличныеЧасти = Элемент.Значение.Метаданные().ТабличныеЧасти; 

		Для Каждого ТабличнаяЧасть из ТабличныеЧасти Цикл 
			СписокВыбора.Добавить(ТабличнаяЧасть); 
		КонецЦикла; 
	КонецЕсли; 

КонецПроцедуры 



Процедура ОбрабатываемыйДокументОчистка(Элемент, СтандартнаяОбработка) 
	ОбрабатываемаяТабличнаяЧасть = ""; 
КонецПроцедуры

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

КоллекцияДат = ЭлементыФормы.ПолеКалендаря.ВыделенныеДаты; 

Для каждого ДатаКалендаря из КоллекцияДат Цикл 
	Сообщить(ДатаКалендаря); 
КонецЦикла; 

ЭлементыФормы.ПолеКалендаря.РежимВыделения = РежимВыделенияДаты.Множественный;

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

Выборка = РезультатЗапроса.Выбрать(); 
Индикатор = ЭлементыФормы.ИндикаторПеребора; 
Индикатор.МаксимальноеЗначение = Выборка.Количество(); 
Индикатор.Значение = 0; 

Пока Выборка.Следующий() Цикл 
	Индикатор.Значение = Индикатор.Значение + 1; 
КонецЦикла; 


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

Пока Выборка.Следующий() Цикл 
	Индикатор.Значение = Индикатор.Значение + 1;
КонецЦикла;

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

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


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

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

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

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

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

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

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

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

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