Имя: Пароль:
1C
 
1c 7.7.021 пишу конфу с нуля, не работают запросы к документам... need help
0 nikn
 
31.05.04
16:23
1c 7.7.021 пишу конфу с нуля, не работают запросы к документам...

т.е. они выполняются, но результат пустой...
делаю такой же запрос к справочникам, всё работет

что делаю не так ? может в шапке документа не так что ? или галку где поставить ?

ещё раз повторяюсь - пишу с нуля..., конфа чистая

вот кусок кода

-----------------------------
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"ОбрабатыватьДокументы все;
|ТекущийДокумент = Документ.ПродуктыБНК.ТекущийДокумент;
|Наименование = Документ.ПродуктыБНК.Наименование;
|Группировка ТекущийДокумент;
|Функция Колво = Счётчик();
|"//}}ЗАПРОС
;    


Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
   Возврат;
КонецЕсли;

Сообщить(Запрос.Колво);
-----------------------------
1 lexa
 
31.05.04
16:34
Запрос = СоздатьОбъект("Запрос");
ТекстЗапроса =
"ОбрабатыватьДокументы все;
|ТекущийДокумент = Документ.ПродуктыБНК.ТекущийДокумент;
|Наименование = Документ.ПродуктыБНК.Наименование;
|Группировка ТекущийДокумент;
|Функция Колво = Счётчик();
|"//}}ЗАПРОС
;    


Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
  Возврат;
КонецЕсли;
Пока Запрос.Группировка() = 1 Цикл

Сообщить(Запрос.Колво);
КонецЦикла;
2 nikn
 
31.05.04
16:47
да не...

Пока Запрос.Группировка() = 1 Цикл
Сообщить(Запрос.Колво);
КонецЦикла;


это всё мелочи, уже испробовано. дело в том что запрос вообще пустой возвращается.... т.е. ничего не выбирается(нет групировок)... хотя там точно есть 6 документов...
3 nikn
 
31.05.04
16:51
запрос не проходит ни по одному документу в конфе...
хотя по справочникам всё ок
4 Bzzzzz
 
31.05.04
16:52
Добавь Период ...
5 lexa
 
31.05.04
16:54
а Счётчик() - это что?
6 lexa
 
31.05.04
16:58
Чт запрос должен подсчитать?
Кол-во доков?
Кол-во стпок в доках?
7 Bzzzzz
 
31.05.04
16:59
(5) Предопределенная функция языка запросов.
Хм.мм у меня подобный запрос нормально работает
8 nikn
 
31.05.04
17:02
да Счётчик тут не важен, период не помогае - пробовал

даже если его убрать (счётчик) - тоже самое

ТекстЗапроса =
"ОбрабатыватьДокументы все;
|ТекущийДокумент = Документ.ПродуктыБанков.ТекущийДокумент;
|Наименование = Документ.ПродуктыБанков.Наименование;
|Группировка ТекущийДокумент;
|"//}}ЗАПРОС
;    

...

Пока Запрос.Группировка() = 1 Цикл
   Сообщить(Запрос.ТекущийДокумент);
КонецЦикла;    

и тишина, запрос пустой
9 nikn
 
31.05.04
17:03
в том то и дело что Торговле 9.2 такое работает без проблем, но я ещё раз повторюсь, всё делаю в чистой конфигурации...
10 Bzzzzz
 
31.05.04
17:12
(9) Ну, ты волшебник млин тадысь. У меня и в самописной работает.
Выгрузи запрос в ТЗ и глянь чего-там вообще есть то
11 lexa
 
31.05.04
17:12
Запрос = СоздатьОбъект("Запрос");
НачПериод =  Дата(0);
ТекстЗапроса =
"
|ОбрабатыватьДокументы все;
|Период с НачПериод;
|ТекущийДокумент = Документ.ПродуктыБНК.ТекущийДокумент;
|Наименование = Документ.ПродуктыБНК.Наименование;
|Группировка ТекущийДокумент;
|Функция Колво = Счётчик();
|"//}}ЗАПРОС
;    


Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
 Возврат;
КонецЕсли;
Пока Запрос.Группировка() = 1 Цикл

Сообщить(Запрос.Колво);
КонецЦикла;
12 Z1
 
31.05.04
17:17
(8)
Надо добавить период.
Ошибся с выбором периода
покажи свой запрос с периодом.
13 Bzzzzz
 
31.05.04
17:19
(12) период не обязателен. тока что проверено
14 DimG
 
31.05.04
17:19
объяви переменную запроса как не текущийдокумент, а, например, текдок, ну и период...
15 lexa
 
31.05.04
17:20
(12)согласен и перед ОбрабатыватьДокументы все; нет символа |
16 Z1
 
31.05.04
17:20
(13) на чем проверил если у тебя не работает ?
говорят же тебе период нужен.
17 Z1
 
31.05.04
17:24
(15) перед "нет символа | " не нужен у него определение начинается со второй
строки а не с первой.
18 lexa
 
31.05.04
17:25
Период точно нужен, а потом не факт что Документ.ПродуктыБанков.Наименование - реквизит табличной части
19 nikn
 
31.05.04
17:29
я всё выбираю из Шапки...
20 Bzzzzz
 
