Имя: Пароль:
1C
1С v8
Необязательный параметр в запросе для СКД
0 ЭЦ
 
07.10.13
12:01
ГОСПОДА !
Имеется запрос в СКД
требуется чтобы параметр &ПОДР был не обязательным. т.е. при не заполненном значении выводились сотрудники всех подразделений.
Прошу подсказать как это записать.
Спасибо
//--------------------------------------
ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник,
    &ПериодНач КАК Период
ПОМЕСТИТЬ ВТ_СОТР
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ПериодНач, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
НЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
И (РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ (&ПОДР))

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник,
    РаботникиОрганизаций.Период
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
РаботникиОрганизаций.Период МЕЖДУ &ПериодНач И &ПериодКон
И (НЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))
    И РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&ПОДР)
1 Defender aka LINN
 
07.10.13
12:03
Как же вы зае...
Это называется ОТБОР, а не параметр.
2 Naumov
 
07.10.13
12:05
убираешь из запроса этот параметр, а на закладке "компоновка-условия" добавляй поля с необязательными отборами.
Эти поля будут доступны для настройки в пользовательском режиме, их можно будет не учитывать.
3 palpetrovich
 
07.10.13
12:05
РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ПериодНач, {ПодразделениеОрганизации = &Подр}) КАК РаботникиОрганизацийСрезПоследних
4 DexterMorgan
 
07.10.13
12:11
(2) Ну нафига?

(0) убери его вообще из запроса и добавь в настройках схемы как отбор. Скд умнее тебя, она знает что такое параметры вирт таблицы
5 ЭЦ
 
07.10.13
12:14
(1) Прошу пояснить мысль по отборы. Где эти отборы определять.
(2) "Компоновка-условия" это я так понимаю в конструкторе запроса
6 Defender aka LINN
 
07.10.13
12:16
(5) Именно там
7 NickOmsk
 
07.10.13
12:16
стаж 7 лет, однако
8 Naumov
 
07.10.13
12:20
(7) И что?
9 NickOmsk
 
07.10.13
12:22
ни-че-го
10 ЭЦ
 
07.10.13
12:24
Рекомендация Palpetrovich -а прокатила
11 ЭЦ
 
07.10.13
12:24
Щас попробуем с закладкой Условия разобраться
12 roman52
 
07.10.13
12:26
ежели не через СКД, то

ВЫБОР
КОГДА &ПОДР=ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка)
  ТОГДА ИСТИНА
ИНАЧЕ
  РаботникиОрганизаций.ПодразделениеОрганизации В ИЕРАРХИИ(&ПОДР)
КОНЕЦ
13 Defender aka LINN
 
07.10.13
12:28
(12) За такое надо на принудительную пересадку рук отправлять
14 roman52
 
07.10.13
12:30
(13) за НЕ использование СКД?
15 ЭЦ
 
07.10.13
12:30
(12) Не уверен что невыбраный параметр = ПустаяСсылка
16 roman52
 
07.10.13
12:31
(15) &ПОДР же будет заполняться из контрола на форме?
17 ЭЦ
 
07.10.13
12:37
Да у Palpetrovich-а СКД пустую ссылку интерпретирует как ВСЕ ПОДРАЗДЕЛЕНИЯ
18 DexterMorgan
 
07.10.13
13:02
(6) Объясни, плз, зачем в данном случае указывать необязательный параметр на закладке компоновка? Не проще ли пользователю самому предоставить выбирать нужный ему отбор?
19 ЭЦ
 
07.10.13
13:05
(4) Убрал из запрса. Пытаюсь добавить как отбор.
СКД->Настройки->Отбор-> А тут в доступных полях нет никаких параметров виртуальной таблицы
20 ЭЦ
 
07.10.13
13:08
(18) У пользователя вирт таблица "СрезПоследних" не доступна - поэтому
21 ЭЦ
 
07.10.13
13:09
тут же два запроса объединяются с одним значением параметра
22 Defender aka LINN
 
07.10.13
13:13
(14) Не обязательно СКД. Но если нужен отбор - то и делай, ять, отбор, платформа способна условия в запросе проставлять в разы ловчее, чем средний одинэснег.
(19) А что ты сделал, чтобы было?
23 catena
 
07.10.13
13:16
А ничего, что условие на подразделение в виртуальной таблице и на выборку в данном случае дадут абсолютно разные результаты?
24 ЭЦ
 
07.10.13
13:17
(22) Да я собственно только что убрал &ПОДР из запроса. Если его не убирать тогда он и в доступных полях отбора появляется
25 ЭЦ
 
07.10.13
13:18
(23) Щас это пока не важно -о другом спич
26 Defender aka LINN
 
07.10.13
13:36
(23) И?
27 ДемонМаксвелла
 
07.10.13
13:42
(24) флажок "Обязательное поле" попробуй поставить
28 catena
 
07.10.13
13:53
(26)Да нет, просто в ракурсе (0) и (3) обратила на это внимание.
29 ЭЦ
 
07.10.13
14:07
(27) Подозреваю что Подразделение надо в поля выборки переносить а на него уже отбор накладывать, причем в пользовательском режиме :
//--------------------------------------

ВЫБРАТЬ РАЗЛИЧНЫЕ
    РаботникиОрганизацийСрезПоследних.Сотрудник,
РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации,//!!
    &ПериодНач КАК Период
ПОМЕСТИТЬ ВТ_СОТР
ИЗ
    РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ПериодНач, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
НЕ РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение)
И (РаботникиОрганизацийСрезПоследних.ПодразделениеОрганизации В ИЕРАРХИИ (&ПОДР))

ОБЪЕДИНИТЬ

ВЫБРАТЬ
    РаботникиОрганизаций.Сотрудник,
РаботникиОрганизацийСрез.ПодразделениеОрганизации,//!!
    РаботникиОрганизаций.Период
ИЗ
    РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
ГДЕ
РаботникиОрганизаций.Период МЕЖДУ &ПериодНач И &ПериодКон
И (НЕ РаботникиОрганизаций.ПричинаИзмененияСостояния = ЗНАЧЕНИЕ(Перечисление.ПричиныИзмененияСостояния.Увольнение))
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн