Имя: Пароль:
1C
 
Множественный подбор при вызове формы выбора
0 Rollam
 
05.11.14
17:26
Вызываю форму выбора следующим образом:
Процедура КоманднаяПанель1ГрузчикиНабПодбор(Кнопка)
    
    ФормаПодбора  = Справочники.ФизическиеЛица.ПолучитьФормуВыбора("ФормаВыбора","ЭлементыФормы.");
    
    ФормаПодбора.РежимВыбора=Истина;
    ФормаПодбора .МножественныйВыбор = Истина;
    ФормаПодбора .ЗакрыватьПриВыборе=Ложь;
    ФормаПодбора .ОткрытьМодально();

КонецПроцедуры
1 Rollam
 
05.11.14
17:31
"ОткрытьМодально()" не возвращает значение множественного подбора. Процедура обработки выбора в форме выбора справочника "Физические лица", где можно было бы работать с результатом выбора, не вызывается.
И форму выбора вызываю следующим образом (выше написано неверно):

ФормаПодбора  = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(, ЭтаФорма);

Логика работы механизма выбора начала от меня ускользать...
Помогите)
2 vicof
 
05.11.14
17:33
Модально не нужно,
Второй параметр в получить форму нормально напиши
3 vicof
 
05.11.14
17:33
ФормаПодбора  = Справочники.ФизическиеЛица.ПолучитьФормуВыбора(, ЭтаФорма)

значит в форме или обработчик обработка выбора
4 vicof
 
05.11.14
17:34
ищи*
5 Rollam
 
06.11.14
09:14
Это все я уже поправил, просто невнимательность при копировании (мое второе сообщение).
Открывать модально или немодально - все равно не получаю никакого результата. Модальное открытие формы, по крайней мере, может вернуть одно значение.
Я вот совсем не понимаю, почему не происходит вызов обработки выбора в форме выбора справочника.
6 Rollam
 
06.11.14
11:55
Нашел описание метода в документации. Описано все тоже, что и делаю я, но он не работает!

Описание из документации:

При таком выборе пользователь может выделить сразу несколько элементов (например, с помощью клавиши Ctrl) и после нажатия кнопки "Выбрать" система вернет массив выбранных элементов, а не один элемент, как в первом случае.

Процедура кпТоварыПодбор(Кнопка)
  ФормаПодбора = Справочники.Номенклатура.ПолучитьФормуВыбора(,ЭтаФорма);
  ФормаПодбора.МножественныйВыбор = Истина;
  ФормаПодбора.ЗакрыватьПриВыборе = Ложь;
  ФормаПодбора.Открыть();
КонецПроцедуры



Тогда обработчик события ОбработкаВыбора можно написать так:

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

  Для каждого Элемент Из МассивВыбранныхЭлементов Цикл
     //действия с очередным элементом
  КонецЦикла;
КонецПроцедуры
7 Йохохо
 
06.11.14
11:58
(6) РежимВыбора потерялся
8 Rollam
 
06.11.14
11:59
(7) Режим выбора я указываю.

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

КонецПроцедуры
9 marvak
 
06.11.14
12:01
(0)
А как выбор в вызываемой форме делаешь?
Действия -> Выбрать?
10 Rollam
 
06.11.14
12:12
(9) По кнопке "Выбор". Слева вверху которая.
11 Rollam
 
06.11.14
16:54
Кстати, подбор пытаюсь реализовать на неуправляемых формах.
12 vicof
 
06.11.14
16:56
ОповеститьОВыборе() сделай при окончаниии выбора
13 Rollam
 
06.11.14
17:01
(12) В обработчике "ОбработкаВыбора()"?
14 vicof
 
06.11.14
17:05
(13) При закрытии формы подбора