|
УФ: Отбор и группировка в форме списка | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
16.11.15
✎
13:50
|
Для отбора нашел пример:
&НаСервере Процедура УстановитьОтборПоИнициаторам() ИнициаторФизЛицо = ИнициаторФизЛицо(); СписокПодчиненныхСотрудников = СписокПодчиненныхСотрудников(); Если Не ИнициаторФизЛицо.Пустая() И СписокПодчиненныхСотрудников.НайтиПоЗначению(ИнициаторФизЛицо) = Неопределено Тогда СписокПодчиненныхСотрудников.Добавить(ИнициаторФизЛицо); КонецЕсли; Если СписокПодчиненныхСотрудников.Количество() > 0 Тогда ПараметрОтбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПараметрОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Инициатор"); ПараметрОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ПараметрОтбор.Использование = Истина; // ПараметрОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ПараметрОтбор.ПравоеЗначение = СписокПодчиненныхСотрудников; КонецЕсли; КонецПроцедуры Вызывается в ПриСозданииНаСервере(Отказ, СтандартнаяОбработка) Еще бы группировку по инициаторам (авторам задач)... как? |
|||
1
Горогуля
16.11.15
✎
13:51
|
так же, как и руками, только программно
|
|||
2
Mikhail Volkov
16.11.15
✎
13:54
|
+ Еще желательно, чтобы группировка руководителя 1-я была, а после группировки его подчиненных.
(1) Да, программно при открытии формы. |
|||
3
aleks_default
16.11.15
✎
14:07
|
(2) ты дин. список с отчетом не спутал?
|
|||
4
Timon1405
16.11.15
✎
14:11
|
(0)
&НаКлиенте Процедура СгруппироватьПоКолонке(Знач ИмяКолонкиРевизита) РежимГруппировки = ИмяКолонкиРевизита; Список.Группировка.Элементы.Очистить(); Если НЕ ПустаяСтрока(ИмяКолонкиРевизита) Тогда ПолеГруппировки = Список.Группировка.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных(ИмяКолонкиРевизита); КонецЕсли; КонецПроцедуры &НаКлиенте Процедура СгруппироватьПоВладельцу(Команда) СгруппироватьПоКолонке("Владелец"); КонецПроцедуры |
|||
5
Mikhail Volkov
16.11.15
✎
14:27
|
(4) Спс, работает:
&НаСервере Процедура УстановитьОтборПоИнициаторам() ИнициаторФизЛицо = ИнициаторФизЛицо(); СписокПодчиненныхСотрудников = СписокПодчиненныхСотрудников(); Если Не ИнициаторФизЛицо.Пустая() И СписокПодчиненныхСотрудников.НайтиПоЗначению(ИнициаторФизЛицо) = Неопределено Тогда СписокПодчиненныхСотрудников.Добавить(ИнициаторФизЛицо); КонецЕсли; Если СписокПодчиненныхСотрудников.Количество() > 0 Тогда ПараметрОтбор = Список.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ПараметрОтбор.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Инициатор"); ПараметрОтбор.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке; ПараметрОтбор.Использование = Истина; ПараметрОтбор.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Недоступный; ПараметрОтбор.ПравоеЗначение = СписокПодчиненныхСотрудников; ПолеГруппировки = Список.Группировка.Элементы.Добавить(Тип("ПолеГруппировкиКомпоновкиДанных")); ПолеГруппировки.Поле = Новый ПолеКомпоновкиДанных("Инициатор"); КонецЕсли; КонецПроцедуры До кучи бы сортировку? Например добавлю в список поле Руководитель = СписокПодчиненныхСотрудников.Количество() > 0; чтобы для него 1-я группировка была? |
|||
6
Mikhail Volkov
16.11.15
✎
19:23
|
По руководителю не очень надо. Понадобилось сменить сортировку по дате, сделать по убыванию. Как?
|
|||
7
Mikhail Volkov
17.11.15
✎
04:41
|
С сортировкой разобрался:
УсловиеСортировки = Список.Порядок.Элементы.Добавить(Тип("ЭлементПорядкаКомпоновкиДанных")); УсловиеСортировки.Поле = Новый ПолеКомпоновкиДанных("Дата"); УсловиеСортировки.ТипУпорядочивания = НаправлениеСортировкиКомпоновкиДанных.Убыв; Теперь хотелось, чтобы при открытии формы все группировки были свернуты кроме группировки руководителя. Такое (пожелание пользователя) возможно? |
|||
8
Mikhail Volkov
17.11.15
✎
08:26
|
Элементы.Список.НачальноеОтображениеДерева = НачальноеОтображениеДерева.НеРаскрывать; - работает. Как раскрыть группировку для Инициатор = ПараметрыСеанса.ТекущийПользователь.ФизЛицо ?
|
|||
9
Mikhail Volkov
17.11.15
✎
12:08
|
Как раскрыть только нужную группировку?
|
|||
10
Mikhail Volkov
17.11.15
✎
15:04
|
Похоже в УФ это невозможно, поскольку никому не нужно!? Пользователь открыл форму, и нужную ему группировку... поработал, закрыл программу. В следующий раз открывает программу, форма открывается именно в той группировке, и на той позиции, на которой пользователь закончил работать в прошлый раз.
А пожелание пользователя, чтобы форма всегда открывалась с группировкой, где он инициатор - из серии очередных хотелок. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |