Имя: Пароль:
1C
1С v8
Помогите сконфигурировать схему на СКД
,
0 suvolod
 
15.11.12
10:31
Пусть СКД строиться на основе запроса, который привожу ниже в сильно упрощенном виде.

ВЫБРАТЬ
   ТоварыВРезервеНаСкладахОстатки.Номенклатура,
   ТоварыВРезервеНаСкладахОстатки.КоличествоОстаток,
   ЦеныНоменклатурыСрезПоследних.Цена
ИЗ
   РегистрНакопления.ТоварыВРезервеНаСкладах.Остатки КАК ТоварыВРезервеНаСкладахОстатки
       ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних
       ПО ТоварыВРезервеНаСкладахОстатки.Номенклатура = ЦеныНоменклатурыСрезПоследних.Номенклатура
           И ТоварыВРезервеНаСкладахОстатки.ХарактеристикаНоменклатуры = ЦеныНоменклатурыСрезПоследних.ХарактеристикаНоменклатуры

Вопрос в следующем: как-то можно настроить схему (или исходный запрос)таким образом, чтобы, если юзер забыл указать в настройках отчета ТипЦен (имеется ввиду - даже не взвел галку ТипаЦен) - колонка ТипаЦен просто выводилась пустой
)
1 чувак
 
15.11.12
10:32
в СКД сделать соединение в запросе - моветон
2 shamannk
 
15.11.12
10:33
Пользовательское поле.
3 mikecool
 
15.11.12
10:33
(0) поместить в отбор
(1) чего?
4 чувак
 
15.11.12
10:34
(3) Ух ты! Умно сказал, да? :
)
5 suvolod
 
15.11.12
10:34
опечатался, нужно вывести пустой колонку Цена, а не ТипЦен (тип цен - это фильт)
6 Trainee
 
15.11.12
10:34
(1) И давно?

(0) Значение по умолчанию в отборе (если правильно понял).
7 mikecool
 
15.11.12
10:35
(4) ты вообще ничего не сказал
попробуй такое условие
ТипЦен = &ТипЦен ИЛИ &ТипЦен = Значение(Справочник.ТипыЦен.ПустаяСсылка)
8 suvolod
 
15.11.12
10:36
(7)Спс. сейчас испытаю
9 Ork
 
15.11.12
10:37
А почему бы в ПриОткрытии не установить типЦен "по умолчанию"?
10 Trainee
 
15.11.12
10:38
(6) блин, не проснулся. Параметры. Значение по умолчанию.
&ТипЦен = Значение(Справочник.ТипыЦен.ПустаяСсылка) - лучше в СКД не использовать.
11 mikecool
 
15.11.12
10:40
(10) "лучше в СКД не использовать." почему?
12 Ork
 
15.11.12
10:41
+(9)
Типа такого :
ЭтотОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.Элементы.Найти("ТипЦен").Значение = ТипЦен_ДляПоказаВрагам;
13 Goggy
 
15.11.12
10:41
(9) Гениальный юзверь может его просто очистить :)
14 Trainee
 
15.11.12
10:49
(11) Точно страницу учебника не скажу) Но СКД, вроде работает с параметрами лучше ... Например, ДАТАВРЕМЯ(1,1,1,0,0,0) он может просто не понять при Автонастройках, а &ПустаяДата - без проблем.
Вроде, у Хрусталевой где-то было...
15 mikecool
 
15.11.12
10:54
(14) ну я хз, сколько писал - все работает )
16 suvolod
 
15.11.12
10:56
(7). Не получается. При попытке выполнить отчет с отключенной галкой ТипЦен пишет ошибку:

Не задано значение параметра "ТипЦен"
ТипЦен = <<?>>&ТипЦен

На всякий случай: строку условия пишу прямо в настройках вирт. таблицы:
ТипЦен = &ТипЦен
   ИЛИ ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)
17 suvolod
 
15.11.12
10:59
увидел, что пропустил амперсанд, добавил:

ТипЦен = &ТипЦен
  ИЛИ &ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)

... но ошибка та-же
18 mikecool
 
15.11.12
11:01
(16) та не, не выйдет, вспомнил - галка у параметра все равно взведена должна быть
так что - только отбор
19 Ork
 
15.11.12
11:01
(16) Звиздетц. Представил себя на месте компоновщика.

Я бы задымился только определяясь - чего же от меня хотят? Откуда мне взять ТипЦен. Хочешь из &ТипЦен, а хочешь - ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка).

А если оно мне и забесплатно не нать? Тогда ..?
20 КуплюКровать
 
15.11.12
11:03
так че еще не решили? перед формированием программно параметр устанавливайте. если не заполнено то пустая ссылка
21 Trainee
 
15.11.12
11:06
(15) У меня тоже работает. Просто, как-то смотрел хороший код и тоже вопрос задал, почему все через параметры. Получил примерно такой же ответ: быстрее и без ошибок))
Вспомню страницу, напишу больше)
22 Ork
 
15.11.12
11:06
(20) У (0) есть кнопка, которая зеленая и "делает Фсе Фсем". Переопределять ее обработчик ТС влом.
23 mikecool
 
15.11.12
11:08
(19) какой то поток сознания...
есть запрос, который работает, почему компоновщик может на нем "задымиться"?
24 Ork
 
15.11.12
11:10
(23) Вот это может работать :

"пишу прямо в настройках вирт. таблицы:
ТипЦен = &ТипЦен ИЛИ ТипЦен = ЗНАЧЕНИЕ(" ???

У меня нет такого компоновщика.
25 suvolod
 
15.11.12
11:17
(20) Похоже, придется все-таки программно взводить эту галку и присваивать ей ПустаяСсылка, если это забыл сделать юзер. Хотя, конечно, без программной обработки кн. Сформировать было бы интереснее...

Попробовал уже и такой код:

ВЫБОР
   КОГДА &ТипЦен = НЕОПРЕДЕЛЕНО
       ТОГДА ТипЦен = ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка)
   ИНАЧЕ ТипЦен = &ТипЦен
КОНЕЦ

ошибка таже... хотя не понимаю что в этом случае СКД не хватает Неопределено = Неопределено должно врода как дать истину и отработать
26 suvolod
 
15.11.12
11:25
мысли вслух - а ведь с кодом из (25) СКД ругается на

Не задано значение параметра "ТипЦен"
ИНАЧЕ ТипЦен = <<?>>&ТипЦен

... получается, первое условие когда/тогд не выполяется. С чем тогда сравнить отсутствующий параметр &ТипЦен, чтобы отработало первое когда/тогда
27 yurec_k
 
15.11.12
11:28
в закладке параметры,  использование поставь "всегда",
в польз настройках галка пропадет, ошибки не будет даже если зн параметра не заполнено.

но лучше чтоб тот параметр был заполненн
иначе будут неправльно КоличествоОстаток считаться в случае если есть несколько характеристик для одной номенклатуры
28 yurec_k
 
15.11.12
11:48
тьфу в случае если есть несколько типов цен для пары номенклатура, характеристика
29 suvolod
 
15.11.12
11:55
yurec_k, спасибо за наводку. Сейчас потестирую, отпишусь
30 suvolod
 
15.11.12
12:10
Спасибо, работает, но немного странно:
С одной стороны, ТипЦен теперь используется всегда, а значит код из (25) больше не вызывает ошибок и выводит пустую колонку цен, если параметр ТипЦен отключен и неопределен.

А с другой, если, например, выставить в качестве значения этого параметра РозничныеЦены, но сам параметр отключить - он все-равно будет использоваться и заполнит колонку Цен розничными ценами, несмотря на свое отключенное состояние
.
31 Aprobator
 
15.11.12
12:15
... ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО &ТипЦен <> ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка) И....

в параметрах указать типзначения.