Имя: Пароль:
1C
1C 7.7
v7: Простой вопрос по прямым запросам
,
0 Pr0gLamer
 
19.09.12
11:47
Уважаемые форумчане!
Подскажите пожалуйста как с помощью прямого запроса получить остатки регистра остатков на определённую дату без использования ВТ?
1 antoneus
 
19.09.12
12:13
2 Mikeware
 
19.09.12
12:14
Получить на дату хранения итогов, посчитать обороты и сложить.
Ну, или посчитать на ближайшую дату хранения итогов, посчитать обороты, и сложить или вычесть...
3 Андрей_Андреич
 
naïve
19.09.12
12:15
(0) Распарсить запрос с ВТ и посмотреть?
4 ADirks
 
19.09.12
12:16
ещё  http://www.1cpp.ru/forum/YaBB.pl?num=1166170595/0
можно покурить
5 dk
 
19.09.12
12:22
перетащить ТА на нужную дату ))
6 Pr0gLamer
 
19.09.12
12:25
а где хранятся итоги на ТА? если использовать конструкцию "$РегистрИтоги.ХХХ",мы каждый раз получаем итоги на начало периода?
7 Ёпрст
 
19.09.12
12:26
дык в FAQ есть готовый пример..
8 Ёпрст
 
19.09.12
12:26
(6) нет
9 ДенисЧ
 
19.09.12
12:27
А что, ВТ отныне запрещены ПЖиВ?
10 Ёпрст
 
19.09.12
12:27
и это, как бэ  в (1) есть ответ, как хрянятся итоги регистра, и что он из себя представляет
11 Ёпрст
 
19.09.12
12:27
(9) у него дбф , скорее всего :)
12 Pr0gLamer
 
19.09.12
12:28
(11) хочу разобраться,у мну SQL
13 Ёпрст
 
19.09.12
12:29
(12) смотри в профайлер.. там будет твой запрос в развернутом виде
14 Pr0gLamer
 
19.09.12
12:30
остатки на ТА хранятся до тех пор пока не наступит новый период правильно?
15 Ёпрст
 
19.09.12
12:30
ну или.. ОбрМетаСКЛ используй - тоже покажет
16 Ёпрст
 
19.09.12
12:31
17 Pr0gLamer
 
19.09.12
12:39
Спасибо,я понял,еще маленький вопросик:
RS = СоздатьОбъект("ODBCRecordset");
ТекстЗапроса = "
|@Товар = ?
|SELECT
|    Рег.КоличествоОстаток as Количество
|FROM
|    $РегистрОстатки.ОстаткиТоваров(:ВыбДата~,,
|                                 Склад = :ВыбСклад AND Товар = @Товар,
|                                 (Товар), (Количество)) as Рег";
   RS.УстановитьТекстовыйПараметр("ВыбДата",Текущаядата());
   RS.УстановитьТекстовыйПараметр("ВыбСклад ",ВыбСклад );
   RS.Подготовить(ТекстЗапроса);
   RS.ПостроитьПараметры();
   RS.УстПараметр(1, ВыбТовар);
   RS.ВыполнитьСкалярный();

Почему вываливается с ошибкой,при чём если заменить @Товар на :ВыбТовар и соответственно вызов на:
RS.УстановитьТекстовыйПараметр("ВыбДата",Текущаядата());
RS.УстановитьТекстовыйПараметр("ВыбСклад ",ВыбСклад );
RS.УстановитьТекстовыйПараметр("Выбтовар",Текущаядата());
тз = RS.ВыполнитьИнструкцию(ТекстЗапроса);
то работает?
18 Salimbek
 
19.09.12
12:48
(17) Ну как бы:
1. Если запрос разовый то удобнее через Текстовый параметр рулить
2. Если же хочешь много раз, то правильнее товары загнать в список, уложить во временную таблицу его через УложитьСписокОбъектов() и в ВТ сделать левое соединение с этой временной таблицей.
19 Pr0gLamer
 
19.09.12
12:53
(18)Хочу форму списка ускорить,а то уж больно долго работает.Мне интересно почему ошибка возникает,точнее что в синтаксисе не так?
20 ДенисЧ
 
19.09.12
12:57
DECLARE @Tovar CHAR(9)
SELECT @Tovar = ?
21 ADirks
 
19.09.12
12:57
(17) в виртуальных таблицах нельзя использовать даты - переменные. Дело в том, что в зависимости от конкретного значения даты строится сам текст запроса. И в документации это написано.
22 Pr0gLamer
 
19.09.12
13:03
спасибо всем