| 
    
            
         
         | 
    
    
  | 
v7: Как совместить в переменной запроса два реквизита документа? | ☑ | ||
|---|---|---|---|---|
| 
    0
    
        kissolo    
     04.12.16 
            ✎
    16:23 
 | 
         
        В документе РасходнаяНакладная есть покупатель и грузополучатель. Если грузополучатель совпадает с покупателем, то реквизит "грузополучатель" в документе остается пустым.
 
        Есть запрос, вот его часть: Грузополучатель = Документ.Заказ.Заказчик,Документ.РасходнаяНакладная.Грузополучатель; Можно ли как-то указать, в тексте запроса, что если грузополучатель в документе пустой, то в переменную Грузополучатель присваивать значение покупателя из РасходнойНакладной? PS: этот запрос - часть отчета, сильно переделанного, поэтому если делать отдельный запрос по грп, достаточно геморройно будет искать подходящую строку (т.к. там кроме грузополучателя может быть и другая группировка включена, например, номенклатура)...  | 
|||
| 
    1
    
        Mauser    
     04.12.16 
            ✎
    16:30 
 | 
         
        1) У запроса нет переменных
 
        2) В описании языка запросов надо прочитать про ВЫБОР  | 
|||
| 
    2
    
        Mauser    
     04.12.16 
            ✎
    16:31 
 | 
         
        А, это 7.7
 
        Извиняюсь, думал про 8  | 
|||
| 
    3
    
        Slypower    
     05.12.16 
            ✎
    13:19 
 | 
         
        (0) один из способов, это в запросе сделать:
 
        Грузополучатель = Документ.Заказ.Заказчик; Грузополучатель1 = Документ.РасходнаяНакладная.Грузополучатель; , а уже при обработки строк запроса впихнуть: Если СокрЛП(Грузополучатель)="" Тогда Грузополучатель=Грузополучатель1; КонецЕсли;  | 
|||
| 
    4
    
        Mauser    
     05.12.16 
            ✎
    13:41 
 | 
         
        (3) А в 7.7 чтобы проверить на пустое значение, обязательно к строке приводить?     
         | 
|||
| 
    5
    
        Builder    
     05.12.16 
            ✎
    13:45 
 | 
         
        (4) Не обязательно, это от религии зависит :) 
 
        Если ПустоеЗначение(Грузополучатель)=1 Тогда КонецЕсли;  | 
|||
| 
    6
    
        Mauser    
     05.12.16 
            ✎
    13:50 
 | 
         
        (5) Так даже понятней. Ну, если религия состоит в "было тяжело писать, пусть будет тяжело читать" тогда да...
 
        Там в 7.7 есть функции с выражением КОГДА. Не спасет?  | 
|||
| 
    7
    
        lubitelxml    
     05.12.16 
            ✎
    13:52 
 | 
         
        (6) она вроде только для функций... 7.7 давно не видел     
         | 
|||
| 
    8
    
        Lazy Stranger    
     05.12.16 
            ✎
    13:53 
 | 
         
        Ещё можно обработкой во всех накладных в базе в расх. накладных в поле грузополучатель покупателя засунуть (ну и для новых документов при записи это делать)     
         | 
|||
| 
    9
    
        Builder    
     05.12.16 
            ✎
    13:54 
 | 
         
        (6) Она для расчета чего либо,
 
        типа Функция СуммаКолво = Сумма(Колво) Когда ПустоеЗначение(Грузополучатель)=1  | 
|||
| 
    10
    
        kissolo    
     05.12.16 
            ✎
    23:44 
 | 
         
        (3) Не совсем понятен смысл этого кода.
 
        Грп (aka Грузополучатель) - по нему идет группировка. и на одном уровне надо сразу и у заказа и у реализации видеть Грп (чтобы видеть кол-во заказа и отгрузки). Так бы можно было добавить переменную Покупатель, куда брать из реализации Покупателя, и проверку на пустое значение Грп делать (т.е. если Грп пустой, в него писать покупателя) - но это уже другой уровень запроса же будет... а у вас вообще получается, Грп - из заказа, Грп1 - из реализации, и зачем тогда в Грп брать значение из Грп1? Непонятно..  | 
|||
| 
    11
    
        kissolo    
     05.12.16 
            ✎
    23:47 
 | 
         
        (8) Тоже не совсем подходяший вариант, у 1с-ников там хитро придумано, мол, если Грп пустой - в форме документа включается галка "он же" (т.е. Грп = Покупателю), и в печ.ф. так же, и вполне возможно, что где-то еще. Так что не стал рушить, поступил проще - добавил еще реквизит в шапку, Грп1 - и в него при проведении документа отгрузки пишу Грп (а если тот пустой - то покупателя), заодно потом вывожу этот реквизит в форму журнала (они как раз попросили добавить колонку "грп")..
 
        Изврат, конечно... Зато быстро, а то отчет уже долго делаю..  | 
|||
| 
    12
    
        Garykom    
     гуру 
    05.12.16 
            ✎
    23:51 
 | 
         
        Условие(Грузополучатель в СписокГрузополучатели);     
         | 
|||
| 
    13
    
        kissolo    
     06.12.16 
            ✎
    09:49 
 | 
         
        (12) Зачем мне условие в таком виде? Мне надо, что если Грп в документе пустой - брать покупателя (из того же документа). 
 
        офф. Я так понимаю, в данном варианте задача не решаема, т.к. группировки по документу нет, а только из документа можно взять покупателя... В общем, остаюсь на своем варианте, всем спасибо.  | 
|||
| 
    14
    
        пипец    
     06.12.16 
            ✎
    10:08 
 | 
         
        есть еще внешние функции - но эт уже действительно вопрос религии     
         | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |