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


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Представление справочника в прямом запросе
25. Мая 2006 :: 17:16
Печать  
Подскажите кто знает почему
$ВидСправочника36.МестаХранения + $ДокТребованиеНакладная. МестоХранения as [Объект $Справочник]
не работает,
а
$ДокТребованиеНакладная. МестоХранения as [Объект $Справочник.МестаХранения]
работает.
И как правильно сделать, что бы работал первый вариант,т.е. представление как просто $Справочник неопределенного типа (по типу [Документ $Документ] док неопределенного типа) ?
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Представление справочника в прямом запросе
Ответ #1 - 25. Мая 2006 :: 17:30
Печать  
Да забыл : база DBF, провайдер OLE DB VFP 9.
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #2 - 26. Мая 2006 :: 07:06
Печать  
Нифига не понял, если честно.

Полный текст запроса - в студию.
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #3 - 26. Мая 2006 :: 07:43
Печать  
ДокТребованиеНакладная. МестоХранения

тип этого реквизита?
Справочник.МестаХранения? char(9)

или
Справочник? char(13)
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #4 - 26. Мая 2006 :: 07:49
Печать  
DrACe писал(а) 26. Мая 2006 :: 07:43:
ДокТребованиеНакладная. МестоХранения

тип этого реквизита?
Справочник.МестаХранения? char(9)

или
Справочник? char(13)

судя по этому Цитата:
$ДокТребованиеНакладная. МестоХранения as [Объект $Справочник.МестаХранения]
работает.

- char(9)
  

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


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #5 - 26. Мая 2006 :: 08:03
Печать  
судя по этому Цитата:
$ДокТребованиеНакладная. МестоХранения as [Объект $Справочник.МестаХранения]
работает.

- char(9)

может быть типизация $Справочник.МестаХранения берет справа 9 символов, а остальное обрезает?.. Кто знает? Ужас
  
Наверх
 
IP записан
 
trad
1c++ power user
1c++ donor
1c++ moderator
Отсутствует



Сообщений: 3051
Местоположение: Киров
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #6 - 26. Мая 2006 :: 08:25
Печать  
DrACe писал(а) 26. Мая 2006 :: 08:03:
может быть типизация $Справочник.МестаХранения берет справа 9 символов, а остальное обрезает?.. Кто знает? Ужас

я знаю - это не так
эта типизация берет слева 9 символов
  

1&&2&&3
Наверх
 
IP записан
 
villy
Senior Member
****
Отсутствует



Сообщений: 287
Зарегистрирован: 24. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #7 - 26. Мая 2006 :: 08:40
Печать  

select top 10 $ВидСправочника36.Товары + Спр.id as [тов $Справочник]
from $Справочник.Товары Спр

на SQL отрабатывает на ура

(0) скинь полный текстъ запроса (строку подключения и запрос)
  
Наверх
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Представление справочника в прямом запросе
Ответ #8 - 26. Мая 2006 :: 08:40
Печать  
Вот полный текст запроса
"SELECT
| Жур.IDDoc as [Документ $Документ],
| Жур.IDDocDef as Документ_вид,
| Жур.DATE as ДатаДок,
| Жур.DOCNO as НомерДок,
|      COALESCE(
окПереводМатериаловВТовар.Сумма,
$ДокГотоваяПродукция.Сумма,
$ДокТребованиеНакладная.Сумма,
$ДокПоступлениеМатериалов.Всего) as [Сумма],
|      COALESCE(
$ВидСправочника36.МестаХранения + анения + $ДокПереводМатериаловВТовар.МестоХранения,$ВидСправочника36.МестаХранения +
$ДокГотоваяПродукция.Склад,
$ВидСправочника36.МестаХранения +
$ДокТребованиеНакладная.МестоХранения,
$ВидСправочника36.Контрагенты + $ДокОтпускМатериаловНаСторону.Контрагент,
$ВидСправочника36.Контрагенты +
$ДокПоступлениеМатериалов.Контрагент) as [Объект $Справочник],
//Вот здесь и затык , что справочники разные
|CASE
|  WHEN Жур.IsMark =  '*' THEN 6
|  WHEN Жур.Closed = 5 THEN 1
|  ELSE 0
|END as Картинка
|FROM
|      1sjourn as Жур          
|
|LEFT JOIN $Документ.ВедомостьВыдачи as ДокВедомостьВыдачи ON
|    Жур.IDDoc = ДокВедомостьВыдачи.IDDoc          
|LEFT JOIN $Документ.ВнутреннееПеремещениеМатериалов as ДокВнутреннееПеремещениеМатериалов ON
|    Жур.IDDoc = ДокВнутреннееПеремещениеМатериалов.IDDoc          
|LEFT JOIN $Документ.ОтпускМатериаловНаСторону as ДокОтпускМатериаловНаСторону ON
|    Жур.IDDoc = ДокОтпускМатериаловНаСторону.IDDoc          
|LEFT JOIN $Документ.ПереводМатериаловВТовар as ДокПереводМатериаловВТовар ON
|    Жур.IDDoc = ДокПереводМатериаловВТовар.IDDoc          
|LEFT JOIN $Документ.ГотоваяПродукция as ДокГотоваяПродукция ON
|    Жур.IDDoc = ДокГотоваяПродукция.IDDoc          
|LEFT JOIN $Документ.ТребованиеНакладная as ДокТребованиеНакладная ON
|    Жур.IDDoc = ДокТребованиеНакладная.IDDoc          
|LEFT JOIN $Документ.ПоступлениеМатериалов as ДокПоступлениеМатериалов ON
|    Жур.IDDoc = ДокПоступлениеМатериалов.IDDoc          
|LEFT JOIN $Документ.ГСМ as ДокГСМ ON
|    Жур.IDDoc = ДокГСМ.IDDoc
|
|WHERE
|   Жур.IDJournal = $ЖурналДокументов.Материалы AND
|      (Жур.DATE BETWEEN :Дата1~~ AND :Дата2~~)";

Можно ли как-то обойти ?

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


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Представление справочника в прямом запросе
Ответ #9 - 26. Мая 2006 :: 08:45
Печать  
Подключение через Advantage OLE DB (я о нем писал в соседней теме) , он поддерживает COALESCE , но дело в том что и для VFP при одном доке (без COALESCE) выдает пустое поле.
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #10 - 26. Мая 2006 :: 08:54
Печать  
Вопросы:
1. Что значит - "не работает". Какая-то ошибка или неправильно работает?
2. Какой текст получается на выходе метапарсера?
3. Все ли перечисленные в проблемном COALESCE реквизиты типизированы в конфигураторе как справочники определенного типа?
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Представление справочника в прямом запросе
Ответ #11 - 26. Мая 2006 :: 08:55
Печать  
Нет там все ОК - далее идет CASE as Картинка. Этот запрос выполняется без ошибок, только колонка [Объект] пустая !
  
Наверх
 
IP записан
 
Quan
1c++ donor
1c++ power user
Отсутствует


I'm old, bald and ugly.

Сообщений: 273
Местоположение: Новосибирск -- Москва
Зарегистрирован: 20. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #12 - 26. Мая 2006 :: 08:57
Печать  
Alister писал(а) 25. Мая 2006 :: 17:30:
Да забыл : база DBF, провайдер OLE DB VFP 9.

Ох, сорри, не заметил.
Признаю свою некомпетентность и снимаю вышезаданные вопросы
  

А для тех, кто не хотел учить SQL, господь сотворил курсоры
Наверх
 
IP записан
 
DrACe
1c++ donor
1c++ power user
Отсутствует


1С++ любитель

Сообщений: 447
Местоположение: г. Новосибирск
Зарегистрирован: 23. Мая 2006
Пол: Мужской
Re: Представление справочника в прямом запросе
Ответ #13 - 26. Мая 2006 :: 09:00
Печать  
а я бы посмотрел отпарсенный текст запроса после метода
RecordSet.Отладка()
  
Наверх
 
IP записан
 
Alister
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 123
Зарегистрирован: 19. Мая 2006
Re: Представление справочника в прямом запросе
Ответ #14 - 26. Мая 2006 :: 09:00
Печать  
Quan писал(а) 26. Мая 2006 :: 08:54:
Вопросы:
1. Что значит - "не работает". Какая-то ошибка или неправильно работает?
2. Какой текст получается на выходе метапарсера?
3. Все ли перечисленные в проблемном COALESCE реквизиты типизированы в конфигураторе как справочники определенного типа?

Текст после метапарсера

SELECT
Жур.IDDoc as [Документ_1c_type_Документ],
Жур.IDDocDef as Документ_вид,
Жур.DATE as ДатаДок,
Жур.DOCNO as НомерДок,
     ебованиеНакладная.sp2879,ДокПоступлениеМатериалов.sp2853) as SQL_MONEY) as [Сумма],
     COALESCE('  BY' + ДокВнутреннееПеремещениеМатериалов.sp39361,'  BY' + ДокПереводМатериаловВТовар.sp21045,'  BY' + ДокГотоваяПродукция.sp1914,'  BY' + ДокТребованиеНакладная.sp2872,'  DK' + ДокОтпускМатериаловНаСторону.sp2885,'  DK' + ДокПоступлениеМатериалов.sp2835) as [Объект_1c_type_Справочник],
CASE
  WHEN Жур.IsMark =  '*' THEN 6
  WHEN Жур.Closed = 5 THEN 1
  ELSE 0
END as Картинка
FROM
     Journ as Жур         

LEFT JOIN dh15791 as ДокВедомостьВыдачи ON
    Жур.IDDoc = ДокВедомостьВыдачи.IDDoc         
LEFT JOIN dh39366 as ДокВнутреннееПеремещениеМатериалов ON
    Жур.IDDoc = ДокВнутреннееПеремещениеМатериалов.IDDoc         
LEFT JOIN dh2882 as ДокОтпускМатериаловНаСторону ON
    Жур.IDDoc = ДокОтпускМатериаловНаСторону.IDDoc         
LEFT JOIN dh21051 as ДокПереводМатериаловВТовар ON
    Жур.IDDoc = ДокПереводМатериаловВТовар.IDDoc         
LEFT JOIN dh1911 as ДокГотоваяПродукция ON
    Жур.IDDoc = ДокГотоваяПродукция.IDDoc         
LEFT JOIN dh2870 as ДокТребованиеНакладная ON
    Жур.IDDoc = ДокТребованиеНакладная.IDDoc         
LEFT JOIN dh2833 as ДокПоступлениеМатериалов ON
    Жур.IDDoc = ДокПоступлениеМатериалов.IDDoc         
LEFT JOIN dh5655 as ДокГСМ ON
    Жур.IDDoc = ДокГСМ.IDDoc

WHERE
   Жур.IDJournal = ' 2C9' AND
     (Жур.DATE BETWEEN {d '2004-01-01'} AND {d '2005-12-31'})

Справочнити типа МестаХранения и Контрагенты.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: [1] 2 
ОтправитьПечать