Имя: Пароль:
1C
1С v8
8.2. Управляемое приложение. Не работает выбор из списка в элемент формы
,
0 Антиквар
 
16.08.12
23:34
Всем привет!
Мне нужно ограничить список выбора реквизита формы.
Т.е. чтобы при выборе открывался не весь список документов, а по отбору.
"Связи параметров выбора" в свойствах реквизита позволяют сделать лишь ниспадающий список.
То же самое относится к переопределению переменной "ДанныеВыбора".
Т.е. работает, но при выборе получается выбор документов из ниспадающего списка. Это неудобно, т.к. для выбора документов нужно выводить весь список колонок формы списка.
Т.е. мне нужно, чтоб открывалась форма выбора, но с отбором, и выбранное значение возвращалось в форму.
Наколько я понял, всё очень просто. Делать надо так:

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

При этом все работает, и открытие формы выбора и отбор в ней, кроме самого последнего, возврата значения. Хотя я указываю владельца: "Элемент" - это элемент формы, в котором выбор и происходит. Тип владельца совпадает со списком выбора, это документ.
Не знаю что и думать?
1 DeoxyS
 
16.08.12
23:44
не понял до конца что к чему, ПолучитьСписокДоступныхДоков() вот эта функция, сто возвращает?
2 Антиквар
 
16.08.12
23:48
(1) Эта функция возвращает список значений из нужных нам документов.
Я специально не стал угулбляться в неё, т.к. открытие и отбор в форме выбора срабатывают правильно.
Т.е. при нажатии на кнопку выбора открывается список только нужных мне документов. Но вот выбор документа из этого списка не работает. При этом открывается форма самого документа, а не выбор его обратно в реквизит-владелец.
3 Антиквар
 
16.08.12
23:51
т.е. форма списка документов открывается сама по себе, без привязки к владельцу. Хотя при этом отбор в ней тот, который я задал в "ПараметрыФормы".
Владельца я указываю: "Элемент" - тут вроде ничего придумывать не надо, Элемент - это и есть тот реквизит, для которого срабатыват НачалоВыбора(). Я и в отладчике на всякий случай это проверил.
4 Антиквар
 
17.08.12
10:55
up
5 olegves
 
17.08.12
11:01
Обработку выбора кури
6 Лоботряс
 
17.08.12
11:01
"Связи параметров выбора" в свойствах реквизита позволяют сделать лишь ниспадающий список...
А ты случаем в обработчиках событий поля выбора ничего лишнего не наваял? Потому что связи параметров выбора должны работать по умолчанию именно так как тебе нужно.
7 Антиквар
 
17.08.12
11:19
(5) Обработка выбора вызывается после осуществления выбора, но до помещения выбранного значения в элемент управления.
А у меня не происходит выбора вообще. При выборе строки вместо выбора происходит открытие документа, как если бы я нажимал Enter в обычном журнале документов.

(6) У поля выбора только один обработчик НачалоВыбора(), в котором я и пытаюсь сделать нормальный выбор документа из отфильтрованного списка.
8 Антиквар
 
17.08.12
11:22
Может быть сама форма списка документов создана как-то так, что она не может быть формой выбора?
У меня одна форма списка. Я её указал в качестве формы списка и формы выбора.
9 Антиквар
 
17.08.12
11:27
Точно, так и есть. Убрал событие Началовыбора() и ничего не измнилось. Открывается весь список документов без фильтра, но при выборе также происходит открытие документа, а не выбор.
Хотя первоначально выбор работал, это после того как начал фильтр делать перестало :)
Хм, в чем же дело... Где-то какой-нибудь флажок поставил/убрал...
10 Лоботряс
 
17.08.12
11:32
Режим выбора в форме включен?
11 Антиквар
 
17.08.12
11:39
блин, вот не думал, так и есть.
Создал форму выбора, и всё заработало. Я думал можно использовать одну форму списка и для выбора и для списка.
12 Антиквар
 
17.08.12
11:41
(10) Т.е. можно и форму списка использовать, включив в ней режим выбора? А где он включается?