Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Реквизиты регистра из виртуальной таблицы прямого запроса (число прочтений - 3553 )
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Реквизиты регистра из виртуальной таблицы прямого запроса
26. Мая 2011 :: 11:01
Печать  
Собственно сабж. Можно ли получить реквизит регистра в прямом запросе с использованием виртуальных таблиц?
Да и в довесок: есть ли какой-нибудь аналог для условия аналогичному "Когда" в функциях типовых написаниях запросов?
  
Наверх
 
IP записан
 
Eprst
God Member
*****
Отсутствует



Сообщений: 3397
Зарегистрирован: 08. Октября 2007
Re: Реквизиты регистра из виртуальной таблицы прямого запроса
Ответ #1 - 26. Мая 2011 :: 11:49
Печать  
1. можно, соединением с табличкой движения регистра с ВТ
2. в общем случае, хэвинг.., а так, тоже реализуется, даже примеры валяются.
Ну или через case слепить на крайняк, или еще как.
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Реквизиты регистра из виртуальной таблицы прямого запроса
Ответ #2 - 26. Мая 2011 :: 14:04
Печать  
1. Поясни, пожалуйста, ВТ к регистру или регистр к ВТ, если 1 то как пишется это иннер, не представляю, там же условие в параметре.
2. мне нужно несколько функций в 1 запросе над одним и тем же ресурсом, реально?
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Реквизиты регистра из виртуальной таблицы прямого запроса
Ответ #3 - 30. Мая 2011 :: 03:32
Печать  
Если ты под Виртуальной таблицей подразумеваешь $РегистрОстаткиОбороты.ИмяРегистра(бла-бла-бла) - то, наверное, можно, но извращенно.

Лучше (и в некотором смысле - проще) будет работать с базовыми объектами ($РегистрИтоги.ИмяРегистра + $Регистр.ИмяРегистра).
Проще в том смысле, что через месяц, гляда на текст запроса, у тебя не будут возникать вопросы "по какой накурке это писали?" и "что этим хотели сделать?".
Ну и общее представление о структуре хранения данных будет нелишним.

Общий принцип такой:

Select
...
From
$РегистрИтоги.ИмяРегистра
Where
Period = :Период
<прочие условия>

Union ALL

Select
...
From
$Регистр.ИмяРегистра
Where
Date_Time_IDDoc >= :НачДвижений
And Date_Time_IDDoc < :КонДвижений
<прочие условия>

где параметры:
КонДвижений - "Позиция НА" которую собирается остаток.
НачДвижений = НачМесяца(КонДвижений);
Период = ДобавитьМесяц(НачДвижений, -1);

Если же остатки собираются на ТА - то Период = НачМесяца(ПолучитьДатуТА()), а вторая часть Union-а не нужна.

Date_Time_IDDoc - или из регистра (если стоит галка "быстрая обработка движений", например), или через джойн _1Sjourn
  
Наверх
 
IP записан
 
Satans Claws
God Member
*****
Отсутствует


1C++ rocks!

Сообщений: 721
Зарегистрирован: 29. Ноября 2010
Re: Реквизиты регистра из виртуальной таблицы прямого запроса
Ответ #4 - 30. Мая 2011 :: 03:34
Печать  
Eprst писал(а) 26. Мая 2011 :: 11:49:
2. в общем случае, хэвинг.., а так, тоже реализуется, даже примеры валяются.
Ну или через case слепить на крайняк, или еще как.



"Когда" дефолтных запросов клюшек - это чистый CASE
Хэвинг накладывается на результат группировки
  
Наверх
 
IP записан
 
OnCheck
Full Member
***
Отсутствует


I Love YaBB 2!

Сообщений: 130
Зарегистрирован: 12. Декабря 2007
Re: Реквизиты регистра из виртуальной таблицы прямого запроса
Ответ #5 - 07. Июня 2011 :: 10:41
Печать  
Я уже разобрался с поставленной задачей. В процессе выяснил что реквизита в итогах нету. Да и по логике не должно быть, ибо реквизит не влияет на остатки. Поэтому я отдельно сформировал остатки на начало и остатки на конец при помощи виртуальных таблиц и отдельно получил движения подобным запросом, что указал Satans Claws. Спасибо всем за помощь!
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать