ниспадающий список (список значений для выбора) в панели действий внешней обработки, при нажатии на кнопку.

Внимание! Тема закрыта. Добавлять сообщения в закрытую тему запрещено.
1. deniseek77 86 30.11.12 00:19 Сейчас в теме
Как? В 7.7 делал, тут не соображу. Уж больно много кнопок в панельке нарисовывается, хочется оставить 1 и список вниз, с выбором. Предложения посмотреть, как реализован механизм с печатными формами во всех стандартных конфигурациях- не предлагать я знаю как там. Толстый клиент, 8.2. Лучше примером.
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Lyns_owner 356 30.11.12 00:32 Сейчас в теме
Сначала формируем список выбора:
		СписокКодовВидовОперации = Новый СписокЗначений;
		СписокКодовВидовОперации.Добавить("01", "01 - полученные товары, работы, услуги");
		СписокКодовВидовОперации.Добавить("02", "02 - авансы выданные");
		СписокКодовВидовОперации.Добавить("03", "03 - возврат от покупателя");
		СписокКодовВидовОперации.Добавить("04", "04 - полученные товары, работы, услуги от комитента");
		СписокКодовВидовОперации.Добавить("05", "05 - авансы выданные комитенту");
		СписокКодовВидовОперации.Добавить("10", "10 - полученные безвозмездно товары, работы, услуги");
		СписокКодовВидовОперации.Добавить("11", "11 - полученные товары, права, п.3,4,5.1 статьи 154, пп.1-4 статьи 155 НК");
		СписокКодовВидовОперации.Добавить("12", "12 - авансы выданные за товары, права, п.3,4,5.1 статьи 154, пп.1-4 статьи 155 НК");
		СписокКодовВидовОперации.Добавить("13", "13 - капитальное строительство, модернизация (реконструкция) объектов недвижимости");
		
СписокВыбора = ЭлементыФормы.КодВидаОперации.СписокВыбора;

		Для каждого СтрокаСписка Из СписокКодовВидовОперации Цикл
			СписокВыбора.Добавить(СтрокаСписка.Значение, СтрокаСписка.Представление);
		КонецЦикла;
Показать


Потом создаешь обработчик события "НачалоВыбора" поля ввода:

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

КонецПроцедуры
Показать


Для кнопки все очень просто - добавляешь подменю на панель действий. При открытии формы добавляешь в него кнопки:
	СписокИсключаемыхВидовОпераций = РаботаСДиалогами.СписокИсключаемыхВидовОперацийРасходныйОрдер();
	РаботаСДиалогами.УстановитьПодменюВыбораВидаОперации(ЭлементыФормы.ДействияФормы.Кнопки.ПодменюВидаОперации,
	                                      ВидОперации.Метаданные().ЗначенияПеречисления,
	                                      Новый Действие("ДействияФормыДействиеУстановитьОперацию"),СписокИсключаемыхВидовОпераций);


Процедура УстановитьПодменюВыбораВидаОперации(ЭлементМеню, ОбъектЗаполнения, ОбъектОбработкиВыбораОперации, СписокИслючаемыхЗначенийОбъектаЗаполнения = НЕОПРЕДЕЛЕНО) Экспорт

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

КонецПроцедуры // УстановитьПодменюВыбораВидаОперации()
Показать
deniseek77; +1 Ответить
3. deniseek77 86 30.11.12 01:17 Сейчас в теме
Сейчас нет возможности проверить, спасибо!
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот