Переключение на Главную Страницу Страницы: [1]  ОтправитьПечать
Очень популярная тема (более 25 ответов) Типизация в вычисляемом поле (число прочтений - 7714 )
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Типизация в вычисляемом поле
12. Марта 2008 :: 06:54
Печать  
Вот тута:

----------------------

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]

------------------------

пишет - "Для типизации поля "ДОК_ОСН" не найдено дополнительное типизирующее поле"




P.S. Такая же ошибка выскакивает, если выбирать Жур.IDDOC as [Док $Документ] без

Жур.IDDOCDEF as Док_вид...

  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #1 - 12. Марта 2008 :: 06:59
Печать  
Это вопрос?
  
Наверх
ICQ  
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #2 - 12. Марта 2008 :: 07:08
Печать  
Ну да, как правильно сделать, чтобы ошибки не выскакивало?  Подмигивание
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #3 - 12. Марта 2008 :: 07:09
Печать  
Правильно заданный вопрос включает в себя половину отчета. В данном случае в вопрос попал весь ответ:

"P.S. Такая же ошибка выскакивает, если выбирать Жур.IDDOC as [Док $Документ] без 

Жур.IDDOCDEF as Док_вид... "
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #4 - 12. Марта 2008 :: 07:11
Печать  
Neo писал(а) 12. Марта 2008 :: 07:08:
Ну да, как правильно сделать, чтобы ошибки не выскакивало?  Подмигивание


Добавить типизирующее поле
  
Наверх
ICQ  
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #5 - 12. Марта 2008 :: 07:12
Печать  
Ну так как мне в конструкцию CASE WHEN это дополнительное типизирующее поле запихнуть?  Озадачен

Если просто добавить Жур.IDDOCDEF as Док_вид вне конструкции, все то же самое...
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #6 - 12. Марта 2008 :: 07:14
Печать  
     Например, так :

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур.IDDOC) END as [ДОК_ОСН $Документ],
|Max(Жур.IDDOCDEF) as Док_вид

выдает ту же ошибку
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #7 - 12. Марта 2008 :: 07:15
Печать  
Что вообще за бредовый CASE?

THEN Max(Жур.IDDOC) ELSE Max(Жур.IDDOC) END  ??
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #8 - 12. Марта 2008 :: 07:15
Печать  
все дошло, надо ниже так |Max(Жур.IDDOCDEF) as ДОК_ОСН_вид

Смех
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #9 - 12. Марта 2008 :: 07:17
Печать  
Neo писал(а) 12. Марта 2008 :: 07:14:
     Например, так :

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур.IDDOC) END as [ДОК_ОСН $Документ],
|Max(Жур.IDDOCDEF) as Док_вид

выдает ту же ошибку

Должно быть поле:
ДОК_ОСН_вид

Тебе не кажется твой CASE несколько странным?
  
Наверх
ICQ  
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #10 - 12. Марта 2008 :: 07:18
Печать  
Neo писал(а) 12. Марта 2008 :: 07:15:
все дошло, надо ниже так |Max(Жур.IDDOCDEF) as ДОК_ОСН_вид

Смех


Сильно... И получишь ты IDDOC от, например, расходной накладной, а IdDocDef от ПКО.
Вот 1С++ повеселится, когда будет этот документ искать...
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #11 - 12. Марта 2008 :: 07:18
Печать  
>>> тебе не кажется твой CASE несколько странным?

- Чем именно?

  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #12 - 12. Марта 2008 :: 07:24
Печать  
>>> И получишь ты IDDOC от, например, расходной накладной, а IdDocDef от ПКО.

- Ну и как тогда лучше сделать?
Короче, надо  в вычисляемое поле забить расх накл, если это расх накладная, иначе - какой-то другой док (например, документ основание)?

Чтобы в выборке разных документов сделать один объединяющий реквизит
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #13 - 12. Марта 2008 :: 07:27
Печать  
Neo писал(а) 12. Марта 2008 :: 07:18:
>>> тебе не кажется твой CASE несколько странным?

- Чем именно?



Ну у тебя там написано: если так тоделаем так, иначе делаем точно также  Смех

или если 1 тогда 2 иначе 2
  
Наверх
ICQ  
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #14 - 12. Марта 2008 :: 07:27
Печать  
типа так:

Документ        Вычисл поле
                 

расх накл 1       расх накл 1

расх склад1       расх накл 3

расх накл 3       расх накл 3
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #15 - 12. Марта 2008 :: 07:27
Печать  
Для начала определись зачем тебе вообще здесь нужен CASE.
Ибо, сейчас там и в разделе Then и в разделе Else одинаковое выражение.
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #16 - 12. Марта 2008 :: 07:30
Печать  
>>> Ну у тебя там написано: если так то делаем так, иначе делаем точно также

- Так это просто для упрощения, в принципе  было не понятно, как сделать  типизацию.

В рабочем случае разумеется будет: если так, то делаем так, иначе - делаем иначе  Смех
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #17 - 12. Марта 2008 :: 07:31
Печать  
Вот мой пример из 1 поста - там были разные, просто дальше я решил упростить  Подмигивание

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #18 - 12. Марта 2008 :: 07:42
Печать  
     Вот так не пойдет?

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]

CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOCDEF)  ELSE Max(Жур1.IDDOCDEF) END as ДОК_ОСН_вид
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #19 - 12. Марта 2008 :: 08:04
Печать  
Neo писал(а) 12. Марта 2008 :: 07:42:
     Вот так не пойдет?

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]

CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOCDEF)  ELSE Max(Жур1.IDDOCDEF) END as ДОК_ОСН_вид


Так не пойдет! Думай лутше
  
Наверх
ICQ  
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #20 - 12. Марта 2008 :: 08:20
Печать  
Да вроде работает теперь все как надо  Класс на первый взгляд по крайней мере  Класс
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #21 - 12. Марта 2008 :: 08:21
Печать  
>>> Так не пойдет! Думай лутше

- Все, сдаюсь, учитель  Нерешительный Подсказывай  Круглые глаза
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #22 - 12. Марта 2008 :: 08:24
Печать  
Помедитируй над этим:
http://www.1cpp.ru/forum/YaBB.pl?num=1205304843/10#10
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #23 - 12. Марта 2008 :: 08:52
Печать  
Neo писал(а) 12. Марта 2008 :: 07:42:
     Вот так не пойдет?

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]

CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOCDEF)  ELSE Max(Жур1.IDDOCDEF) END as ДОК_ОСН_вид

Пойдет. Все верно.

ps
ну там запятая в нужном месте надеюсь стоит.
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #24 - 12. Марта 2008 :: 09:03
Печать  
trad писал(а) 12. Марта 2008 :: 08:52:
Neo писал(а) 12. Марта 2008 :: 07:42:
     Вот так не пойдет?

|CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOC) ELSE Max(Жур1.IDDOC) END as [ДОК_ОСН $Документ]

CASE WHEN Max(Жур.IDDOCDEF)='4484' THEN Max(Жур.IDDOCDEF)  ELSE Max(Жур1.IDDOCDEF) END as ДОК_ОСН_вид

Пойдет. Все верно.

ps
ну там запятая в нужном месте надеюсь стоит.


Ты, когда шутишь, говори об этом. А то ведь человек сейчас порадуется и так все и оставит...
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #25 - 12. Марта 2008 :: 09:16
Печать  
sadovnikov писал(а) 12. Марта 2008 :: 09:03:
Ты, когда шутишь, говори об этом. А то ведь человек сейчас порадуется и так все и оставит...

а я не шучу
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #26 - 12. Марта 2008 :: 09:19
Печать  
trad писал(а) 12. Марта 2008 :: 09:16:
sadovnikov писал(а) 12. Марта 2008 :: 09:03:
Ты, когда шутишь, говори об этом. А то ведь человек сейчас порадуется и так все и оставит...

а я не шучу


И что получишь в случае, когда Max(Жур.IDDOCDEF) != '4484' ?
IDDOC одного документа, IdDocDef - совсем другого.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #27 - 12. Марта 2008 :: 09:21
Печать  
trad писал(а) 12. Марта 2008 :: 09:16:
sadovnikov писал(а) 12. Марта 2008 :: 09:03:
Ты, когда шутишь, говори об этом. А то ведь человек сейчас порадуется и так все и оставит...

а я не шучу

Так пойдет только если Жур1.IDDOCDEF отфильтрован по одному виду документов, чтоб делать такие выводы нужно видеть весь запрос
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #28 - 12. Марта 2008 :: 09:23
Печать  
sadovnikov писал(а) 12. Марта 2008 :: 09:19:
И что получишь в случае, когда Max(Жур.IDDOCDEF) != '4484' ?
IDDOC одного документа, IdDocDef - совсем другого.
с какого перепугу?..
Жур1.IDDOC
Жур1.IDDOCDEF
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #29 - 12. Марта 2008 :: 09:26
Печать  
trad писал(а) 12. Марта 2008 :: 09:23:
с какого перепугу?..
Жур1.IDDOC
Жур1.IDDOCDEF


Э нет...
Не
Жур1.IDDOC
А
MAX(Жур1.IDDOC)
и это совсем меняет дело.
  
Наверх
 
IP записан
 
Nick
God Member
*****
Отсутствует



Сообщений: 1599
Местоположение: г.Новокузнецк
Зарегистрирован: 21. Февраля 2007
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #30 - 12. Марта 2008 :: 09:28
Печать  
sadovnikov писал(а) 12. Марта 2008 :: 09:26:
trad писал(а) 12. Марта 2008 :: 09:23:
с какого перепугу?..
Жур1.IDDOC
Жур1.IDDOCDEF


Э нет...
Не
Жур1.IDDOC
А
MAX(Жур1.IDDOC)
и это совсем меняет дело.

+1
  
Наверх
ICQ  
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #31 - 12. Марта 2008 :: 09:48
Печать  
sadovnikov
Nick

основываясь на этом:
Цитата:
иначе - какой-то другой док (например, документ основание)?

делаю вывод, что count(Жур1.IDDOC) = 1 и count(Жур1.IDDOCDEF) = 1
  

1&&2&&3
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #32 - 12. Марта 2008 :: 09:55
Печать  
Началось телепатирование Улыбка

ИМХО. "иначе - какой-то другой док (например, документ основание)" - вовсе необязательно означает, что в выборке Жур1 только одна строка. Это может оказаться и выборка всех документов сделки Улыбка
  
Наверх
 
IP записан
 
Neo
Senior Member
****
Отсутствует


I Love YaBB 2!

Сообщений: 327
Зарегистрирован: 12. Ноября 2007
Re: Типизация в вычисляемом поле
Ответ #33 - 12. Марта 2008 :: 10:13
Печать  
Жур1.IDDOC - это документ основание (если он есть, иначе пустое значение) для Жур.IDDOC
  
Наверх
 
IP записан
 
sadovnikov
1c++ power user
Отсутствует


I Love YaBB 2!

Сообщений: 420
Зарегистрирован: 06. Марта 2007
Re: Типизация в вычисляемом поле
Ответ #34 - 12. Марта 2008 :: 10:15
Печать  
Neo писал(а) 12. Марта 2008 :: 10:13:
Жур1.IDDOC - это документ основание (если он есть, иначе пустое значение) для Жур.IDDOC


Показывай ужо весь запрос...
  
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Типизация в вычисляемом поле
Ответ #35 - 12. Марта 2008 :: 20:22
Печать  
sadovnikov писал(а) 12. Марта 2008 :: 10:15:
Neo писал(а) 12. Марта 2008 :: 10:13:
Жур1.IDDOC - это документ основание (если он есть, иначе пустое значение) для Жур.IDDOC


Показывай ужо весь запрос...


+1
  
Наверх
IP записан
 
Переключение на Главную Страницу Страницы: [1] 
ОтправитьПечать