|
ЗУП Журнал документов, добавить отбор при открытии формы списка | ☑ | ||
---|---|---|---|---|
0
lg2marvel
11.11.19
✎
12:40
|
Добрый день.
ЗУП 3.1.10. При создании формы журнала прогулов создается параметр отбора: СтруктураПараметровОтбора = Новый Структура(); ЗарплатаКадры.ДобавитьПараметрОтбора(СтруктураПараметровОтбора, "Подразделение", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"), НСтр("ru = 'Подразделение'")); ЗарплатаКадры.ПриСозданииНаСервереФормыСДинамическимСписком(ЭтотОбъект, "Список",, СтруктураПараметровОтбора, "СписокКритерииОтбора"); Не могу придумать как программно присвоить отбор данному параметру, сталкивался кто-то? Подскажите пожалуйста. |
|||
1
lg2marvel
11.11.19
✎
15:25
|
При открытии выполняю следующее:
ДопСтрока = СтрЗаменить(ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра,"Подразделение_",""); ЭтаФорма[ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра] = ЕЕ_Подразделение; ЭтаФорма["Подразделение_Использование_"+ДопСтрока] = истина; ЗарплатаКадрыКлиент.ПараметрОтбораНаФормеСДинамическимСпискомПриИзменении(ЭтотОбъект, ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра); Отбор устанавливается, но чтоб применить отображение на списке нужно снять и поставить галочку ЭтаФорма["Подразделение_Использование_"+ДопСтрока]. Тогда список обновляется. F5 - не помогает. Как обновить список? |
|||
2
lg2marvel
11.11.19
✎
15:49
|
(1) Параметры
ЭтаФорма[ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра] и ЭтаФорма["Подразделение_Использование_"+ДопСтрока] Созданы программно в (0) |
|||
3
ГдеСобака Зарыта
11.11.19
✎
15:58
|
СтруктураПараметровОтбора.Подразделение = Новый ФиксированныйМассив(МассивТвоихПодразделений);
Не уверен, но может подойти |
|||
4
ГдеСобака Зарыта
11.11.19
✎
16:08
|
Извиняюсь за оффтоп. А есть ли способ как-то засунуть в список значение, которое не соответствует отбору? То бишь мне нужен отбор в дин списке, но чтобы один элемент в нем был всегда, независимо от отбора
|
|||
5
lg2marvel
11.11.19
✎
16:13
|
(4) было такое, просто после заполнения списка добавлял необходимое мне значение. Ну или если нужно - то проверять есть ли это значение в списке СписокЗначений.НайтиПоЗначению
|
|||
6
lg2marvel
11.11.19
✎
16:15
|
(3) нет, не то.
СтруктураПараметровОтбора = Новый Структура(); ЗарплатаКадры.ДобавитьПараметрОтбора(СтруктураПараметровОтбора, "ФизическоеЛицо", Новый ОписаниеТипов("СправочникСсылка.ФизическиеЛица"), НСтр("ru = 'Сотрудник'")); ЗарплатаКадры.ДобавитьПараметрОтбора(СтруктураПараметровОтбора, "Подразделение", Новый ОписаниеТипов("СправочникСсылка.ПодразделенияОрганизаций"), НСтр("ru = 'Подразделение'")); мс = Новый Массив; мс.Добавить(УПР_Подразделение); СтруктураПараметровОтбора.Подразделение = Новый ФиксированныйМассив(мс); В дальнейшем выдает ошибку Поле объекта не обнаружено (ТипПараметра) на строку: ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы(ИмяРеквизитаФормы, ОписаниеПараметра.ТипПараметра)); |
|||
7
Максим Нижегородец
11.11.19
✎
16:20
|
Нужно в запрос формирующий динамический список передавать ДВА параметра. Первый БУЛЕВО включающий или отключающий отбор по списку, а второй сам СПИСОК отбора. В большинстве случаев флаг ЛОЖЬ и список не имеет значения. Но если нужен отбор по списку, то флаг ИСТИНА и СПИСОК заполняется нужными значениями.
|
|||
8
ГдеСобака Зарыта
11.11.19
✎
16:27
|
(6) А отладчик что говорит? ИмяРеквизитаФормы? ОписаниеПараметра?
|
|||
9
hhhh
11.11.19
✎
16:33
|
(6) ОписаниеПараметра не то значит
|
|||
10
unenu
11.11.19
✎
16:34
|
(0) там не все так просто, правда типовые механизмы можно докрутить в расширении.
в некоторых формах добавлен типовой универсальных отбор, который встроен в разной степени сложности в отдельных формах. К счастью есть всего три варианта сложности и функционал расширения для каждого позволяет производить манипуляции с универсальным отбором как душе угодно. код приводить лень и некогда, может быть когда нибудь если не забуду и будет мотивация. |
|||
11
unenu
11.11.19
✎
16:36
|
наводка: в универсальном отборе реквизиты формы и элементы формы формируются динамически и имена попадают уиды для уникальности - поиск и модификация того, что вы называли ОписаниеПараметра и есть один из вариантов, остальные два проще
|
|||
12
lg2marvel
11.11.19
✎
16:36
|
(8) В ЭтаФорма.ПараметрыКритерияОтбора (ДанныеФормыЭлементКоллекция) - перечень созданных параметров, здесь их два:
ФизическоеЛицо и Подразделение, для каждого параметра присваивается уникальное при каждом запуске имя: ИмяРеквизитаФормыПараметра "Подразделение_4a14db68xc518x4c36xba90x93f35d9020a1" Строка ИмяРеквизитаФормыПараметраИспользование "Подразделение_Использование_4a14db68xc518x4c36xba90x93f35d9020a1" Строка ИмяЭлементаФормыПараметра "Подразделение_8549f278x5fcax439dxb6b7x0964bc9f8bd1" Строка ИмяЭлементаФормыПараметраИспользование "Подразделение_Использование_8549f278x5fcax439dxb6b7x0964bc9f8bd1" Строка Я беру эти параметры и присваиваю им значения ДопСтрока = СтрЗаменить(ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра,"Подразделение_",""); ЭтаФорма[ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра] = ЕЕ_Подразделение; ЭтаФорма["Подразделение_Использование_"+ДопСтрока] = истина; Затем вызываю обработчик который срабатывает при изменении этих реквизитов: ЗарплатаКадрыКлиент.ПараметрОтбораНаФормеСДинамическимСпискомПриИзменении(ЭтотОбъект, ЭтаФорма.ПараметрыКритерияОтбора[1].ИмяРеквизитаФормыПараметра); В модуле формы он выглядит так: &НаКлиенте Процедура Подключаемый_ПараметрОтбораПриИзменении(Элемент) ЗарплатаКадрыКлиент.ПараметрОтбораНаФормеСДинамическимСпискомПриИзменении(ЭтотОбъект, Элемент.Имя); КонецПроцедуры |
|||
13
lg2marvel
11.11.19
✎
17:41
|
Всем спасибо, вопрос решен переопределением процедуры
ЗарплатаКадрыКлиент.ПараметрОтбораНаФормеСДинамическимСпискомПриИзменении ОписаниеИзменения1 = ЗарплатаКадрыКлиент.ОписаниеИзмененияПараметраОтбораДинамическогоСписка(Форма, ИмяЭлемента1); ОписаниеИзменения1.ЕстьМодификация = истина; ОписаниеИзменения1.Значение = Подразделение; ОписаниеИзменения1.ИзменениеИспользования = истина; ОписаниеИзменения1.ИмяПараметра = "Подразделение"; ОписаниеИзменения1.Использование = истина; ОписаниеИзменения1.Вставить("ОписаниеМодификации",Новый Структура("ИзменениеЗапроса,ИмяМодификации,ИмяПараметра,Модифицировать",истина,"ОтборПоПодразделению","Подразделение",истина)); ЗарплатаКадрыКлиент.УстановитьПараметрДинамическогоСпискаПоОписаниюИзменения(Форма, ОписаниеИзменения1); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |