|
Как установить отбор на реквизит типа дата "Между" в динамическом списке? | ☑ | ||
---|---|---|---|---|
0
al_zzz
23.08.14
✎
17:31
|
Пытаюсь сделать так:
&НаСервере Процедура УстановитьПериодОтбора() ЭлементОтбора = ""; Для н = 0 По Бронирования.Отбор.Элементы.Количество()-1 Цикл ЭлементОтбора = Бронирования.Отбор.Элементы[н]; Если СокрЛП(Бронирования.Отбор.Элементы[н].ЛевоеЗначение) = "Период" Тогда Прервать; Иначе ЭлементОтбора = ""; КонецЕсли; КонецЦикла; Если ЭлементОтбора = "" Тогда ГруппаОтбора = Бронирования.Отбор.Элементы.Добавить(Тип("ГруппаЭлементовОтбораКомпоновкиДанных")); ГруппаОтбора.ИдентификаторПользовательскойНастройки = "Период"; ГруппаОтбора.ТипГруппы = ТипГруппыЭлементовОтбораКомпоновкиДанных.ГруппаИ; ЭлементОтбораН = Бронирования.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораН.Родитель = ГруппаОтбора; ЭлементОтбораН.ИдентификаторПользовательскойНастройки = "НачалоПериода"; ЭлементОтбораН.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Старт"); ЭлементОтбораН.ВидСравнения = ВидСравненияКомпоновкиДанных.БольшеИлиРавно; ЭлементОтбораН.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный; ЭлементОтбораК = Бронирования.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); ЭлементОтбораК.Родитель = ГруппаОтбора; ЭлементОтбораК.ИдентификаторПользовательскойНастройки = "КонецПериода"; ЭлементОтбораК.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Старт"); ЭлементОтбораК.ВидСравнения = ВидСравненияКомпоновкиДанных.МеньшеИлиРавно; ЭлементОтбораК.РежимОтображения = РежимОтображенияЭлементаНастройкиКомпоновкиДанных.Обычный; Иначе ЭлементОтбораН = Бронирования.Отбор.Элементы["НачалоПериода"]; ЭлементОтбораК = Бронирования.Отбор.Элементы["КонецПериода"]; КонецЕсли; ЭлементОтбораН.ПравоеЗначение = ДатаОтбораНачало; ЭлементОтбораК.ПравоеЗначение = ДатаОтбораОкончание; //НастройкаПериода = Элементы.ДокументыПоКассе.Период; //НастройкаПериода.Вариант = ВариантСтандартногоПериода.ПроизвольныйПериод; //НастройкаПериода.ДатаНачала = ДатаОтбораНачало; //НастройкаПериода.ДатаОкончания = ДатаОтбораОкончание; //Элементы.ДокументыПоКассе.Обновить(); КонецПроцедуры // УстановитьПериодОтбора() Ругается на присвоение родителя элементу. Подскажите, как правильно делать сие. |
|||
1
zulu_mix
23.08.14
✎
17:36
|
на клиенте
|
|||
2
al_zzz
23.08.14
✎
17:46
|
(1)А можно поподробнее или пример(ссылку)?
Я только это нашел: http://1c-uroki.ru/articles/1C_otbor_v_dinamicheskom_spiske , но так не работает у меня. |
|||
3
ShoGUN
23.08.14
✎
17:59
|
(2) ЭлементОтбора.Родитель - только чтение, пример некорректный. Чтобы добавить вложенный в группу элемент, добавляй его не на верхний уровень, а в соответствующую группу:
ЭлементОтбораН = ГруппаОтбора.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных")); |
|||
4
al_zzz
23.08.14
✎
18:11
|
(3) Так получилось! Спасибо!
А как-то тможно обратиться к элементу отбора по идентификатору или индексу, без перебора? |
|||
5
ShoGUN
23.08.14
✎
18:17
|
(4) Да, индексация с 0, как обычно - через квадратные скобки. Но есть две проблемы: 1)поскольку это дерево, то напрямую к определенному вложенному элементу обратиться нельзя, сначала надо получить соответствующую группу. 2)При перемещении элементов индексы меняются, а перемещение можно сделать не только программно, но и интерактивно.
|
|||
6
milan
23.08.14
✎
18:45
|
(4) юзай функции общих модулей из типовых, там все есть
|
|||
7
al_zzz
23.08.14
✎
19:07
|
(6) Не понял, как тут юзать функции типовых. Конфа - УНФ.
Пример блока, который мне нужен, взял из журнала "Документы по кассе", только там используется Период(отбор накладывается на дату документа), а у меня свой реквизит. Есть ещё такая функция: УправлениеНебольшойФирмойКлиентСервер.УстановитьЭлементОтбораСписка(ОказанияУслуг, "СостояниеДокумента", Статус, Использование); но там, видимо, только равенство. Интересует, как на клиенте установить отбор, такой, как у меня - этот как-то медленно отрабатывает. |
|||
8
ShoGUN
23.08.14
✎
19:15
|
(7) Ровно то же самое - делай на клиенте.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |