Открыть форм выбор справочника

1. Johney20 13.06.18 12:55 Сейчас в теме
Реквизит формы "База приемник" - тип Список значений (тип значения - Справочник "Информационные базы"), то есть приемником может быть как одна база, так и несколько. Необходимо, чтобы при выборе базы источника открывался мой список значений и по нажатию кнопки "Подбор" открывалась форма выбора справочника "Информационные базы". Пока у меня происходит так: 1.Открывается форма выбора справочника, потом поверх открывается мой список значений и при подборе или выборе снова открывается форма выбора. В общем, бред как-то.. (Скрин приложила)

Вот мой код:

Обработка:
&НаКлиенте
Процедура БазаПриемникНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
	//СтандартнаяОбработка = Ложь;
	
	ПараметрыФормы = Новый Структура;
	ПолучитьСписокДоступныхИнформационныхБаз(ПараметрыФормы);	
	
	Оповещение = Новый ОписаниеОповещения("ОбработатьЗакрытиеФормыВыбораБазыПриемника", ЭтаФорма);
	
	ОткрытьФорму("Справочник.ИнформационныеБазы.ФормаВыбора",ПараметрыФормы,Элемент,,ВариантОткрытияОкна.ОтдельноеОкно,,,РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
		
КонецПроцедуры
Показать


Справочник:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка=Ложь)
	Отбор = Параметры.Отбор;
	Параметры.МножественныйВыбор = Истина;
	Если ЗначениеЗаполнено(Отбор) Тогда
		ЭлементОтбора = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
		ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
		ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
		ЭлементОтбора.Использование = Истина;
		ЭлементОтбора.ПравоеЗначение = Отбор;
	КонецЕсли;
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
2. antz 13.06.18 13:01 Сейчас в теме
Ну а почему бы сначала не открываться форме выбора справочника, если вы сами говорите ей открываться в процедуре НачалоВыбора?
3. Johney20 13.06.18 13:02 Сейчас в теме
(2) ок, как сделать иначе?
4. antz 13.06.18 13:03 Сейчас в теме
(3) вам нужно ограничить выбор базы?
5. Johney20 13.06.18 13:17 Сейчас в теме
(4) да. То есть в форме выбора справочника "Информационные Базы" я должна видеть только те, которые есть в параметрах отбора.
6. necropunk 9 13.06.18 13:41 Сейчас в теме
Стандартную обработку отключайте при использовании своей формы выбора.
10. antz 13.06.18 13:58 Сейчас в теме
(6) ей нужно заполнять список значений. То есть, чтобы при начале выбора открывалась форма списка значений, а при добавлении в список - когда открывается форма выбора из справочника, в ней был отбор. Я как-то не знаю, как это сделать.
7. necropunk 9 13.06.18 13:42 Сейчас в теме
И если вы список баз передаете в отбор - почему в отборе вид сравнения - Равно?
8. Johney20 13.06.18 13:52 Сейчас в теме
(7) это я уже заменила на ВСписке. Результат не меняется все равно
9. Johney20 13.06.18 13:52 Сейчас в теме
Стандартную обработку так же отключаю.
11. independ 1520 13.06.18 20:54 Сейчас в теме
Можно использовать стандартный диалог Списка значений с отметкой, если данный список небольшой, то вполне работает, вот пример
&НаКлиенте
Процедура Подбор(Команда)
	СписокКассККМ=Новый СписокЗначений;
	ЗаполнитьСписокКассККМ(СписокКассККМ);
	Для каждого КассаККМ из СписокКассККМ Цикл
		Если КассыККМ.НайтиПоЗначению(КассаККМ.Значение)<>Неопределено Тогда
			КассаККМ.Пометка=Истина;
		КонецЕсли;	
	КонецЦикла;	
	Если СписокКассККМ.ОтметитьЭлементы("Выбор Касс ККМ") Тогда
		КассыККМ.Очистить();
		Для Каждого КассаККМ Из СписокКассККМ Цикл
			Если КассаККМ.Пометка Тогда
				КассыККМ.Добавить(КассаККМ.Значение);
			КонецЕсли;
		КонецЦикла;
	КонецЕсли;
КонецПроцедуры

&НаСервереБезКонтекста
Процедура ЗаполнитьСписокКассККМ(СписокКассККМ) 
	Запрос=Новый Запрос;
	Запрос.Текст="ВЫБРАТЬ
	|	КассыККМ.Ссылка КАК Ссылка
	|ИЗ
	|	Справочник.КассыККМ КАК КассыККМ";
	Выборка=Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		СписокКассККМ.Добавить(Выборка.Ссылка);
	КонецЦикла;	
КонецПроцедуры	
Показать
Прикрепленные файлы:
Оставьте свое сообщение

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