![]() |
![]() |
![]() |
|
Параметры функциональных опций | ☑ | ||
---|---|---|---|---|
0
daringer
24.07.13
✎
12:08
|
Добрый день. Можно ли с помощью параметров функц. опций управлять видимостью дин. списков на форме? Хранение в регистре сведений. Т.е. есть элементы формы список1, список2, список3. В регистре сведений:
ИмяЭлемента - Строка Видимость - Булево. Как связать элементы формы с именем элемента в регистре? Или может быть вообще не правильно мыслю? |
|||
1
Лефмихалыч
модератор
24.07.13
✎
12:14
|
(0) не правильно мыслишь. Связывать надо не реквизиты с регистрами, а реквизиты с опциями
|
|||
2
olegves
24.07.13
✎
12:17
|
(0) например, при хранении ФО в элементе справочника и добавлении реквизита (любого) в эту ФО, то если хотя бы у одного элемента справочника ФО активна, то видимость включится для всех элементов
|
|||
3
daringer
24.07.13
✎
12:37
|
Это понятно. Задача состоит в том, что есть форма, в которой достаточно много динамических списков, которые расположены по закладкам. Так вот при создании формы она открывается достаточно долго. Но нет необходимости загружать сразу все списки, т.к. пользователю может понадобится только одна таблица. По мере перехода по вкладкам списки должны загружаться. Т.о. все списки загрузятся когда пользователь пройдет по всем вкладкам. Делать кучу ФО и констант для каждого элемента думаю не очень хорошо
|
|||
4
daringer
24.07.13
✎
12:39
|
Думаю при создании формы заполнять регистр сведений с именами таблиц и значениями видимости. При переходе по страницам РС будет обновляться
|
|||
5
daringer
24.07.13
✎
12:40
|
Не понятно только как ФО узнает значение видимости для конкретного элемента
|
|||
6
Zamestas
24.07.13
✎
12:43
|
(3) Может создать список уже после перехода на закладку из кода?
|
|||
7
daringer
24.07.13
✎
12:44
|
Пробовал. Геморно, командная панель не понимает основную таблицу, сооветственно остается пустой
|
|||
8
daringer
24.07.13
✎
12:45
|
Пробовал управлять видимостью элемента свойством видимость, но разницы нет. Если список невидим, данные все равно загружаются
|
|||
9
banco
24.07.13
✎
12:47
|
(0) может УстановитьПараметрыФункциональныхОпцийФормы поможет?
|
|||
10
daringer
24.07.13
✎
12:49
|
Может поможет. Я не пойму как этим воспользоваться в моей задаче
|
|||
11
daringer
24.07.13
✎
12:52
|
Структура = Новый Структура;
Для каждого Элемент из Элементы цикл Если Тип(Элемент) = Тип("ТаблицаФормы") тогда Структура.Вставить("ИмяДинСписка",Элемент.Имя); УстановитьПараметрыФункциональныхОпцийФормы(Структура); КонецЕсли; КонецЦикла; |
|||
12
daringer
24.07.13
✎
12:53
|
Добавил в регистр сведений имя одного из элемент, установил значение видимости - не работает.
|
|||
13
daringer
24.07.13
✎
13:00
|
Ну что есть еще мысли уважаемые?
|
|||
14
banco
24.07.13
✎
13:00
|
(10) может так. 1. создаешь ФункцинальнуюОпцию ПоказатьСписок, хранение в ТвойРегистрСведений.Видимость, включаешь твои списки в эту функциональную опцию. 2 создаешь параметр функциональной опции ИмяТаблицы, хранение ТвойРегистрСведений.ИмяЭлемента. ПриСозданииНаСервере в форме УстановитьПараметрыФункциональныхОпцийФормы(Новый Структура("ИмяТаблицы", имясписка));
|
|||
15
daringer
24.07.13
✎
13:01
|
Так у меня так и есть
|
|||
16
daringer
24.07.13
✎
13:08
|
Нужно ли в составе ФС указать мою форму?
|
|||
17
daringer
24.07.13
✎
13:16
|
ну подскажите как мне решить эту задачу?
|
|||
18
daringer
24.07.13
✎
13:30
|
пока решения нет
|
|||
19
olegves
24.07.13
✎
13:41
|
у тебя с логикой не порядок.
Состав формы определяется в кл-серв варианте на сервере ПриСозданииНаСервере а ты хочешь в уже открытой форме менять видимость на закладках. При каждой такой смене у тебя форма будет переезжать на сервер, там пересоздаваться и возвращаться клиенту. Тормоза увеличатся |
|||
20
daringer
24.07.13
✎
13:56
|
Когда тогда можно уменьшить время открытия формы?
|
|||
21
daringer
24.07.13
✎
13:57
|
Дело в том что я не всегда при перемещении по вкладкам буду менять видимость. Только те элементы которые еще небыли видимыми
|
|||
22
banco
24.07.13
✎
13:59
|
(21) делай отдельные формы как в БП3
|
|||
23
daringer
24.07.13
✎
14:02
|
В общем на одной форме выводить много списков и так чтоб форма открывалась быстро не получится как я понял
|
|||
24
banco
24.07.13
✎
14:05
|
(23) видимо разработчики БП3 тоже пришли к такому выводу
|
|||
25
daringer
24.07.13
✎
14:05
|
Как в БП3 неудобно, т.к. когда работаешь с одним списком и хочешь посмотреть отчет, который находится в другой подсистеме при переходе обратно нужно заново искать строку на которой остановился. Так же с отчетами. настроил отбор вывел данные, перешел в другую подсистему потом обратно и заново отчет делать. Пользователям не нравится постоянно прыгать от формы к форме и повторять дейсвтия
|
|||
26
daringer
24.07.13
✎
14:06
|
Сделал им общую форму, но терь не нравится что она долго грузится
|
|||
27
banco
24.07.13
✎
14:15
|
(25) в БП3 я имел ввиду документы Реализация и Поступление, где в последнем релизе добавили отдельные формы для товаров, услуг. а чтоб при переходе на другую подсистему не закрывался текущий список или отчет, можно включить режим открытия форм в закладках.
|
|||
28
daringer
24.07.13
✎
14:23
|
Этот режим "съедает" все свободное пространство. Пользователи работают за ноутбуками 15". А для менджеров нужно выводить достаточно много инфы, которая ну не как не умещается. Монитор нужен 24"))). Ладно. Спасибо всем. Откажусь от общей формы. Жаль что только времени на нее потратил оч. много.
|
|||
29
Enders
24.07.13
✎
14:25
|
На сколько я понимаю то динамические списки грузятся в момент
"При создании на сервере". Как вариант если они с произвольным запросом, то в запросе применить какой-то параметр так что б результат запроса был пустым. В момент активизации нужной вкладки устанавливаешь нужный реквизит ДС и обновляешь этот список. &НаСервере Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Список.Параметры.УстановитьЗначениеПараметра("Задача", рЗадачаОбращение); Список.Параметры.УстановитьЗначениеПараметра("ПустойСписок", Истина); КонецПроцедуры &НаКлиенте Процедура ПолучитьЗадачи(Команда) рЗадачаОбращение = ПолучитьДокОбращения(); Список.Параметры.УстановитьЗначениеПараметра("Задача", рЗадачаОбращение); Список.Параметры.УстановитьЗначениеПараметра("ПустойСписок", Ложь); Элементы.Список.Обновить(); КонецПроцедуры |
|||
30
olegves
24.07.13
✎
14:40
|
(29) +100 хорошая идея
|
|||
31
daringer
24.07.13
✎
14:55
|
Да идея рабочая. Спасибо. Сам думал как сделать пустой запрос изначально, пробывал первые 0, но в дин. списке "первые" не работает. А как тогда при повторном переключении на вкладку не обновлять элемент?
|
|||
32
daringer
24.07.13
✎
14:56
|
Можно хранить информацию о том что список загружен в реквизите формы, но может быть есть какой нить более красивый способ?
|
|||
33
Enders
24.07.13
✎
15:02
|
Хм... есть вариант проверять текущие установленные параметры... но не знаю на сколько рабочий)
То есть при активизации получать Текущий установленый параметр ПустойСписок, если он истина, тогда устанавливаем в ложь и обновляем, иначе ничего не делаем. |
|||
34
Enders
24.07.13
✎
15:13
|
Попробовал, вроде как срабатывает.
НашПарам = Список.Параметры.Элементы.Найти("ПустойСписок"); Если НашПарам.Значение Тогда |
|||
35
olegves
24.07.13
✎
15:31
|
(31) в запрос дин списка добавляешь условие:
Где &ТвойПараметр В ПриСозданииНаСервере устанавливаешь ТвойПараметр=Ложь, а при активации закладки ТвойПараметр=Истина, возможно, еще придется добавить: Элементы.ТвойСписок.Обновить() |
|||
36
daringer
24.07.13
✎
15:35
|
Я понял. Спасибо умные люди!
|
|||
37
daringer
24.07.13
✎
15:39
|
только в условие добавил
ГДЕ ИСТИНА<>&ПустойСписок |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |