|
Как открыть форму списка с включенным отбором? | ☑ | ||
---|---|---|---|---|
0
Sky69
05.03.13
✎
11:20
|
Пытаюсь открыть форму списка спр. "КатегорииОбъектов", при этом нужно,чтобы список открывался отфильтрованным по полю "НазначениеКатегории". Значение беру из другого списка "ПланВидовХарактеристикСсылка.НазначенияСвойствКатегорийОбъектов", присваиваю его переменной ПолеВвода2.Ссылка. Процедура некорректно работает. Мелькает отфильтрованный список, потом появляется полный список значений. как это исправить?
Процедура ПолеВвода3НачалоВыбора(Элемент, СтандартнаяОбработка) СтандартнаяОбработка = Ложь; СсылкаНазначения = ПолеВвода2.Ссылка; Если Не СсылкаНазначения.Пустая() Тогда ФормаПодчиненныхДоговоров = Справочники.КатегорииОбъектов.ПолучитьФормуСписка(); ФормаПодчиненныхДоговоров.СправочникСписок.Отбор.НазначениеКатегории.Установить(СсылкаНазначения, истина); ФормаПодчиненныхДоговоров.Открыть(); КонецЕсли; КонецПроцедуры |
|||
1
ОбычныйЧеловек
05.03.13
✎
11:21
|
Поменяй местами:
ФормаПодчиненныхДоговоров = Справочники.КатегорииОбъектов.ПолучитьФормуСписка(); ФормаПодчиненныхДоговоров.Открыть(); ФормаПодчиненныхДоговоров.СправочникСписок.Отбор.НазначениеКатегории.Установить(СсылкаНазначения, истина); |
|||
2
Sky69
05.03.13
✎
11:25
|
(1) не сработало
|
|||
3
Sky69
05.03.13
✎
11:26
|
такое ощущение,что фильтр включается и сразу отключается
|
|||
4
Тролль главный
05.03.13
✎
11:26
|
думаю есть еще код в самой открываемой форме, надо его смотреть
|
|||
5
ОбычныйЧеловек
05.03.13
✎
11:26
|
(2) Не верю (с)
|
|||
6
CepeLLlka
05.03.13
✎
11:27
|
Пользователь = ПараметрыСеанса.ТекущийПользователь;
//Уставка отбора по владельцу если Роль текущего пользователя = Бухгалтер. //Если РольДоступна("Бухгалтер") Тогда // СвязьВыбораАвтор = Новый СвязьПараметраВыбора("Отбор.Владелец", "Пользователь"); // НовыйМассив = Новый Массив(); // НовыйМассив.Добавить(СвязьВыбораАвтор); // ФиксМассивСвязьАвтор = Новый ФиксированныйМассив(НовыйМассив); // Элементы.ОтборОрганизация.СвязиПараметровВыбора = ФиксМассивСвязьАвтор; |
|||
7
CepeLLlka
05.03.13
✎
11:28
|
Первый раз плохо получилось.. повторю..
Пользователь = ПараметрыСеанса.ТекущийПользователь; Уставка отбора по владельцу если Роль текущего пользователя = Бухгалтер. Если РольДоступна("Бухгалтер") Тогда СвязьВыбораАвтор = Новый СвязьПараметраВыбора("Отбор.Владелец", "Пользователь"); НовыйМассив = Новый Массив(); НовыйМассив.Добавить(СвязьВыбораАвтор); ФиксМассивСвязьАвтор = Новый ФиксированныйМассив(НовыйМассив); Элементы.ОтборОрганизация.СвязиПараметровВыбора = ФиксМассивСвязьАвтор; |
|||
8
ОбычныйЧеловек
05.03.13
✎
11:33
|
Sky69 так отбор же у тебя должен идти по текущей строке формы списка...логично, что он у тебя отключается...
|
|||
9
Sky69
05.03.13
✎
11:34
|
(7) дело в том, что задача стоит открыть отфильтрованную форму, а не просто список значений получить.
|
|||
10
Sky69
05.03.13
✎
11:34
|
(8) как это?
|
|||
11
ОбычныйЧеловек
05.03.13
✎
11:36
|
(10) найди в форме открываемого справочнике код:
Отбор.НазначениеКатегории.Установить(.... и посмотри из какой процедуры он вызывается - скорее всего и процедуры .....ПриАктивизацииСтроки( |
|||
12
ОбычныйЧеловек
05.03.13
✎
11:36
|
+11 скорее всего ИЗ процедуры
|
|||
13
Sky69
05.03.13
✎
11:38
|
(12) есть такая процедура.
Процедура СписокНазначенияСвойствКатегорийОбъектовПриАктивизацииСтроки(Элемент) СправочникСписок.Отбор.НазначениеКатегории.Установить(Элемент.ТекущаяСтрока); КонецПроцедуры |
|||
14
Sky69
05.03.13
✎
11:39
|
(12) ее надо как то обойти или отключить?
|
|||
15
ОбычныйЧеловек
05.03.13
✎
11:40
|
(14)спозиционируйся на том элементе по которую ставишь отбор
|
|||
16
Sky69
05.03.13
✎
11:40
|
я почему то думала, если поставить СтандартнаяОбработка = Ложь; тогда она отключается.
|
|||
17
Odavid
05.03.13
✎
11:41
|
Вообще - фильтр на форму ставится в ПриОткрытии (ПередОткрытием).
Но вы продолжайте, продолжайте :) |
|||
18
notebug
05.03.13
✎
11:45
|
(16) стандартнаяобработка = Ложь будет еще подразумевать, что вам нужно будет в поле ввода вернуть выбранное значение.
Вот эти три строчки кода успешно отрабатывают: Если НЕ ЗначениеЗаполнено(Назначение) Тогда Возврат; КонецЕсли; СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.КатегорииОбъектов.ПолучитьФормуВыбора(); Отбор = ФормаВыбора.СправочникСписок.Отбор; Отбор.НазначениеКатегории.Установить(Назначение, Истина); ФормаВыбора.Открыть(); Мое мнение - открывать форму модально и возвращать результат : Категории = ФормаВыбора.ОткрытьМодально(); |
|||
19
ОбычныйЧеловек
05.03.13
✎
11:48
|
(16) как-то так:
ФормаПодчиненныхДоговоров=Справочники.КатегорииОбъектов.ПолучитьФормуСписка(); ФормаПодчиненныхДоговоров.Открыть(); ФормаПодчиненныхДоговоров.ЭлементыФормы.СписокНазначенияСвойствКатегорийОбъектов.ТекущаяСтрока=СсылкаНазначения; |
|||
20
Odavid
05.03.13
✎
11:52
|
(19) это вы так в 1С на строчку "спозиционировались"? :)
|
|||
21
ОбычныйЧеловек
05.03.13
✎
11:57
|
(20) ага спозиционировался :) какая задача - такое и решение.
|
|||
22
notebug
05.03.13
✎
12:02
|
нет ничего проще, чем
ОткрываемаяФорма.ЭлементыФормы.СправочникСписок.ВосстанавливатьТекущуюСтроку = Истина; ОткрываемаяФорма.ОткрытьМодально(); |
|||
23
notebug
05.03.13
✎
12:03
|
(0) в чем проблема вообще? открыть отфильтрованный список? спозиционироваться при повторном открытии? так и запутать недолго...
|
|||
24
Sky69
05.03.13
✎
13:17
|
(18) спасибо
|
|||
25
Sky69
05.03.13
✎
13:29
|
я оставила только эту часть, но из формы выбора не выбираются значения.
СсылкаНазначения = ПолеВвода2.Ссылка; Если НЕ ЗначениеЗаполнено(СсылкаНазначения) Тогда Возврат; КонецЕсли; СтандартнаяОбработка = Ложь; ФормаВыбора = Справочники.КатегорииОбъектов.ПолучитьФормуВыбора(); Отбор = ФормаВыбора.СправочникСписок.Отбор; Отбор.НазначениеКатегории.Установить(СсылкаНазначения, Истина); ФормаВыбора.Открыть(); |
|||
26
Sky69
05.03.13
✎
13:32
|
все сделала
|
|||
27
Sky69
05.03.13
✎
16:10
|
что то косяк вылезает. не дает он все таки выбрать элемент списка, видимо из-за того,что СтандартнаяОбработка = Ложь;
|
|||
28
notebug
06.03.13
✎
11:08
|
(27) открывайте форму модально и возвращайте выбранный вариант
Например: НазваниеВашегоРеквизитаКатегория = ФормаВыбора.ОткрытьМодально(); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |