Имя: Пароль:
1C
1C 7.7
v7: Помогите с прямым запросом к оборотному регистру
,
0 dum80
 
06.12.12
16:14
Только начинаю копать 1сpp, сильно не ругайте:)
Помогите разобраться с запросом к оборотному регистру, вот накидал несколько строк:
Запрос = СоздатьОбъект("ODBCRecordset");
Запрос.Отладка();
ТекстЗапроса = "
|SELECT *
|FROM
|    $РегистрОбороты.Движение (:НачДата, :КонДата~, :Период ) as Рег ";  

Запрос.УстановитьТекстовыйПараметр("НачДата", НачДата);
Запрос.УстановитьТекстовыйПараметр("КонДата", КонДата);
Запрос.УстановитьТекстовыйПараметр("Период", "День");
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
Сообщить(Тз.Количествострок());
ТЗ.ВыбратьСтроку();

вылетает с такой ошибкой
State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20121101'.
1 GLazNik
 
06.12.12
16:15
$РегистрОбороты.Движение (:НачДата, :КонДата~, День )
2 КонецЦикла
 
06.12.12
16:19
(0) А что нужно?
Третий параметр может и отсутствовать, почитай про него, это периодичность
3 dum80
 
06.12.12
16:24
да та же ошибка, что так
$РегистрОбороты.Движение (:НачДата, :КонДата~, День )
что так
$РегистрОбороты.Движение (:НачДата, :КонДата~)
всегда ошибка State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20121101'.
20121101 - это НачДата у меня
4 Стрелок
 
06.12.12
16:26
Включи отладку и глянь текст запроса

Отладка(1)
5 GLazNik
 
06.12.12
16:26
(3) а "Движение" это регистр такой?
6 Ёпрст
 
06.12.12
16:26
база поди дбф ?
:)
7 Стрелок
 
06.12.12
16:28
http://www.1cpp.ru/forum/YaBB.pl?num=1148874473

ссылка на mod_002.zip в первом же сообщении. Очень пользительная штука
8 dum80
 
06.12.12
16:30
спасибо за ссылку, база sql под 2005 работает, движение - регистр, отладку включал...
9 Стрелок
 
06.12.12
16:31
(8) ну так скинь текст запроса
10 Ёпрст
 
06.12.12
16:32
ну ладно тогда..
ответ на (0) - убери табуляцию из текста запроса.
11 dum80
 
06.12.12
16:34
вот текст запроса

SELECT *
FROM
(
select
rg6271_vt.sp6272 as Клиент,
rg6271_vt.sp6273 as Родитель,
rg6271_vt.sp6274 as Товар,
rg6271_vt.sp6275 as Ед,
sum(rg6271_vt.sp6276) as КоличествоОборот,
sum(rg6271_vt.sp6277) as ЦенаОборот,
sum(rg6271_vt.sp6278) as СуммаБезНДСОборот,
sum(rg6271_vt.sp6279) as СтавкаНДСОборот,
sum(rg6271_vt.sp6280) as НДСОборот,
sum(rg6271_vt.sp6281) as ПроцентНацОборот,
sum(rg6271_vt.sp6282) as НаценкаБезНДСОборот,
sum(rg6271_vt.sp6283) as НДСНацОборот,
sum(rg6271_vt.sp6284) as СуммаНаценкиОборот,
sum(rg6271_vt.sp6285) as НСПОборот,
sum(rg6271_vt.sp6286) as ВсегоОборот
from rg6271 as rg6271_vt (nolock)
where rg6271_vt.period between {d '1900-01-01'} and {d '2012-12-01'}
group by
rg6271_vt.sp6272,
rg6271_vt.sp6273,
rg6271_vt.sp6274,
rg6271_vt.sp6275
having
sum(rg6271_vt.sp6276) <> 0 or
sum(rg6271_vt.sp6277) <> 0 or
sum(rg6271_vt.sp6278) <> 0 or
sum(rg6271_vt.sp6279) <> 0 or
sum(rg6271_vt.sp6280) <> 0 or
sum(rg6271_vt.sp6281) <> 0 or
sum(rg6271_vt.sp6282) <> 0 or
sum(rg6271_vt.sp6283) <> 0 or
sum(rg6271_vt.sp6284) <> 0 or
sum(rg6271_vt.sp6285) <> 0 or
sum(rg6271_vt.sp6286) <> 0
) as Turnovers6271('20121101', '20121106Z')
ТЗ = Запрос.ВыполнитьИнструкцию(ТекстЗапроса);
{\\SERVER03\KONF\KONF_RAB_SQL\EXTFORMS\ЗАГРУЗИТЬ КОМПОНЕНТУ.ERT(89)}: State 42000, native 102, message [Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near '20121101'.
12 Стрелок
 
06.12.12
16:35
у скуля и dbf разный формат даты кажется
13 Mikeware
 
06.12.12
16:35
$РегистрОбороты.Движение(:НачДата, :КонДата~, :Период )
пробел перед первой скобкой убери
14 Стрелок
 
06.12.12
16:35
почитай выделеной красным в том файлике по ссылке
15 dum80
 
06.12.12
16:37
Спасибо!!!! Огромное спасибо Mikeware
все дело в чертовом пробеле.
16 Mikeware
 
06.12.12
16:39
:-)
Ёп успел раньше...
17 Mikeware
 
06.12.12
16:39
И открой для себя 1CQA
Можешь и консоль/конструктор запросов Берездецкого
18 Стрелок
 
06.12.12
16:40
(17) это что за звери? я юзаю конструктор запросов (стянул с 1С++) но не всегда корректно получается
19 dum80
 
06.12.12
16:48
где скачать 1CQA консоль/конструктор запросов Берездецкого? ссылкой не поделитесь:)
20 Mikeware
 
06.12.12
16:51
21 Стрелок
 
06.12.12
16:51
(20)БРАВО!!!!!
22 Стрелок
 
06.12.12
16:52
(+21) только на инфостате регистрация нужна ;(
23 Mikeware
 
06.12.12
16:53
(22) А причем тут инфосрань? первая же ссылка ведет на 1спп, где в теме он и лежит
24 Стрелок
 
06.12.12
16:54
(23) гонишь ;) первая и единственная ссыль идёт на инфостат. Скрин сделать?
25 Стрелок
 
06.12.12
16:55
ниже нашёл ссылку на 1срр. качнул - сенькс
26 Ёпрст
 
06.12.12
16:55
27 Ёпрст
 
06.12.12
16:55
там кстати, несколько версий..
28 Mikeware
 
06.12.12
17:01
(24) значит, тебя в яндексе забанили...
всегда думаю, что ж такого нужно натворить, чтоб забанили в яндексе...
зы.
http://s019.radikal.ru/i627/1212/71/2cfb190a6e7f.jpg
29 КонецЦикла
 
06.12.12
17:01
(20) Зачот
30 Стрелок
 
06.12.12
17:02
(28) оно "падла" меня на яндекс.уа перебрасывает - на украинскую локализацию. а тут первой ссылка на инфостат
31 dum80
 
06.12.12
17:03
скачал, буду разбираться, всем спасибо.
32 Mikeware
 
06.12.12
17:03
(30) свой яндекс? с горилкой и дывчынами?
33 Стрелок
 
06.12.12
17:04
(32) ага. и сало по краям колосится ;)
34 Ёпрст
 
06.12.12
17:04
(28) чего ты там в ведроиде изучаешь ?
35 Ёпрст
 
06.12.12
17:05
1с-ину с ведроидом дружить собрался, своего агента пишешь ?
36 Стрелок
 
06.12.12
17:08
37 Mikeware
 
06.12.12
17:12
(35) Дружат уже. Просто дописываю конфигурашку для А+ под свою специфику, да с эмулятором проблемы. а на девайсе постоянно перезаливаться геморно.
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший