Имя: Пароль:
1C
1С v8
ОткрытьФорму("...", Параметры) не учитывать имеющийся до этого отбор и открывать новую фор
0 slnes
 
25.02.21
13:51
Открываю форму
ОткрытьФорму("Документ.НазваниеДокумента.Форма.ФормаСписка", ПараметрыФормы);
В параметрах только массив ссылок на документы

В списке до этого, руками, установлен отбор (бывает по контрагенту, договору, подразделению), форма открывается с отбором и по этим параметрам, нужно только по ПараметрыФормы.
Если форма списка уже открыта, она активируется не учитывая ПараметрыФормы, нужно открывать новую форму.

Как открывать форму только с параметрами заполненными в ПараметрыФормы и открывать новую форму, а не активировать открытую?
1 DrShad
 
25.02.21
13:57
для начала получить новую форму и потом уже ее открывать
2 Fragster
 
гуру
25.02.21
13:58
Смотри на четвертый параметр в СП
3 Курцвейл
 
25.02.21
14:01
(0) Для фильтра по документам, создать свой параметр формы "СписокДокументов", потом по параметру устанавливать фильтр для динамического списка документов
4 Курцвейл
 
25.02.21
14:03
ПараметрыФормы.Вставить("СписокДокументов", МассивДокументов)

ПриСозданииНаСервере

Если Параметры.Свойство("СписокДокументов") Тогда
//написать самому процедуру УстановитьФильтрДокументов
УстановитьФильтрДокументов(Параметры.СписокДокументов)
5 slnes
 
25.02.21
14:12
(2) спасибо, как открывать новую форму разобрался
(3) и (4) может есть способ проще, например очистить все параметры как то можно? а потом загрузить нужные мне параметры?
6 Fragster
 
гуру
25.02.21
14:31
(5) телепатирую, что нужно ещё и про третий параметр прочитать
7 Курцвейл
 
25.02.21
16:12
(5) Есть способ платформы использовать ПараметрыФормы.Добавить("Фильтр", СтруктураФильтр). Но это работает только с условием сравнения на равенство. В твоем случае требуется условие "В списке". Для облегчения задачи в БСП вроде есть метод по установке фильтра на динамический список. Не знаю как на русском, на инглише  CommonClientServer.SetDynamicListFilterItem
8 Курцвейл
 
25.02.21
16:15
УстановитьЭлементОтбораДинамическогоСписка
Добавить или заменить существующий элемент отбора динамического списка.
Синтаксис

Процедура УстановитьЭлементОтбораДинамическогоСписка(ДинамическийСписок, ИмяПоля,
    ПравоеЗначение = Неопределено,
    ВидСравнения = Неопределено,
    Представление = Неопределено,
    Использование = Неопределено,
    РежимОтображения = Неопределено,
    ИдентификаторПользовательскойНастройки = Неопределено) Экспорт
9 slnes
 
26.02.21
10:20
(6) а вот это непонятно, как использовать третий параметр, что бы отключить отбор который установил пользователь, до этого, не понял.
(7),(8) тут же для каждого параметра отдельно отбор отключать надо.

И почему тут то не очищает старые параметры
ФормаСписка = ПолучитьФорму("Документ.НазваниеДокумента.Форма.ФормаСписка",,,ВариантОткрытияОкна.ОтдельноеОкно );
    
ФормаСписка.Список.Отбор.Элементы.Очистить(); //ВОТ ТУТ ЖЕ ОЧИСТИТЬ
    
ЭлементОтбора = ФормаСписка.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
ЭлементОтбора.Использование = Истина;
ЭлементОтбора.ПравоеЗначение = МассивСсылок;
    
ФормаСписка.Открыть();
10 Курцвейл
 
26.02.21
15:13
(9) Это потому что старую открытую форму получаешь с параметрами.
Если есть потребность работать с уже открытой формой, то удобнее пользоваться оповещениями между формами
11 slnes
 
26.02.21
19:18
(10) как её без параметров открыть то можно, нужно новая форма без параметров за исключением списка ссылок на документы которые я туда добавил, с открытой формой работать не надо пускай так и остается, открывать еще одну форму списка
12 Курцвейл
 
28.02.21
10:16
(11) Откуда фильтры появились? Может они предопределённо заданы на формы? Если это так, то лучше перенести это в код. Это облегчает управление кодом, сопровождение кода и групповую разработку.
13 slnes
 
01.03.21
05:56
(12) Эти фильтры задал пользователь, потом закрыл форму и фильтры сохранились