Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Как SQL-запросом получить реквизит через точку (регистр остатков) (число прочтений - 1890 )
Stella0608
Junior Member
**
Отсутствует


1C++ rocks!

Сообщений: 38
Зарегистрирован: 11. Марта 2009
Как SQL-запросом получить реквизит через точку (регистр остатков)
18. Августа 2009 :: 13:00
Печать  
Проблема такая.
Есть регистр остатков, у него одно из измерений типа Документ (неопределенный).
На практике это измерение принимает значение документа определенного типа (например, Доставка).

Первоначальный запрос имеет вид:
|(SELECT *
|FROM   
|$РегистрОстатки.РезервДоставки(:КонДата~,,,(Товар,Доставка),(РезервТовара)) As TabReg

Он выдает табличку с колонками "товар, доставка, резерв товара".
Нужно из нее SQL-запросом получить табличку вида
"товар, реквизит такой-то, резерв товара", где
реквизит такой-то = Доставка.ДокументОснование1.ДокументОснование2.ДокументОснование3.<Реквизит такой-то>
Собственно проблемы 2:
- как подобраться к документу Доставка, если тип значения поля Доставка у регистра - документ неопределенного вида (но известно заведомо, что это именно Доставка)
- как добраться до остальных реквизитов, которые через точку.
P.S. В самой 1ске такая задачка решается элементарно, просто данная промежуточная табличка нужна для окончательного SQL-отчета.
  
Наверх
ICQ  
IP записан
 
JohnyDeath
1c++ power user
1c++ donor
Отсутствует



Сообщений: 3050
Местоположение: Волгоград
Зарегистрирован: 19. Мая 2006
Пол: Мужской
Re: Как SQL-запросом получить реквизит через точку (регистр остатков)
Ответ #1 - 18. Августа 2009 :: 13:13
Печать  
делаешь соединение с табличкой этого документа - получаешь доступ к реквизитам этого документа.
Далее делаешь аналогичное к открывшемуся реквизиту и т.д.

чтобы подцепить неопределенный док, надо сделать примерно так:
Код
Выбрать все
LEFT JOIN $Документ.Доставка ДокДоставка ON ДокДоставка.IDDOC = RIGHT(TabReg.Доставка,9) 

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


1C++ rocks!

Сообщений: 38
Зарегистрирован: 11. Марта 2009
Re: Как SQL-запросом получить реквизит через точку (регистр остатков)
Ответ #2 - 18. Августа 2009 :: 14:44
Печать  
Спасибо, помогло.
  
Наверх
ICQ  
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать