Имя: Пароль:
 
1C
1С v8
Возможно ли добавить отбор в подбор на управляемых формах?
0 Eastert
 
28.09.17
08:45
Искал, не нашел - может кто знает как это реализовать. Нужно добавить по одному из полей отбор при нажатии подбора. Как бы по сути я не нашел даже какое событие срабатывает при этом.
Там где просто по кнопке добавить сделал вот так вот
            
        СтандартнаяОбработка = Ложь;
        
        Форма = ПолучитьФорму("Документ.ЗаказКлиента.ФормаВыбора");
        
        ЭлементОтбора = Форма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
        ЭлементОтбора.Использование = Истина;
        ЭлементОтбора.ПравоеЗначение = ПолучитьЗаказыПоКлиенту(Клиент);
        
        Форма.Параметры.РежимВыбора = Истина;
        Форма.ВладелецФормы = Элементы.ЗаказыЗначение;
        Форма.Открыть();
        
Вот надо все тоже самое и в подборе сделать. Спасибо заранее
1 Eastert
 
28.09.17
08:46
Элемент формы, куда надо подбирать - СписокЗначений
2 vicof
 
28.09.17
09:26
куча букв, смысла мало. Давай скриншоты.
3 Eastert
 
28.09.17
09:32
4 Eastert
 
28.09.17
09:32
Вот по нажатию этого подбора в список значений (снизу который) должны попадать документы, где партнер равен полю Клиент
5 Eastert
 
28.09.17
09:34
(4) ну то есть должна открываться форма подбора где партнер = заданный Клиент
6 vicof
 
28.09.17
09:37
Если основной реквизит формы подбора - Динамический список:

Отбор = Новый Структура;
Отбор.Вставить("Клиент", Клиент);

Параметры = Новый Структура;
Параметры.Вставить("Отбор", Отбор);
Открытьформу(Имя, Параметры, Элемент)
7 Eastert
 
28.09.17
09:39
(6) в какой процедуре?
8 vicof
 
28.09.17
09:40
Привязанной к кнопке подбора
9 Eastert
 
28.09.17
09:42
(8) если своя кнопка, то как я понимаю будет обыкновенная форма выбора, то есть по одному элементу, а не подбором
10 breezee
 
28.09.17
09:52
(9)
(6) +  
Параметры = Новый Структура;
Параметры.Вставить("Отбор", Отбор);
Параметры.Вставить("МножественныйВыбор", Истина);
11 dezss
 
28.09.17
09:54
(10) или
Параметры.Вставить("ЗакрыватьПриВыборе",Ложь);
12 Eastert
 
28.09.17
10:00
(6) А вообще вы это на управляемых формах делали? у меня так отбор не работает вообще
13 vicof
 
28.09.17
10:05
(12) На управляемых. Раз 500.
14 dezss
 
28.09.17
10:05
(12) чтобы он работал, надо вместо "Клиент" написать то поле, которое есть в списке.
15 AlvlSpb
 
28.09.17
10:08
(0) Ищите в конфигураторе форму подбора. Это либо Общая форма "ФормаПодбоаНоменклатуры" либо Обработка ПодборНоменклатуры-Форма. В пролцедуре ПриОткрытии добавляете свой код, но не полностью, примерно так:

ЭлементОтбора = ЭтаФорма.Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
        ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Ссылка");
        ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
        ЭлементОтбора.Использование = Истина;
        ЭлементОтбора.ПравоеЗначение = ПолучитьЗаказыПоКлиенту(Клиент);
16 dezss
 
28.09.17
10:13
(15) Нафейхоа? Отбор и так должен работать.
17 Eastert
 
28.09.17
10:13
(15) та это ФормаВыбора в документе нужном, и если я вас правильно понял, то мне саму конфу не хочется менять
18 Eastert
 
28.09.17
10:15
(13) Да, спасибо, так работает отбор, но при выборе из открывающейся формы, выбранные значения не попадают в мой списокзначений, куда они должны при выборе попадать, попробовал так указать, но все равно не хочет
    Открытьформу("Документ.ЗаказКлиента.ФормаВыбора", ПараметрыОтбора, Элементы.ЗаказыЗначение);
19 AlvlSpb
 
