Переключение на Главную Страницу Страницы: 1 ОтправитьПечать
Обычная тема Периодические реквизиты (число прочтений - 3380 )
Dredomir
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 17. Октября 2006
Периодические реквизиты
22. Ноября 2006 :: 12:33
Печать  
Блин проблема в следующем, мож кто сталкивался, помогите плиз:
Надо вытащить дату периодического реквизита, в моем случае, хочу получить дату, на которую было записано подразделение сотрудника. Само подразделение получаю через функцию ПоследнееЗначение, а как быть с датой
  
Наверх
 
IP записан
 
DmitrO
1c++ power user
Отсутствует


ex developer

Сообщений: 579
Местоположение: г. Киров
Зарегистрирован: 22. Мая 2006
Пол: Мужской
Re: Периодические реквизиты
Ответ #1 - 22. Ноября 2006 :: 13:42
Печать  
Код
Выбрать все
select
  Спр.id as [Сотрудник $Справочник.Сотрудники],
  isnull((
   select top 1
     История.date
   from _1sconst as История (nolock)
   where История.id = $ИсторияРеквизита.Сотрудники.Подразделение and История.objid = Спр.id
     and История.date <= :ДатаОтчета~~
   order by История.date desc
  ), {d '1753-01-01'}) as ДатаЗаписиПодразделения
from $Справочник.Сотрудники as Спр (nolock)
order by Спр.desc
 

  
Наверх
ICQ  
IP записан
 
Dredomir
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 7
Зарегистрирован: 17. Октября 2006
Re: Периодические реквизиты
Ответ #2 - 23. Ноября 2006 :: 04:56
Печать  
2 DmitrO
Премного благодарен. Только я не могу понять откуда появилось "$ИсторияРеквизита", в хэлпе чет не нашел?
  
Наверх
 
IP записан
 
Kotm
YaBB Newbies
*
Отсутствует


I Love YaBB 2!

Сообщений: 1
Зарегистрирован: 28. Ноября 2006
Re: Периодические реквизиты
Ответ #3 - 28. Ноября 2006 :: 11:52
Печать  
Здрасьте!
Может поможет кто?!
База на DBF. Запрос через OLEDBData. Установлен Microsoft OLE DB Provider for Visual FoxPro 9.0
Запрос с вложенным на получение последнего периодического реквизита не работает.
Драйвер выдает вот такую ошибку:
FAILED! ICommandText::Execute(): SQL: Queries of this type are not supported.

Собственно сам запрос:
ТекстЗапроса = "
|SELECT          nom.SP7004 AS Идентификатор,
|                  nomr.SP7004 AS ИдРодителя,
|                  nom.DESCR AS Наименование,
|                  nom.ISFOLDER AS Группа,
|           LEN(TRIM(nom.ISMARK)) AS ПомеченНаУдаление,
|                  (select top 1 const.value
|                  from 1SCONST AS const                                    
|                  where const.ID = "" 55F"" AND const.OBJID = nom.ID
|                  order by const.DATE DESC) AS Инвойс
|FROM       SC84 as nom
|             LEFT OUTER JOIN SC84 nomr ON nom.PARENTID = nomr.ID       
|WHERE            LEN(TRIM(nom.SP7004)) > 0
|ORDER BY      nom.ISFOLDER, nom.DESCR
|"
;                                          

const.ID найдет вручную
загвоздка в строке AND const.OBJID = nom.ID без нее работает, но естественно на выходе чушь.
  
Наверх
 
IP записан
 
Vaicartana
Junior Member
**
Отсутствует


I Love YaBB 2!

Сообщений: 50
Местоположение: Far, Far Away...
Зарегистрирован: 29. Мая 2006
Пол: Мужской
Re: Периодические реквизиты
Ответ #4 - 29. Ноября 2006 :: 02:52
Печать  
Вот пример работы с периодическим значением.

|SELECT 
|      СпрН.Descr AS Наименование,
|      Цены.Цена as [Цена $Число]
|FROM
|      $Справочник.Номенклатура СпрН
|LEFT JOIN
|      $Справочник.Цены СпрЦ ON СпрЦ.ParentExt = СпрН.ID AND
|                           $СпрЦ.ТипЦен = :ТипЦен";
|LEFT JOIN (
|      SELECT
|            Период.objid as objid,
|            Период.value as Цена
|      FROM 1sconst as Период
|      WHERE
|            Период.date IN
|            (SELECT
|                  MAX(Константа.date)
|            FROM 1sconst as Константа
|            WHERE
|                  (Константа.date <= :ВыбДата ~~)
|                  AND (Константа.id = $ИсторияРеквизита.Цены.Цена)
|                  AND (Константа.objid = Период.objid)
|            )
|            AND Период.id = $ИсторияРеквизита.Цены.Цена
|      ) as Цены ON Цены.objid = СпрЦ.id


Взято из документации по прямым запросам.
  
Наверх
 
IP записан
 
Переключение на Главную Страницу Страницы: 1
ОтправитьПечать