Имя: Пароль:
1C
1C 7.7
v7: Как правильно создать запрос?
0 Henistaromin
 
04.06.12
17:19
Добрый вечер всем!
Нужна Ваша помощь.
Имеется конфигурация ТиС 7.7 Надо написать простенький отчет. В отчете указываем "ДатаНач" и "ДатаКон" и Номенклатуру(либо номенклатурную группу). Всё!
Подскажите, как правильно составить запрос который за указанный период перебирал документы "ПоступлениеТМЦ" анализировал их табличную часть и если в табличной части встречается указанная в отчете "Номенклатура", то делал что-то типа "Номенклатура = Номенклатура + 1". В конечном итоге должно получиться(За указанный период с "ДатаНач" по "ДатаКон" приходов "Номенклатура" по документам Поступление ТМЦ найдено 38)
Может быть это можно организовать перебором.
Спасибо за ответы.
1 akaBrr
 
04.06.12
17:22
(0) Я за перебор
2 zak555
 
04.06.12
17:23
зачем обращаться к документу, если есть регистры ?
3 akaBrr
 
04.06.12
17:25
(2) смотря какая цель отчета
4 andrewks
 
04.06.12
17:25
сколько?
5 akaBrr
 
04.06.12
17:25
(4) за такое брать деньги?
6 zak555
 
04.06.12
17:26
(3) пример
7 Venom
 
04.06.12
17:27
(0) поковыряйся в "Конструкторе запросов", там всё это есть
8 akaBrr
 
04.06.12
17:28
(6) черт, пример то я и не заметил :)
9 Voronve
 
04.06.12
17:28
// ДатаНач, ДатаКон - твой интервал дат
// ВыбНоменклатура - элемент/группа справочника номенклатура
Счетчик = 0;
Док = СоздатьОбъект("Документ.ПоступлениеТМЦ");
Док.ВыбратьДокументы(ДатаНач, ДатаКон);
Пока Док.ПолучитьДокумент() = 1 Цикл
Док.ВыбратьСтроки();
Пока Док.ПолучитьСтроку() = 1 Цикл
Если ВыбНоменклатура.ЭтоГруппа() = 1 Тогда
Счетчик = Счетчик + Док.Номенклатура.ПринадлежитГруппе(ВыбНоменклатура);
ИначеЕсли Док.Номенклатура = ВыбНоменклатура Тогда
Счетчик = Счетчик + 1;
КонецЕсли;
КонецЦикла;
КонецЦикла;
10 Henistaromin
 
04.06.12
17:29
Цель отчета узнать сколько документов "ПоступлениеТМЦ" с "Номенклатурой" было оприходованно. Я тоже за перебор. Подсчет документов сделал, но немогу наладить отбор их по определённой номенклатуре. (9) Спасибо, сейчас по тестю!
11 akaBrr
 
04.06.12
17:30
(10) в (9) не проверяется был ли товар "оприходован"
12 Ёпрст
 
04.06.12
17:31
ТекстЗапроса="
|
|Период С НачДата По КонДата;
|Номенклатура = Документ.ПоступлениеТМЦ.Номенклатура;
|Функция ВсегоДоков = Счётчик();
|Условие (Номенклатура в СписокНоменклатуры);
|Группировка Документ;";

Запрос = СоздатьОбъект("Запрос");
Запрос.Выполнить(ТекстЗапроса);
Сообщить("Всего найдено: "+Запрос.ВсегоДоков );

наслаждайся
13 zak555
 
04.06.12
17:31
(12) период зачем ?
14 akaBrr
 
04.06.12
17:32
(12) а если Номенклатура - услуга?
15 andrewks
 
04.06.12
17:32
(13) что значит "зачем"?
16 andrewks
 
04.06.12
17:32
(14) и чё?
17 Ёпрст
 
04.06.12
17:33
(14) и че ? он же фильтр ставит на нужну.
18 Voronve
 
04.06.12
17:33
(11) Дальше сам догонит
19 zak555
 
04.06.12
17:34
(15) почему не написать просто : С НачДата По КонДата;
20 Voronve
 
04.06.12
17:34
(12) в запросе проверка нужна на ДатаКон>ДатаТА. иначе свалиться запрос
21 akaBrr
 
04.06.12
17:35
(17) я к тому что результат проведения может не совпадать с ТЧ
22 Voronve
 
04.06.12
17:36
(21) В док поступленич ТМЦ типовой нельзя засунуть работу\услугу. там проверка стоит
23 andrewks
 
04.06.12
17:36
(20) сфигаль?
24 andrewks
 
04.06.12
17:36
(19) буквоед? :)
25 akaBrr
 
04.06.12
17:37
(22) точно, типовая, мне пора домой, я устал :)
26 zak555
 
04.06.12
17:39
(24) это кто такой ?
27 Henistaromin
 
04.06.12
17:48
Всем огромное спасибо. Благодаря Вам всё получилось! =)