Имя: Пароль:
1C
1C 7.7
v7: 1С++ получить остаток на дату полученную в запросе
0 Rom_Kat
 
26.01.12
13:28
SELECT
CAST(LEFT(Жур.Date_Time_IDDoc, 8) as DateTime) as ДатаОплаты
,(SELECT Рег.СуммаУпрОстаток
FROM $РегистрОстатки.Покупатели(CONVERT(varchar(8),LEFT(Жур.Date_Time_IDDoc, 8), 112),
                                   INNER JOIN $Справочник.Контрагенты СпрКонр ON $СпрКонр.ОсновнойДоговор=Договор AND СпрКонр.ID=:ВыбКонтрагент,
, Договор, СуммаУпр) Рег) AS ОстатокЗадолженности
FROM $ДокументСтроки.ДневнойОтчет AS ДокСтр
INNER JOIN _1SJourn as Жур ON Жур.IDDoc = ДокСтр.IDDoc
WHERE $ДокСтр.Вид=:ОплатаКлиент AND SUBSTRING($ДокСтр.Субконто2, 7, 9)=:ВыбКонтрагент

Meta name parser error: недопустимое значение параметра "$РегистрОстатки.Покупатели" (1)

Есть возможность побороть метапарсер?
1 Rom_Kat
 
26.01.12
13:31
есть кто здесь?
2 Ёпрст
 
26.01.12
13:32
либо top 1 в подзапросе, либо суммируй
3 ДенисЧ
 
26.01.12
13:32
имхается мне, что не прокатит так напрямую
4 Rom_Kat
 
26.01.12
13:34
(2)неа. Если так $РегистрОстатки.Покупатели(:начдата,

то все работает.
я думаю что видимо (3)
5 Rom_Kat
 
26.01.12
13:35
(2)или я не понял что ты имеешь ввиду?
6 Ёпрст
 
26.01.12
13:36
ну тогда руками напиши коррелированный подзапрос заместо виртуальной РегистрОстатки.
7 Ёпрст
 
26.01.12
13:37
(5) подзапрос должен возвращать 1 запись
8 Rom_Kat
 
26.01.12
13:37
(6)так и поступлю. А есть где подсмотреть?
9 Ёпрст
 
26.01.12
13:37
+7 точнее, 1 значение
10 Rom_Kat
 
26.01.12
13:37
http://www.script-coding.com/
здесь когда-то было. теперь не нахожу.
11 Rom_Kat
 
26.01.12
13:38
(9)он и возвращает. Мета парсер не хавает CONVERT(varchar(8),LEFT(Жур.Date_Time_IDDoc, 8), 112)
12 Rom_Kat
 
26.01.12
13:40
13 Ёпрст
 
26.01.12
13:45
(11) конверт там не при чем.. там сам коррелированный подзапрос не может выполнится
14 Ёпрст
 
26.01.12
13:55
а так, тупо посмотри текст запроса с параметром через Отладка(1) и переделай его на Жур.date
15 PZh
 
26.01.12
14:44
(0)
Это потому, что парсер использует запрос в образе даты (datetime для таблички итогов) и в образе текста (char для таблички движений). Так что никакие расчетные выражения внутри запроса - не прокатывают...

(0) (14)
Нужно рассмотреть 3 случая:
1. Запрос на ТА
2. Запрос на дату ближе к концу периода
3. Запрос на дату ближе к началу периода

Облачи это в отдельную функцию и выложи ее здесь :)
16 Mikeware
 
26.01.12
14:58
ТС, чего тебе надо? я, честно говоря, так и не понял.
вроде даже с датой вида ггггммдд метапорсер вполне себе справляется
зачем конверитть в датетайм?
17 Ёпрст
 
26.01.12
15:02
(16) я не помню ужо, но вроде как метапарсер только явный параметр :Парам
жуёт в виртуальной табличке, всякие там подстановки из полей других запросов не прокатывают