Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:41

Отбор на форме с динамическим списком

Автор AsadRoman, 20 фев 2017, 09:11

0 Пользователей и 1 гость просматривают эту тему.

AsadRoman

Есть форма подбора с динамическим списком. В самом динамическом списке заданы поля отбора и установлен признак "выводить в пользовательские настройки". Из формы, в которую хочу подобрать из динамического списка, передаю параметры отбора. Форма открывается, и выводить данные в соответствии с полученными параметрами отбора. НО поля отбора на форме подбора не заполняются. Перепробовал все "отборы" в динамическом списке. НО ничего не получилось. Более того, если задать отбор прямо на форме, закрыть форму и открыть заново, то отбор, заданный в предыдущий раз сохраняется.
Подскажите, пожалуйста, куда копать? Где хранятся данные отбора, заданного на форме?

AsadRoman

Я смотрю тут все специалисты по 1С собрались

AsadRoman

По ходу на это вопрос никто не знает ответ.
Ладно так уж и быть поделюсь опытом:

В модуле формыподбора:

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

На форме вызывающей форму подбора:

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

Вот как-то так.
Добавлено: 02 мар 2017, 17:32


Попутно еще вопрос: что нужно сделать, чтобы при выборе значений из подчиненного справочника показывались только подчиненные значения. Т.е. чтобы показывались только адреса контрагента.

Теги: УФ Отбор 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск