|   |   | 
| 
 | Помогите сконфигурировать схему на СКД | ☑ | ||
|---|---|---|---|---|
| 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 | 
        ... ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЦеныНоменклатуры.СрезПоследних(, ТипЦен = &ТипЦен) КАК ЦеныНоменклатурыСрезПоследних ПО &ТипЦен <> ЗНАЧЕНИЕ(Справочник.ТипыЦенНоменклатуры.ПустаяСсылка) И....
  в параметрах указать типзначения. | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |