Имя: Пароль:
1C
1С v8
Как в запросе проверить есть ли реквизит в регистраторе или нет?
0 Shur1cIT
 
29.03.13
14:27
до этого случая ставил проверку

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

Но в данном случае регистраторов слишком много надо именно как-то проверить наличие реквизита
1 shamannk
 
29.03.13
15:02
Проверяй в коде и меняй запрос.
2 alexkr
 
29.03.13
15:04
(1) ??? молодой человек, извольте изьяснится
3 rs_trade
 
29.03.13
15:05
(2) Динамический запрос.
4 alexkr
 
29.03.13
15:06
что есть динамический запрос я понимаю, но вопрос не о том, как запрос построить, а о том как в самом запросе проверить есть ли в регистратора определенной строки нужный реквизит
5 rs_trade
 
29.03.13
15:08
(4) никак.
6 shamannk
 
29.03.13
15:08
Если свойствоесть Тогда
Запрос = "А"
Иначе
Запроса = "Б"
КонецЕсли.
Можно и куски менять Заменить()
7 unkairosed
 
29.03.13
15:10
Запрос.Текст =
   "ВЫБРАТЬ
   |    ВЫБОР
   |        КОГДА ТИПЗНАЧЕНИЯ(ИмяРегистраОбороты.Регистратор) В (&Типы)
   |            ТОГДА 1
   |        ИНАЧЕ 0
   |    КОНЕЦ КАК Результат
   |ИЗ
   |    РегистрНакопления.ИмяРегистра.Обороты(, , Регистратор, ) КАК ИмяРегистраОбороты";
   Типы = Новый Массив;
   Типы.Добавить(Тип("ДокументСсылка.ИмяДокумента"));
   Запрос.УстановитьПараметр("Типы", Типы);
8 hhhh
 
29.03.13
15:10
(2) так например

ДвиженияДенежныхСредств.Регистратор.Основание ЕСТЬ NULL
9 RomaH
 
naïve
29.03.13
15:11
(0) а зачем проверять?
10 rs_trade
 
29.03.13
15:11
(8) Так надо проверить наличие реквизита Основание
11 kosts
 
29.03.13
15:11
Можно конечно "*" поставить, но что это даст...
12 DimGan
 
29.03.13
15:12
ЕстьNULL(ДвиженияДенежныхСредств.Регистратор.Основание, "Нету")
13 RomaH
 
naïve
29.03.13
15:12
если нужны несколько разных реквизитов в одно поле запроса
- объединение?
14 RomaH
 
naïve
29.03.13
15:12
(10) зачем?
15 rs_trade
 
29.03.13
15:14
(14) у автора спроси. он это хочет.
16 Shur1cIT
 
29.03.13
15:16
В спасибо понял в параметр список видов документа кидаю
17 alexkr
 
29.03.13
15:17
(6) речь идет о том случае, когда в регистра несколько разных регистраторов, и все они в запросе должны обрабатываться, и в одно и то же поле беруться значения разных реквизитов.
(7) вот скорее всего такой вариант наиболее правильный. Но все равно приходится сравнивать списки типов документов, а проверить наличие реквизита походу никак...
18 RomaH
 
naïve
29.03.13
15:21
ВЫБРАТЬ
Регистратор.Основание1
Из...
ГДЕ Не Регистратор.Основание1 ЕСТЬ NULL
ОБЪЕДИНИТЬ
Регистратор.Основание2
ИЗ ...
ГДЕ Не Регистратор.Основание2 ЕСТЬ NULL
19 Defender aka LINN
 
29.03.13
15:40
(18) ППЦ. Захерачить кучу запросов вместо одного - это сильно. ВнушаетЪ.
(17) Дык если реквизиты разные - тут как хочешь извернись, а писать придется.
20 alexkr
 
29.03.13
15:55
(19) увы