| 
    
        
     
     | 
    
    
  | 
v7: Выбор когда иначе если конецесли в v77 | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        VovkaBo    
     06.04.12 
            ✎
    11:54 
 | 
         
        Приветствую.
  
        Миллион лет не работал с семеркой, а тут понадобилось. Можно ли в семерке в запросе выбирать поля, используя конструкция ВЫБОР КОГДА ИНАЧЕ ЕСЛИ КОНЕЦЕСЛИ, по типу как в 8-ке? И вообще, как можно выбрать то или иное значение в поле в зависимости от моего условия? Спасибо :)  | 
|||
| 
    1
    
        Guk    
     06.04.12 
            ✎
    11:55 
 | 
         
        можно. только надо будет ВК подцепить...     
         | 
|||
| 
    2
    
        zxcvb    
     06.04.12 
            ✎
    12:00 
 | 
         
        Можно. Проверяй еще условие да выбирай или нет.     
         | 
|||
| 
    3
    
        mikecool    
     06.04.12 
            ✎
    12:00 
 | 
         
        читаем описание функция() и может быть достаточно     
         | 
|||
| 
    4
    
        zxcvb    
     06.04.12 
            ✎
    12:08 
 | 
         
        Автор наверное удивился...     
         | 
|||
| 
    5
    
        VovkaBo    
     06.04.12 
            ✎
    12:13 
 | 
         
        (4) Не, пытаюсь осмыслить и применить советы. Направление размышления понял :) Хотя выглядит геморно :)     
         | 
|||
| 
    6
    
        VovkaBo    
     06.04.12 
            ✎
    12:14 
 | 
         
        В общем-то, мне нужно так:
  
        Если Клиент.Настройка = 1 Тогда взять Сумму Иначе взять 0 Вот так :)  | 
|||
| 
    7
    
        zxcvb    
     06.04.12 
            ✎
    12:29 
 | 
         
        (6)Ну тут еще варианты вон предлагают... Может элегантнее можно.     
         | 
|||
| 
    8
    
        andrewks    
     06.04.12 
            ✎
    12:35 
 | 
         
        если штатно - через внешнюю функцию. только тормозить будет     
         | 
|||
| 
    9
    
        povar    
     06.04.12 
            ✎
    12:37 
 | 
         
        можно использовать 1срр     
         | 
|||
| 
    10
    
        aka AMIGO    
     06.04.12 
            ✎
    12:38 
 | 
         
        не применял никогда в черном ?(,,)
  
        вот интересно, сработает? :)  | 
|||
| 
    11
    
        zxcvb    
     06.04.12 
            ✎
    12:43 
 | 
         
        (10) в ? - черный сработает, а ? в черном - что-то не врублюсь куда вставить...     
         | 
|||
| 
    12
    
        aka AMIGO    
     06.04.12 
            ✎
    12:46 
 | 
         
        Условие (Перем=?(,,))
  
        может так :)  | 
|||
| 
    13
    
        G-Re    
     06.04.12 
            ✎
    12:49 
 | 
         
        Условие (Клиент.Настройка=1);     
         | 
|||
| 
    14
    
        viktor_vv    
     06.04.12 
            ✎
    12:58 
 | 
         
        Может так
  
        |Функция МояСумма = Сумма(ОписаниеПеременнойСуммы) Когда (Клиент.Настройка = 1); или Если Можно достучаться |Настройка = Справочник.Клиенты.Настройка ; |Функция МояСумма = Сумма(ОписаниеПеременнойСуммы) Когда (Настройка = 1);  | 
|||
| 
    15
    
        aka AMIGO    
     06.04.12 
            ✎
    12:59 
 | 
         
        |Сумма = Док.Сумма;
  
        |Условие (Результат=?(,Клиент.Настройка=1,Сумма,0);  | 
|||
| 
    16
    
        viktor_vv    
     06.04.12 
            ✎
    13:00 
 | 
         
        (14)+ Что такое сумма и откда берется ?     
         | 
|||
| 
    17
    
        VovkaBo    
     06.04.12 
            ✎
    13:37 
 | 
         
        (15)
  
        Да, если сработает |Условие (Результат=?(,Клиент.Настройка=1,Сумма,0); это будет то, что надо  | 
|||
| 
    18
    
        VovkaBo    
     06.04.12 
            ✎
    13:39 
 | 
         
        (16)
  
        Нужен полный аналог следующей конструкции (так бы я написал в 8-ке) Выбор Когда Документ.Клиент.ХитраяНастройка = 1 (истина) Тогда Документ.Сумма Иначе Документ.Сумма / 2 КонецЕсли  | 
|||
| 
    19
    
        Он    
     06.04.12 
            ✎
    13:43 
 | 
         
        Давно бы выборкой с условием сделал. И время на трындёж не тратил.
  
        Главное - результат, а не как сделал - кошерно или некошерно.  | 
|||
| 
    20
    
        VovkaBo    
     06.04.12 
            ✎
    13:51 
 | 
         
        (19)
  
        я в чужом коде ковыряюсь, и не просто в коде, а в хитром алгоритме. И никто не объяснит, почему это работает так, а не иначе, поэтому пытаюсь очень аккуратно вставить свою конструкцию. Мне нельзя ничего сломать :)  | 
|||
| 
    21
    
        viktor_vv    
     11.04.12 
            ✎
    17:07 
 | 
         
        |Функция МояСумма = Сумма(ОписаниеПеременнойСуммы) Когда (Клиент.Настройка = 1);
  
        |Функция МояСуммаДеленная = Сумма(ОписаниеПеременнойСуммы/2) Когда (Клиент.Настройка = 0); Правда суммированть при обходе уже.  | 
|||
| 
    22
    
        viktor_vv    
     11.04.12 
            ✎
    17:17 
 | 
         
        Ну можно еще так попробовать
  
        |Функция МояСумма = Сумма(ОписаниеПеременнойСуммы/(2-Клиент.Настройка )) ; Может проконает.  | 
|||
| 
    23
    
        viktor_vv    
     11.04.12 
            ✎
    17:19 
 | 
         
        Правда не понятно что такое сумма. Если это связано с регистрами и функции отличные от Сумма(), то (22) не пойдет.     
         | 
|||
| 
    24
    
        viktor_vv    
     11.04.12 
            ✎
    17:20 
 | 
         
        Вот это я тормоз :).     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |