|
Как заставить штатно УФ открываться в режиме "Восстанавливать текущую строку"? | ☑ | ||
---|---|---|---|---|
0
ChAlex
16.01.13
✎
12:02
|
Есть форма выбора справочника - управляемая. Для списка установлен флаг "Восстанавливать текущую строку". Форма выбора открывается командой ОткрытьФормуМодально("Справочник.Номенклатура.ФормаВыбора", Новый Структура("ЗакрыватьПриВыборе", Истина), ЭлементыФормы.Номенклатура)
Каждый раз форма открывается в свернутом виде и не восстанавливается строка из предыдущего выбора. То же самое если интерактивно через изменить форму устанавливать. Как заставить форму штатно восстанавливать позицию? Запоминать предыдущий выбор и передавать через параметры не предлагать. Ключевое слово "штатно" |
|||
1
regniws
16.01.13
✎
12:06
|
чем ВосстанавливатьТекущуюСтроку не нравится
|
|||
2
regniws
16.01.13
✎
12:07
|
я в смысле того, что не понятно, что с ней не работает
|
|||
3
ChAlex
16.01.13
✎
12:08
|
(2) - при открытии формы не происходит позиционирование на строку списка по состоянию при закрытии предыдущего окна.
|
|||
4
Vertalex
16.01.13
✎
12:23
|
Мне кажется, штатно позиционируется только если форма открта стандартно без своего обрабоьчика из поля ввода. Позиция при этом ставится на значении которое было в поле ввода. А эта команда восстановления не привязана к вызывающему полю ввода' по идее она восстанавливает строку, на которой форма была закрыта в послдний раз. Я такую задачу решил через параметр...
|
|||
5
regniws
16.01.13
✎
12:31
|
(3) странно как-то, в документации нет про то, что только для стандартных обработчиков. Тогда действительно только параметры и остаются
|
|||
6
ChAlex
16.01.13
✎
12:32
|
(4) - при вводе новой строки значение поля не проинициализировано, поэтому откуда открывать - в общем-то должно быть без разницы. В обычном интерфейсе - все работает нормально (то бишь строка восстанавливается). В управляемом - нет. Из поля - сейчас не помню, возможно и восстанавливается. В данном случае нужно открывать форму через процедуру. В документации по этому поводу ничего не сказано откуда и как открывается форма:
Расширение таблицы формы для динамического списка (Form table extension for dynamic list) ВосстанавливатьТекущуюСтроку (RestoreCurrentRow) Использование: Чтение и запись. Описание: Признак необходимости сохранения и восстановления текущей позиции в списке при следующем открытии формы. Доступность: Тонкий клиент, веб-клиент, сервер, толстый клиент. |
|||
7
regniws
16.01.13
✎
12:37
|
А если открыть форму без передачи параметров
ОткрытьФормуМодально("Справочник.Номенклатура.ФормаВыбора", , ЭлементыФормы.Номенклатура) |
|||
8
ChAlex
16.01.13
✎
12:38
|
В данный момент пока прихожу к более элегантному решению: ставлю для формы автосохранениеданныхвнастроках, и добавляю 2 реквизита: ПоследнийВыбор - сохраняемое значение и БлокироватьВосстановление - не сохраняемый и дальше
&НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) ЭтаФорма.БлокироватьВосстановление=(Параметры.ТекущаяСтрока<>Неопределено); КонецПроцедуры &НаКлиенте Процедура СписокВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка) ЭтаФорма.ПоследнийВыбор=ВыбраннаяСтрока; КонецПроцедуры &НаСервере Процедура ПриЗагрузкеДанныхИзНастроекНаСервере(Настройки) Если НЕ ЭтаФорма.БлокироватьВосстановление И ЗначениеЗаполнено(ЭтаФорма.ПоследнийВыбор) Тогда ЭтаФорма.Элементы.Список.ТекущаяСтрока=ЭтаФорма.ПоследнийВыбор; КонецЕсли; КонецПроцедуры Но блин возникает вопрос нафиг чего-то извращаться, если для этого созданы инструменты!!! Блин куда ни кинь - сплшная "Ж". |
|||
9
ChAlex
16.01.13
✎
12:46
|
(7) - хоть с параметрами, хоть без - один фиг штатно не работает
|
|||
10
ChAlex
16.01.13
✎
13:08
|
(4) проверил: да только при открытии формы из элемента работает восстановление строки. В общем есть жигули и оглобли к ним
|
|||
11
Vertalex
16.01.13
✎
13:41
|
(8) значит не понимаем коцепции :-) если не выходт просто значит так лучше не длать...
|
|||
12
ChAlex
16.01.13
✎
14:02
|
(11) - ага. вот концепцию "контекстный поиск по строке" = "отбор" - я никак не понимаю, и не пойму сколько бы меня не убеждали. Есть контекстный поиск, а есть отбор - одно не заменяет другое. Просто в стиле 1С недодумать до всех мелочей модель, и то что не получается в рамках этой модели, назвать фичей и полетом к марсу.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |