Имя: Пароль:
1C
1С v8
Параметры запроса в "Выражение в источнике данных"
0 jour
 
12.07.16
18:45
Я подключаюсь из 8.3 к 7.7 через внешний источник данных.
Хочу получить остаток на дату.

В какой момент и как передать параметр для запроса ?

Вот рабочее выражение:
select
rg2099_vt.sp2094 as Номенклатура,
sum(rg2099_vt.sp2097) as КоличествоОстаток
from rg2099 as rg2099_vt (nolock)
where rg2099_vt.period={d 'Сюда нужно подставить дату'}

Исчерпывающая справка от 1С:
"В свойствах функции в поле "Выражение в источнике данных" нажмите кнопку выбора

В текстовом поле введите требуемое выражение на языке запросов источника с параметрами.

Параметры обозначаются следующим образом: &n, где n – порядковый номер фактического параметра, начиная с 1."

Мне к сожалению не понятна.

Как это можно сделать?
1 Fram
 
12.07.16
19:03
where rg2099_vt.period = &0
2 Fram
 
12.07.16
19:04
пардон.. where rg2099_vt.period = &1
3 jour
 
12.07.16
21:58
(2) это понятно из справки. Но в какой момент и где этому параметру присваивается значение ???
4 jour
 
13.07.16
08:06
Неужели никто не сталкивался ?
5 Beretta
 
13.07.16
08:10
(4) Нет. Никто не сталкивался. Ты будешь первым, кто поймет как устанавливать параметры у запроса.
6 jour
 
13.07.16
08:15
(5) Это сарказм или неполная формулировка?
Параметр не у запроса - а у "произвольного выражения во внешнем источнике данных"
7 jour
 
13.07.16
09:01
Ладно, тогда может то подскажет. Как в SQL форматировать дату.
Мне из getdate() которая возвращает yyyy-mm-dd hh:MM:ss.mls (как то так, точно не знаю как правильно) - нужно получить только yyyy-mm-dd преобразованный в CHAR.
я пробовал datepart() но месяц он без нуля возвращает, так что такая конструкция:
"SELECT CAST(DATEPART(yyyy,GETDATE()) AS CHAR(4)) + '-' + CAST(DATEPART(mm,GETDATE()) AS CHAR(2)) + '-' + CAST(DATEPART(DD,GETDATE()) AS CHAR(2))"к сожалению не подходит
8 jour
 
13.07.16
09:20
На будущее, текущая дата для запроса из 7.7 LEFT(CONVERT(char(19), GetDate(),121),10)
9 jour
 
13.07.16
09:51
Тема закрывается. Получить остатки 7.7 на дату из SQL если и реально - то очень геморройно.
SELECT TOP 100 ОстаткиТМЦОстатки.Номенклатура [Номенклатура $Справочник.Номенклатура]
    , ОстаткиТМЦОстатки.КоличествоОстаток
FROM (select
rr2099_vt.sp2094 as Номенклатура,
sum(rr2099_vt.sp2097) as КоличествоОстаток
from (
select
rg2099_vt.sp2094,
rg2099_vt.sp2097
from rg2099 as rg2099_vt (nolock)
where rg2099_vt.period={d '2016-07-01'}
union all
select
ra2099_vt.sp2094,
case ra2099_vt.debkred when 0 then ra2099_vt.sp2097 else -ra2099_vt.sp2097 end
from ra2099 as ra2099_vt (nolock)
where ra2099_vt.date_time_iddoc > '20160701' and ra2099_vt.date_time_iddoc < '20160702'
) as rr2099_vt
group by
rr2099_vt.sp2094
having
sum(rr2099_vt.sp2097) <> 0
) as ОстаткиТМЦОстатки

вот так выглядит запрос в скуле, скопировать его проблем нет, но непонятно почему в первом запросе объединения в одних случаях нужно брать начало этого месяца, а в других - прошлого, остатки то рассчитаны на начало этого..
в общем эта тема только для экспертов. с наскоку не решается