![]() |
|
Как в СКД задать сложный отбор | ☑ | ||
---|---|---|---|---|
0
sidalexsandr
07.04.17
✎
12:28
|
Требуется в системе компоновки данных задать отбор по Организации двух видов:
1) указана конкретная организация, тогда отбор по ней 2) не указана организация, тогда отбор отключен и выводится по всем организациям Вопрос: как сделать такой отбор? |
|||
1
catena
07.04.17
✎
12:30
|
Отбор в СКД по-умолчанию так и работает...
|
|||
2
jsmith82
07.04.17
✎
12:31
|
убрать организацию из условия ГДЕ в тексте запроса и выставить на закладке Отбор страницы Настройки
|
|||
3
sidalexsandr
07.04.17
✎
13:14
|
(2) У меня так и установлено. Но когда не указываю организацию отчет пустой.
|
|||
4
jsmith82
07.04.17
✎
13:16
|
(3) Флажок стоит?
|
|||
5
sidalexsandr
07.04.17
✎
13:18
|
(4) Флажок стоит
|
|||
6
PCcomCat
07.04.17
✎
13:20
|
программно снимать флажок, если не заполнено значение.
|
|||
7
sidalexsandr
07.04.17
✎
13:20
|
(4) Спасибо. Всё получилось. Ветку можно закрывать.
|
|||
8
sidalexsandr
07.04.17
✎
13:21
|
(6) Это как?
|
|||
9
PCcomCat
07.04.17
✎
13:30
|
(8) Вот так, например:
Для каждого Параметр из КопияНастроек.Элементы цикл ПараметрСКД = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Параметр.Параметр); ПараметрСКД.Использование = ЗначениеЗаполнено(ПараметрСКД.Значение); КонецЦикла; |
|||
10
sidalexsandr
07.04.17
✎
13:31
|
(9) Куда это писать?
|
|||
11
PCcomCat
07.04.17
✎
13:32
|
На кнопку навешиваешь обработчик, в котором пишешь и потом компонуешь результат.
|
|||
12
sidalexsandr
07.04.17
✎
13:33
|
(11) Спасибо. Где обработчик?
|
|||
13
Михаил Козлов
07.04.17
✎
13:35
|
(9) А если нужно получить данные по незаполненному "измерению"?
|
|||
14
PCcomCat
07.04.17
✎
13:36
|
Точнее вот так:
Для каждого Параметр из КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы цикл ПараметрСКД = ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти(Параметр.Параметр); ПараметрСКД.Использование = ЗначениеЗаполнено(ПараметрСКД.Значение); КонецЦикла; |
|||
15
PCcomCat
07.04.17
✎
13:36
|
(13)В смысле? Не понимаю...
|
|||
16
Михаил Козлов
07.04.17
✎
13:40
|
(15) Ну, например, получить обороты по пустой серии?
|
|||
17
PCcomCat
07.04.17
✎
13:41
|
(16) Всё зависит от частного случая решения задачи.
Вот из того же моего отчета: Если Не ЗначениеЗаполнено(ПараметрСКД.Значение) тогда Если СокрЛП(ПараметрСКД.Параметр)="СписокУчастковПроверкиЗаполненностиДатыГотовности" или СокрЛП(ПараметрСКД.Параметр)="ВариантОтчета" тогда ПараметрСКД.Использование = Истина; Иначе ПараметрСКД.Использование = Ложь; КонецЕсли; КонецЕсли; |
|||
18
PCcomCat
07.04.17
✎
13:43
|
+(17) Я решаю за пользователя, как можно формировать отчет, т.к. знаю, что конкретно можно получить в том или другом случае.
Возможно, есть более изящные решения. Но мне другое не помогало... |
|||
19
Windyhead
07.04.17
✎
13:57
|
(0) А конфа какая ? А то может и не надо это все городить и обойтись быстрым доступом к пользовательским настройкам.
|
|||
20
SleepyHead
гуру
07.04.17
✎
14:08
|
А что так сложно - то? в запросе условие на организацию не накладывать, в СКД сделать отбор по организации.
Если отбор включен, СКД автоматически доработает текст запроса так, чтобы был фильтр по организации. |
|||
21
Windyhead
07.04.17
✎
14:11
|
(20) Все правильно но если еще и конфа на УФ, то и нефиг форму рисовать, достаточно в отборах скд поставить флажок пользовательской настройки и быстрый доступ.
А если там еще и БСП "Варианты отчетов" есть то вообще все красиво будет ))) |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |