Имя: Пароль:
1C
1C 7.7
v7: вопрос по прямому запросу к MSSQL
0 ksa-nsk
 
12.11.12
21:01
вот есть пример
ТекстЗапроса = "
|SELECT  
|    СпрН.Descr Наименование,
|    $ПоследнееЗначение.Цены.Цена(СпрЦ.ID, :ВыбДата) Цена    
|FROM
|    $Справочник.Номенклатура СпрН
|LEFT JOIN
|    $Справочник.Цены СпрЦ ON СпрЦ.ParentExt = СпрН.ID AND
|                             $СпрЦ.ТипЦен = :ТипЦен";

он работает, но в нем СпрЦ.ParentExt = СпрН.ID, т.е. это подчиненный справочник

у меня немного отличается тем, что поле у Контрагента - не подчиненный справочник, а просто периодическое значение из обычного справочника, не могу придумать связку этих двух спр-в в запросе, т.е. синтаксис строк
$ПоследнееЗначение.....
и
$Справочник.ТарифыРЗ as СпрТ ON СпрТ.OBJID = $СпрК.ТарифРЗ:

   |SELECT
   |    CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаДок,
   |    $ДокАВР.Контрагент as [Контрагент $Справочник.Контрагенты],
   |     $ПоследнееЗначение.Контрагенты.ТарифРЗ(СпрТ.ID, :НачДата) as ТарифРЗ
   |FROM
   |    _1SJourn as Жур
   |INNER JOIN
   |    $Документ.ОказаниеУслуг as ДокАВР ON ДокАВР.IDDoc = Жур.IDDoc
   |INNER JOIN
   |    $Справочник.Контрагенты as СпрК ON СпрК.ID = $ДокАВР.Контрагент AND
   |                               $СпрК.Статус = $Перечисление.СтатусКонтрагента.НаОбслуживании
   |INNER JOIN
   |    $Справочник.ТарифыРЗ as СпрТ ON СпрТ.OBJID = $СпрК.ТарифРЗ
   |WHERE
   |    (Жур.Date_Time_IDDoc BETWEEN :НачДата AND :КонДата~)
   |";  

буду признателен за совет.
1 ksa-nsk
 
12.11.12
21:04
пардон, правильная строка
   |    $Справочник.ТарифыРЗ as СпрТ ON СпрТ.ID = $СпрК.ТарифРЗ

да, собственно, вылетает с ошибкой на $СпрК.ТарифРЗ, это ведь периодическое значение