Имя: Пароль:
1C
1С v8
СКД: Ограничение доступности параметров
0 shamannk
 
24.08.11
10:04
В запросе написал ... Где Товар = &Товар...  В параметрах стоит ента галка. Товар я нигде не указываю и запрос нормально отрабатывает стоит галку снять не указать товар и ошибка (не указан товар). Вопрос: Можно ли не программно сделать так (написать что то в выражение или еще куда) что если товар у указан то запрос с этим параметром а если нет то ограничение доступности?
1 Stepa86
 
24.08.11
10:10
Может фильтровать то лучше отбором?
2 lxs
 
24.08.11
10:10
(0) не используй параметры
3 lxs
 
24.08.11
10:10
(1) +1
4 OnCheck
 
24.08.11
10:12
хороший вопрос присоединяюсь
(1) а можно ли вкл/выкл отбор если установлен или не установлен параметр.
5 ДемонМаксвелла
 
24.08.11
10:12
Разные запросы в зависимости от условия
6 OnCheck
 
24.08.11
10:13
(5) т.е. чтобы пользователь сам выбирал запросы в настройках СКД?
7 Stepa86
 
24.08.11
10:14
(4) Компоновщик можно полностью программно создать и настроить, тока геморно слегка
8 ДемонМаксвелла
 
24.08.11
10:14
(4) можно. например, при открытии отчета устанавливать отбор
9 ДемонМаксвелла
 
24.08.11
10:16
(5) Не увидел СКД в названии темы. Хотя всё равно можно в коде запрос компоновщику указать
10 ДемонМаксвелла
 
24.08.11
10:17
через источник данных скажем
11 shamannk
 
24.08.11
10:17
(1) Нет не лучше
(2) -1 Очень нужно
А если продублировать параметры одним поставить ограничение и указать в выражение другие параметры без ограничения?
12 ДемонМаксвелла
 
24.08.11
10:17
но лучше отбор СКД
13 ДемонМаксвелла
 
24.08.11
10:18
если запрос выполняется быстро конечно
14 OnCheck
 
24.08.11
10:19
(7) Тогда надо подменять кнопку сформировать. И настройки СКД убирать от пользователя.
(9) все равно через код...
кстати, если через предопределенки ТП параметров рулить настройками компоновщика, т.е. вкл или выкл отбор?
15 ДемонМаксвелла
 
24.08.11
10:21
А ещё есть фигурные скобки в запросе СКД. Почитай про них.
16 Стальная Крыса
 
24.08.11
10:21
я делаю через вложенные схемы:
запрос1 - в схеме1
запрос2 - в схеме2

Вариант1: схема1
Вариант2: схема2

ну а пользователь сам решает - какой вариант пользовать
17 OnCheck
 
24.08.11
10:24
(15) {}?
(16) а может проще тогда настройки СКД сохранять? Пусть пользователь сам подгружает настройки, но они бояться ходить в настройки СКД. Или ты как то на форму переключатель между схемами кладешь. А если параметров не 1 а 2 или 3 то сколько схем будешь реализовывать?
18 lxs
 
24.08.11
10:24
(11) Ты хочешь отхватить геморра из-за одного единственного параметра, который можно заменить отбором. Я валяюсь. "Пилите, Шура, пилите.."©
19 OnCheck
 
24.08.11
10:25
(11) да, действительно, чем не устраивает отбор?
20 ДемонМаксвелла
 
24.08.11
10:26
(17) да {} :)
21 OnCheck
 
24.08.11
10:29
(20) СКД точно их чувствует, а то в конструкторе СКД под них нет места а вот в конструкторе запроса есть, при чем если из программного модуля его вызывать.!?
22 OnCheck
 
24.08.11
10:32
+(21) Построитель запроса, так он называется.
23 Стальная Крыса
 
24.08.11
10:32
(17) Вариант - штатный термин в СКД, и на форме отчета выбор Варианта - тоже штатная операция.
зы. "Все уже сделано до нас..."
24 shamannk
 
24.08.11
10:32
(18) (19) Всегда начинаю с простого а то как сложное появляется то все разбегаются. Отбором нельзя так он действует на весь запрос. В запросе я обираю из рег.сведения где в одни измерения пишут разные данные. как то так
25 ДемонМаксвелла
 
24.08.11
10:33
(20)(21) их можно использовать в параметрах виртуальных таблиц запросов СКД и не только в параметрах по моему
26 ДемонМаксвелла
 
24.08.11
10:35
(24) запрос в студию. И таблицу, желаемую на выходе
(0) Пустой товар это тоже товар. Ну не выведет ничего, но ведь так и надо как я понял?
27 OnCheck
 
24.08.11
10:35
(23)(25) спасибо, интересно, буду копать
28 OnCheck
 
24.08.11
10:39
(24) т.е. один регистр отфильтрованный, а другой неотфильтрованный, еще и рулить этим фильтром можно, это нормально с предметной областью пересекается?
29 shamannk
 
24.08.11
10:40
ВЫБРАТЬ
   СУД_ЗначенияПоказателей.Счет КАК Условие,
   СУД_ЗначенияПоказателей.Элемент КАК Договор,
   СУД_ЗначенияПоказателей.Аналитика1 КАК ЦКО,
   СУД_ЗначенияПоказателей.Аналитика2 КАК СтатьяПотребности,
   СУД_ЗначенияПоказателей.Аналитика3 КАК СтатьиБДПС,
   СУД_ЗначенияПоказателей.Аналитика4 КАК Валюта,
   СУД_ЗначенияПоказателей.Значение,
   СУД_ЗначенияПоказателей.ДопЗначение1,
   СУД_ЗначенияПоказателей.ДопЗначение2 КАК ЦКООтветное,
   СУД_ЗначенияПоказателей.ДопЗначение3 КАК СтатьяПотребностиОтветная,
   СУД_ЗначенияПоказателей.ДопЗначение4 КАК СтатьяБДПСОтветная,
   СУД_ЗначенияПоказателей.Дата,
   СУД_ЗначенияПоказателей.Регистратор
ИЗ
   РегистрСведений.СУД_ЗначенияПоказателей КАК СУД_ЗначенияПоказателей
ГДЕ
   СУД_ЗначенияПоказателей.Элемент В
           (ВЫБРАТЬ
               СУД_ЗначенияПоказателей.Элемент
           ИЗ
               РегистрСведений.СУД_ЗначенияПоказателей.СрезПоследних КАК СУД_ЗначенияПоказателей
           ГДЕ
               СУД_ЗначенияПоказателей.Элемент.ЭтоГруппа = ЛОЖЬ
               И (СУД_ЗначенияПоказателей.Аналитика1 = &Условие1)
                   И СУД_ЗначенияПоказателей.Аналитика2 = &Условие2
                   И СУД_ЗначенияПоказателей.Аналитика3 = &Условие3)
           СГРУППИРОВАТЬ ПО
                       СУД_ЗначенияПоказателей.Элемент)
30 lxs
 
24.08.11
10:43
(29) ты пробовал выполнять этот запрос с отбором в скд без параметров?
31 ДемонМаксвелла
 
24.08.11
10:44
Предлагаю использовать не ГДЕ, а условие в срезе последних. Всё, убежал работать.
32 OnCheck
 
24.08.11
10:46
почему бы сразу к срезупоследних не обратиться?
33 shamannk
 
24.08.11
10:47
Хм (11) Работает!!!
34 shamannk
 
24.08.11
10:49
(33) + но с одним И
35 shamannk
 
24.08.11
10:50
(32) СрезПоследних ( Измерение1 = &Условие1, Измерение2 = &Условие2,Измерение3 = &Условие3) Так?
36 OnCheck
 
24.08.11
10:57
(35) не уверен с синтаксисом, но смысл в том что зачем обворачивать запрос к ВТ срез последних запросом к самому регистру?
37 lxs
 
24.08.11
11:24
(33) Что работает-то? Результат запроса тот же? И кстати обрати внимание на (36).
38 shamannk
 
24.08.11
12:12
ИЗ
               РегистрСведений.СУД_ЗначенияПоказателей.СрезПоследних (,{Аналитика1 =  &ЦКО}{Аналитика2 = &СтатьяПотребности}{Аналитика3 = &СтатьиБДПС}) КАК СУД_ЗначенияПоказателей Пишу так выводит без отбора