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

Открыть форму выбора с отбором

Автор Keen Gaff, 12 мая 2021, 16:59

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

Keen Gaff

Доброго дня.
Есть две БД, одна локальна, другая на сервере 1С. Конфигурации идентичны. На локальной базе форма выбора открывается как задумано, с отбором по нескольким значениям. В базе работающей на сервере 1С этого не происходит, не применяется отбор по списку значений. Если отключить список значений, то все работает. Как быть со списком значений в этом случае?

Поиск родных

А как именно Вы отключаете / включаете список значений?

Keen Gaff

Пробовал два варианта отбора.
Первый через вставку в параметры открытия формы структуры с отбором:

Отбор = Новый Структура;
Отбор.Вставить("НДНаСоответствие", СписокНД);
Отбор.Вставить("ГруппаОбразцов", Объект.ГруппаОбразца);
ОткрытьФорму("Справочник.Показатели.ФормаВыбора", Новый Структура("Отбор", Отбор), Элемент);

         
Второй через параметры формы:         

ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ПараметрГруппаОбразцов", Объект.ГруппаОбразца);
ПараметрыФормы.Вставить("ПараметрСписокНД", СписокНД);
ОткрытьФорму("Справочник.Показатели.ФормаВыбора", ПараметрыФормы, Элемент);

С процедурой в форме выбора:

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
ГруппаЭлементовОтбора = Список.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных"));
ГруппаЭлементовОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ;

ЭлементОтбора = ГруппаЭлементовОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("ПометкаУдаления");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = Ложь;


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

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


Отключаю список комментированием строки со СпискомНД при задании отбора или параметра.
Причем во втором случае видно, что в группу элементов отбора список значений попадает, но не срабатывает...

Keen Gaff

Все оказалось прозаично. Задвоилась запись справочника, в результате в отбор попадало не нужное значение.

Теги:

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

Рейтинг@Mail.ru

Поиск