28.09.17
10:16
(16) Это как вариант использования кода автора, вариант рабочий.
(17) А куда вы собираетесь вставлять любой код? Либо менять конфу, как вариант сделать расширение
20 vicof
 
28.09.17
10:16
(18) Используй ОбработкаВыбора, люк
21 Eastert
 
28.09.17
10:19
(20) если вы имеете ввиду в процедуре ОбработкаВыбора этот код написать, то все равно не добавляется выбранные элементы
22 vicof
 
28.09.17
10:20
(21) Нет, там написать код по обработке выбора
23 dezss
 
28.09.17
10:20
(19) понятно что рабочий, но это использовать можно только если сравнение не на равенство.
(21) после выбора в дочерней форме, вызывается ОбработкаВыбора из родительской.
24 Eastert
 
28.09.17
10:27
(22) какой код по обработке выбора - он мне не нужен, мне нужно добавить отбор в саму форму открытия выбора, а там уже человек может выбирать что угодно
25 dezss
 
28.09.17
10:30
(24) но потом же этот его выбор надо обработать, так?
И обрабатывается он в ОбработкаВыбора.
А если не хочешь с этим париться, используй ОткрытьФормуМодально.
26 ils108
 
28.09.17
10:31
(24) все верно, в ОбработкаВыбора есть ВыбранноеЗначение, его и присваивать своему реквизиту формы
27 dezss
 
28.09.17
10:32
(25) + ОткрытьФормуМодально будет просто возвращаться тебе список выбранных позиций.
28 ils108
 
28.09.17
10:33
формы модально лучше не использовать если верить
"В платформе "1С:Предприятие 8.3" появилась возможность полностью отказаться от модальных методов, заменив их на блокирующие, что позволит улучшить отзывчивость интерфейса и повысить удобство работы в закладочном режиме." (с) 1ЭС
29 Eastert
 
28.09.17
10:35
(26) Смотрите, я добавил свою кнопку, по нажатию ее срабатывает открытие формы выбора с нужным отборм, множественный выбор есть, но если я что-то в ней выбираю, то ничего не происходить, обработкавыбора тоже не срабаывается при этом
30 dezss
 
28.09.17
10:38
(28) да-да...и все эти подпорки ОписаниеОповещенияОЗакрытии и т.п. Знаем мы, почему они от модальности отказываются)))
(29) А ты точно именно форму выбора открываешь?
31 ils108
 
28.09.17
10:38
(29)
УправляемаяФорма (ManagedForm)
ОповеститьОВыборе (NotifyChoice)
Синтаксис:

ОповеститьОВыборе(<ЗначениеВыбора>)
Параметры:

<ЗначениеВыбора> (обязательный)

Тип: Произвольный.
Результат выбора.
Описание:

Посылает оповещение владельцу формы о выполнении выбора или подбора, передает ему выбранное значение. Закрывает форму в соответствии со значением свойства ЗакрыватьПриВыборе. Данное действие аналогично выполнению выбора в форме, открытой для выбора в поле ввода или ячейке табличного поля.

Доступность:

Тонкий клиент, веб-клиент, толстый клиент, мобильное приложение(клиент).
Примечание:

Может применяться в случае, когда открытие формы выбора или подбора выполнено средствами языка.
32 Eastert
 
28.09.17
10:39
(31) я не хочу менять конфу
33 Eastert
 
28.09.17
10:39
(30) да
    ОткрытьФорму("Документ.ЗаказКлиента.ФормаВыбора", ПараметрыОтбора, Элементы.ЗаказыЗначение);
34 dezss
 
28.09.17
10:41
(33) 3-й параметр поставь ЭтаФорма
35 Eastert
 
28.09.17
10:44
(34) поставил, все равно не хочет
36 ils108
 
28.09.17
10:45
(35) а что ты написал в  ОбработкаВыбора
37 Eastert
 
28.09.17
10:47
(36) поставил точку останова, но также написал Сообщить(ВыбранноеЗначение);
38 ils108
 
28.09.17
10:49
(37) ОбработкаВыбора таблицыформы или формы?
39 Eastert
 
28.09.17
10:51
(38) таблицыформы, обработка выбора из формы работает как надо) вопрос закрыт, спасибо всем)