31.05.04
17:29
ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)ОбрабатыватьДокументы все;
//    |Период с ВыбНачПериода по ВыбКонПериода;    
   |ТекущийДокумент = Документ.ТоварныйЧек.ТекущийДокумент;
   |НомерДок = Документ.ТоварныйЧек.НомерДок;
   |Функция Колво = Счётчик();
   |Группировка ТекущийДокумент;
   |"//}}ЗАПРОС
   ;
Во, конфа - "самописная". Всё работает и без периода, и без "|"
21 nikn
 
31.05.04
17:34
помогло вот это
если убрать период или ОбрабатыватьДокументы - запрос пустой :)

   ТекстЗапроса =
   "//{{ЗАПРОС(Сформировать)
   |Период с (НачГода(ТекущаяДата())) по (КонГода(ТекущаяДата()));
   |ОбрабатыватьДокументы все;
   |ТекущийДокумент = Документ.ПродуктыБанков.ТекущийДокумент;
   |НомерДок = Документ.ПродуктыБанков.НомерДок;
   |Наименование = Документ.ПродуктыБанков.Наименование;
   |Группировка ТекущийДокумент упорядочить по ТекущийДокумент.Наименование;
   |"//}}ЗАПРОС
   ;
22 lexa
 
31.05.04
17:35
(20) и чего он у тебя считает?
23 nikn
 
31.05.04
17:37
PS народ у меня документы эти не проводятся... мне кажется загвоздка в этом...

кстати мне нужно все документы выбрать а тут получается только за текущий год...
24 Z1
 
31.05.04
17:38
(20) Приведи свой нерабоающий запрос c периодом.
Зачем анализировать то что работает.
Если хочешь искать сам грабли то и ищи их.грабли как раз в 21 релизе.
И при чем тут самописная-несамописная конфа. Надеюсь документы то у тебя есть?
25 lexa
 
31.05.04
17:45
(21) если у тебя доки непроведенные, то по умолчанию без ОбрабатыватьДокументы все он тебе ничего не покажет, а период необязателен, ты бы сразу все объяснил бы по человечески, так что ты хотел посчитаь - то?
26 nikn
 
31.05.04
18:34
да мне в общем то надо просто выбрать по определённому критерию продукты
и потом более детальный отсев делать, но там уже матиматика, правда не из тривиальных... :)

без периода не получается :( - пустой запрос

т.е. если одно из двук убираю
   |Период с (Дата(0)) по (КонГода(ТекущаяДата()));
   |ОбрабатыватьДокументы все;    

ничего не получается
27 Z1
 
31.05.04
18:47
(26) Все правильно. Группировка по чистым документам без выбора периода не работает. А когда убираешь обрабатыватьдокументы Все - то выбираются только проведенные документы а у тебя доки скорее всего непроведенные, вот поэтому и нужны обязательно два условия.
Замечание : Не используйте зарезервированные слова для названия внутрених переменных.
ну также я не понял что такое у документа наименование ( из 21 )
28 lexa
 
31.05.04
18:55
(26) согласен
нет постановки задачи и условий
29 nikn
 
31.05.04
19:03
наименование - регист...

не бейте меня, в первый раз пишу... :) многих тонкостей не знаю
30 lexa
 
31.05.04
19:10
(29) да никто и не собирается, а ты типовые смотрел. как оно все устроено?
31 nikn
 
31.05.04
19:24
ага, только мне торговлю не надо вообще делать
мне аналитику нужно сделать...
32 SnarkHunter
 
31.05.04
19:46
(31)Какую такую аналитику?

Кстати...
"нет символа |" - символ "|" в тексте запроса вообще необязателен...

"Группировка по чистым документам без выбора периода не работает" - если не указана конструкция "Период С ... По ...", то период запроса устанавливается на ТА (или на РабочуюДату(), если нет ОУ), т.е. при наличии документов за эту дату все будет работать...
33 nikn
 
31.05.04
19:50
мда...
документы были на это число.... на 0:30 - но ни чего не выводило...
34 SnarkHunter
 
31.05.04
19:55
На какое на это число?
35 nikn
 
31.05.04
21:36
на сегодня
36 SnarkHunter
 
01.06.04
06:25
Ну и как соотносятся "сегодня" и дата ТА в твоей базе?
37 MAAlekseev
 
01.06.04
08:38
Потеха, но читать интересно
38 lexa
 
01.06.04
10:23
я думаю , что раз конфа самописная, то прка не озаботились ни ТА, ни рабочей датой
39 nikn
 
01.06.04
16:54
мне ТА и рабочая дата не нужны в принципе... я же сказал что мне торговать в ней не надо...
40 SnarkHunter
 
01.06.04
16:55
Как связана торговля и ТА?
41 lexa
 
01.06.04
16:56
(39) а причем здесь торговля
42 alxkorvin
 
01.06.04
17:06
По крайней мере в 021 релизе, запросы с участием документов в группировках при выборке результата могут выдавать пустую таблицу. Хотя если результат запроса выгрузить в ТЗ, то в ТЗ будет нужная выборка.
43 aqua
 
03.06.04
19:41
насколько я помню запрос идет только по проведенным докам. если явно не указать ОбрабатыватьДокументы все, то туда не попадут непроведенные, в т.ч те, по которым проведение не предусмотрено
AdBlock убивает бесплатный контент. 1Сергей