Открыть форму выбора справочника с отбором
Добрый день. Форма управляемая 8.3. Есть справочник, в нем на форме заполняется список данных с другого справочника(панель антибиотиков). Нужно в другом справочнике открывать этот список(панель антибиотиков) по реквизиту, картинка 2, при нажатии на кнопку. Подскажите как нужно сделать отбор или каким другим способом. Не совсем понимаю как открыть "страницу" из формы справочника. Сейчас открывается весь список Панель антибиотиков по форме выбора этого справочника (надеюсь понятно объяснила)
Прикрепленные файлы:


По теме из базы знаний
- Подбор в управляемой форме - что может быть проще?
- Форма выбора (подбор) в управляемых формах
- Строковые отборы в 1С
- Установка отбора по списку значений при открытии формы выбора справочника из реквизита обработки
- Параметры открытия формы выбора отборов и параметров СКД ("связи параметров выбора" списочных значений СКД)
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
(14) можно еще вместо формы выбора - выбрать из списка значений т.е.
Процедура ПодборНажатие()
СписокАнтибиотиков = СписокАнтибиотиков(Элементы.Микроорганизм.ТекущиеДанные.Микроорганизм);
Если СписокАнтибиотиков.ОтметитьЭлементы("Выберите Микроорганизмы ") Тогда
Для Каждого Антибиотик Из СписокАнтибиотиковЦикл
Если Антибиотик .Пометка Тогда
Сообщить(Антибиотик.Значение);
///ИЛИ добавляете выбранные элементы в вашу таблицу
///м = Микроорганизмы.Добавить();
///м. Антибиотик = Антибиотик.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
Функция СписокАнтибиотиков(Микроорганизм)
СписокАнтибиотиков = новый СписокЗначений;
Запрос = новый Запрос("Выбрать * из Справочник.Антибиотики как Антибиотики ГДЕ Антибиотики.Микроорганизм = &Микроорганизм");
Запрос.УстановитьПараметр("Микроорганизм",Микроорганизм);
СписокАнтибиотиков.ЗагрузитьЗначения(Запрос.выполнить().Выгрузить().ВыгрузитьКолонку("Ссылка)");
возврат СписокАнтибиотиков;
Конецфункции
Показать
(2) да. я может не совсем правильно делаю, вот часть кода
получаю массив и не совсем понимаю как его со структурой связать...
получаю массив и не совсем понимаю как его со структурой связать...
ЗначениеОтбора = Новый Структура("Микроорганизмы", ТекущийОрганизм);
МассивАнтибиотиков = Новый Массив;
МассивАнтибиотиков = ЗначениеОтбора.Микроорганизмы.ПанельАнтибиотиков.Выгрузить().ВыгрузитьКолонку("ПанелиАнтибиотиков");
(5)
Можно и так. Тогда в событии элемента формы "НачалоВыбора", ставите СтандартнаяОбработка = Ложь, открываете форму выбора справочника с передачей туда вашего массива и установкой владельцем формы текущую форму. А в самой форме выбора уже прописываете в ПриСозданииНаСервере нужный отбор.
Как то так
Можно и так. Тогда в событии элемента формы "НачалоВыбора", ставите СтандартнаяОбработка = Ложь, открываете форму выбора справочника с передачей туда вашего массива и установкой владельцем формы текущую форму. А в самой форме выбора уже прописываете в ПриСозданииНаСервере нужный отбор.
Как то так
(5)
Форма элемента
ФормаВыбора
Форма элемента
&НаКлиенте
Процедура ФизЛицоБлагополучательДинамичНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ОткрытьФормуВыбораФизЛицБлагополучатели(Элемент);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораФизЛицБлагополучатели(Элемент)
СтруктураПараметров = Новый Структура("ОтборПоРодителю", Объект.ФизЛицо);
ОткрытьФорму("Справочник.ФизическиеЛица.ФормаВыбора",СтруктураПараметров,Элемент);
КонецПроцедуры
ПоказатьФормаВыбора
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.ОтборПоРодителю <> Справочники.ФизическиеЛица.ПустаяСсылка() и Параметры.ОтборПоРодителю <> Неопределено Тогда
ОтборПоРодителю = Параметры.ОтборПоРодителю;
СписокДляОтбора = СписокОтбора(); //тут создаю СписокЗначений для отбора
Если СписокДляОтбора.Количество() <> 0 Тогда
Отбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
Отбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
Отбор.Представление = "ОтборПоРодственникам";
Отбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
Отбор.Использование = Истина;
Отбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный;
Отбор.ПравоеЗначение = СписокДляОтбора;
ИспользованиеОтборПоСоставуСемьи = Истина; //реквизит на форме
Иначе
ИспользованиеОтборПоСоставуСемьи = Ложь; //реквизит на форме
КонецЕсли;
Иначе
Элементы.ОтборПоСоставуСемьи.Видимость = Ложь;
КонецЕсли;
КонецПроцедуры
Показать
(2) я вас запутала((( извините
нужно установить отбор по Микроорганизму, в справочнике которого есть ТЧ ПанельАнтибиотиков, так вот выбрали Микроорганизм, нажили на кнопку заполнить и должен появится список этой ТЧ Панель Антибиотиков, сейчас просто открывается форма Выбора справочника ПанельАнтибиотиков
нужно установить отбор по Микроорганизму, в справочнике которого есть ТЧ ПанельАнтибиотиков, так вот выбрали Микроорганизм, нажили на кнопку заполнить и должен появится список этой ТЧ Панель Антибиотиков, сейчас просто открывается форма Выбора справочника ПанельАнтибиотиков
(11) Кажется, до меня дошло.
Попробуйте в форме выбора, при открытии, подменить текст запроса динамического списка на что то подобное
"ВЫБРАТЬ
Антибиотики.Ссылка КАК Ссылка
ИЗ
Справочник.Микроорганизмы.ТЧАнтибиотики КАК Антибиотики
ГДЕ
Антибиотики.Ссылка = &Ссылка"
В ПриСозданииНаСервере сделать условие
Попробуйте в форме выбора, при открытии, подменить текст запроса динамического списка на что то подобное
"ВЫБРАТЬ
Антибиотики.Ссылка КАК Ссылка
ИЗ
Справочник.Микроорганизмы.ТЧАнтибиотики КАК Антибиотики
ГДЕ
Антибиотики.Ссылка = &Ссылка"
В ПриСозданииНаСервере сделать условие
если ПараметрИспользоватьЗапрос тогда
"подменяем запрос и устанавливаем параметр"
конецесли
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот