Имя: Пароль:
1C
1С v8
v8: УФ. Как открыть произвольную форму в режиме для выбора?
0 SerGa
 
20.05.13
14:17
Есть документ с управляемой формой, у которого есть реквизит например "Подразделение".
При этом мне нужно сделать возможность выбора этого реквизита не с использованием стандартной формы выбора этого справочника, а с помощью некоторой своей (также управляемой).

Делаю так:

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


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

Что я делаю не так??
1 1Сергей
 
20.05.13
14:19
Форма.РежимВыбора = Истина;
Форма.Открыть();
2 Aprobator
 
20.05.13
14:20
(1) он это в параметрах открытия указал.
(0) что значит в вашем понятии Произвольная форма?
3 SerGa
 
20.05.13
14:21
(1) форма управляемая у неё нет такого свойства "РежимВыбора "
4 1Сергей
 
20.05.13
14:21
(3) да ну?
5 SerGa
 
20.05.13
14:22
(2)  ну просто обычная форма, созданная в любом произвольном месте, в данном случае внутри обработки, и не выбранная у справочника в качестве формы для выбора
6 SerGa
 
20.05.13
14:22
(3) чес слово
7 SerGa
 
20.05.13
14:23
(3)  есть ФормаСписка.Параметры.РежимВыбора...  но я её передаю при открытии
8 1Сергей
 
20.05.13
14:23
(7) а отладчиком смотрел? оно точно передалось?
9 SerGa
 
20.05.13
14:24
(8) точно
10 Aprobator
 
20.05.13
14:28
(5) ну если внутри обработки, значит не отработана процедура выбора. Посмотри как это в типовых реализовано.
11 SerGa
 
20.05.13
14:34
(10) про то что "внутри обработки" я имел ввиду, что форма - это одна из форм какой либо моей обработки, с тем же успехом это могла бы быть общая форма...

Сама форма пустая. На ней просто динамический список с Основной таблицей типа Справочник подразделения и всё... там нет никаких процедур выбора..
12 Aprobator
 
20.05.13
14:41
(11)форма обработки. Значит основной реквизит не СправочникСписок. С какого фига там будут отрабатывать типовые механизмы платформы по умолчанию?
13 SerGa
 
20.05.13
14:48
(12) потому и вопрос задаю на форуме..  как быть..   а основной рекивизит там имеет тип Динамический список
14 Aprobator
 
20.05.13
14:50
(13) еще раз - пропиши процедуру выбора. В типовых можно глянуть на обработках типа ПодборНоменклатуры. Даже на обычных формах. Принцип остается тем же самым. Прописана процедура выбора и сделано оповещение формы владельца из которой был произведен вызов обработки.
15 SerGa
 
20.05.13
15:12
Нашел в чем косяк..

Просто передача параметра в форму РежимВыбора не прокатывает..  нужно в явном виде обработать его в процедуре открываемой формы ПриСозданииНаСервере

&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
   Если ЗначениеЗаполнено(Параметры.ТекущаяСтрока) Тогда
       Элементы.Объект.ТекущаяСтрока = Параметры.ТекущаяСтрока;
   КонецЕсли;
   
   Если ЗначениеЗаполнено(Параметры.РежимВыбора) Тогда
       Элементы.Объект.ТекущаяСтрока = Параметры.ТекущаяСтрока;
       Элементы.Объект.РежимВыбора = Параметры.РежимВыбора;
   КонецЕсли;
КонецПроцедуры


После этого всё отлично работает