|
|
|
Как в СКД задать сложный отбор | ☑ | ||
|---|---|---|---|---|
|
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) Все правильно но если еще и конфа на УФ, то и нефиг форму рисовать, достаточно в отборах скд поставить флажок пользовательской настройки и быстрый доступ.
А если там еще и БСП "Варианты отчетов" есть то вообще все красиво будет ))) |
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |