Имя: Пароль:
1C
1С v8
Помогите с созданием отчета
,
0 FuriKuri
 
12.09.12
12:54
Делаю отчет по "Остатки и движения объектов" Данные в запросе беру из регистра ОстаткиОбъектовНаПредприятии. Делаю не через СКД. Вот код. Он работает.


Запрос = Новый Запрос;
Запрос.Текст = ""
Запрос.УстановитьПараметр("НачПериода",НачалоПериода);
Запрос.УстановитьПараметр("КонПериода",КонецПериода);

ОбластьЗаголовка = Макет.ПолучитьОбласть("Шапка");
ОбластьЗаголовка.Параметры.Заголовок = "Остатки и движения объектов проката";
ТабДок.Вывести(ОбластьЗаголовка);


ОбластьПодзаголовок = Макет.ПолучитьОбласть("Ур1");
ТабДок.Вывести(ОбластьПодзаголовок);
ОбластьСтрока = Макет.ПолучитьОбласть("Ур2");
ОбластьОбъект = Макет.ПолучитьОбласть("Ур3");
ОбластьДок = Макет.ПолучитьОбласть("Ур4");

Результат = Запрос.Выполнить();
ТабДок.НачатьАвтогруппировкуСтрок();


ВыборкаГруппа=Результат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией,"Склад");
Пока ВыборкаГруппа.Следующий() Цикл
ОбластьСтрока.Параметры.Заполнить(ВыборкаГруппа);
ТабДок.Вывести(ОбластьСтрока,ВыборкаГруппа.Уровень());
ВыборкаДетали = ВыборкаГруппа.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкамСИерархией,"ОбъектыПроката");

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


Проблема вот какая. В области "Ур4" так же имеются поля "НачОстаток","Приход","Расход","КонОстаток". Они также получаются в запросе из регистра. Что и где нужно добавить в коде, чтоб эти поля выводились..
1 pessok
 
12.09.12
13:02
ОбластьОбъект.Параметры.НачОстаток = ВыборкаИзЗапроса.НачОстаток
2 FuriKuri
 
12.09.12
13:09
(1) Я так понял перед группировками следует добавить

Выборка = Запрос.Выполнить().Выбрать(); ?
3 Alex S D
 
12.09.12
13:10
"Делаю не через СКД" вот тут ты протупил, и теперь имеешь лишний гемор
4 FuriKuri
 
12.09.12
13:10
(3) я знаю что через скд делается за пару минут. Но мне нужно именно так... с макетами, формами.. код руками..
5 Alex S D
 
12.09.12
13:11
в скд тоже есть макеты, формы, код руками
6 palpetrovich
 
12.09.12
13:18
если у тебя "я поля "НачОстаток","Приход","Расход","КонОстаток". Они также получаются в запросе из регистра. ", и такие-же параметры есть в макете в нужной области, то метод Заполнить сделает ВСЁ сам :)
7 FuriKuri
 
12.09.12
13:20
(6) Вот именно, я уже перепробовал все:( я не понимаю куда можно этот метод вставить, чтоб одно заполняло эти поля одновременно с выводом документа (Ну так как они в одной области)
8 FuriKuri
 
12.09.12
13:30
Я так понял это будет находиться в последнем цикле

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

Тогда как прописать тут заполнение?
9 palpetrovich
 
12.09.12
13:31
(7) ну как-бы этот код должен все сделать:
Пока ВыборкаДок.Следующий() Цикл
           ОбластьДок.Параметры.Заполнить(ВыборкаДок);
           ТабДок.Вывести(ОбластьДок, ВыборкаДок.Уровень());
           КонецЦикла;
в "ОбластьДок" точно есть эти параметры?
в выборке "ВыборкаДок" точно есть эти параметры?
10 FuriKuri
 
12.09.12
13:32
Вот оно берет,

ВыборкаДок = ВыборкаДетали.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"ДокументПред");

в том и проблема что наверно там нет этих параметров =\
11 pessok
 
12.09.12
13:37
(10) отладчик украли чтоль?
12 FuriKuri
 
12.09.12
13:40
(11) пусто там.. смотрел

Если делаю вот так


Пока Выборка.Следующий() Цикл
           ОбластьДок.Параметры.Заполнить(Выборка);
           ТабДок.Вывести(ОбластьДок, ВыборкаДок.Уровень());
           КонецЦикла;
То выдает все что нужно, но все доки по 2 раза =\
13 pessok
 
12.09.12
13:41
(12) где пусто? в выборке? значит не сгруппированы поля
14 FuriKuri
 
12.09.12
13:43
(13) ну вот и пытаюсь понять, где ошибка...
15 pessok
 
12.09.12
13:45
давай уже код запроса, тут телепатов нет.
16 FuriKuri
 
12.09.12
13:47
ВЫБРАТЬ
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор КАК ДокументПред,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката КАК ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад КАК Склад,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ОстаткиОбъектовПрокатаПредприятия.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоКонечныйОстаток
|ИТОГИ ПО
|    Склад ИЕРАРХИЯ,
|    ОбъектыПроката ИЕРАРХИЯ,
|    ДокументПред,
|    КоличествоНачальныйОстаток"
17 pessok
 
12.09.12
13:49
итить...
18 pessok
 
12.09.12
13:50
тебе надо делать еще один проход по группировке ДокументПред, это для начала. Итоги по КоличествоНачальныйОстаток - это конец...
19 FuriKuri
 
12.09.12
13:51
(17) очень содержательный ответ :) Я знаю что наверно криво все, но все-таки...
20 pessok
 
12.09.12
13:52
(18) а, уже сделано. итоги по конечному остатку в топку
21 pessok
 
12.09.12
13:53
и будет тебе счастье
22 pessok
 
12.09.12
13:53
конечный остаток в сумму
23 palpetrovich
 
12.09.12
13:55
(16) секция "СГРУППИРОВАТЬ"  - доставляет :)
24 pessok
 
12.09.12
13:55
(23) про группировки я решил умолчать, дабы не травмирвоать человека :) но вот итоги по конечному остатку ему реально мешают вывести результат)
25 FuriKuri
 
12.09.12
13:56
(18) как сделать еще один проход?

В итогах Начальный остаток
26 FuriKuri
 
12.09.12
13:59
Так?

"ВЫБРАТЬ
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор КАК ДокументПред,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката КАК ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад КАК Склад,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ОстаткиОбъектовПрокатаПредприятия.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход
|ИТОГИ ПО
|    Склад ИЕРАРХИЯ,
|    ОбъектыПроката ИЕРАРХИЯ,
|    ДокументПред";
27 palpetrovich
 
12.09.12
14:02
(24) блин, не заметил :))
28 FuriKuri
 
12.09.12
14:03
С таким выводит конечный остаток, но цифры какието астрономические =\
29 palpetrovich
 
12.09.12
14:05
(26) так кошернее :)
"ВЫБРАТЬ
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор КАК ДокументПред,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката КАК ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад КАК Склад,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход) КАК Приход,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход) КАК Расход,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ОстаткиОбъектовПрокатаПредприятия.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад
|ИТОГИ ПО
|    Склад ИЕРАРХИЯ,
|    ОбъектыПроката ИЕРАРХИЯ,
|    ДокументПред";
30 FuriKuri
 
12.09.12
14:06
о, все
Допер :) работает ))
31 Noroving
 
12.09.12
14:07
Кошернее воттак ))
ВЫБРАТЬ
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор КАК ДокументПред,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката КАК ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад КАК Склад,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоНачальныйОстаток) КАК НачальныйОстаток,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоПриход) КАК Приход,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоРасход) КАК Расход,
|    СУММА(ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.КоличествоКонечныйОстаток) КАК КоличествоКонечныйОстаток
|ИЗ
|    РегистрНакопления.ОстаткиОбъектовПрокатаПредприятия.ОстаткиИОбороты(&НачПериода, &КонПериода, Регистратор, , ) КАК ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты
|
|СГРУППИРОВАТЬ ПО
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад
32 FuriKuri
 
12.09.12
14:07
(31) Спасибо :) Именно так и сделал :)
33 FuriKuri
 
12.09.12
14:08
Еще один  маленький вопрос, как сделать чтоб в области Склад выводились итоги по всем докам для объекта?
34 Noroving
 
12.09.12
14:08
(32) С праздничком)
35 FuriKuri
 
12.09.12
14:09
(34) еще какой :D Напьюсь наверно))))
36 FuriKuri
 
12.09.12
14:19
Добавил в запросе

|ИТОГИ
|    СУММА(КоличествоПриход),
|    СУММА(КоличествоРасход),
|    СУММА(КоличествоКонечныйОстаток)

Как мне обратиться к этим данным?
37 palpetrovich
 
12.09.12
14:22
куда добавил, что убрал, показывай уже все
38 FuriKuri
 
12.09.12
14:24
|СГРУППИРОВАТЬ ПО
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Регистратор,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.ОбъектыПроката,
|    ОстаткиОбъектовПрокатаПредприятияОстаткиИОбороты.Склад
|ИТОГИ
|    СУММА(КоличествоПриход),
|    СУММА(КоличествоРасход),
|    СУММА(КоличествоКонечныйОстаток)
|ПО
|    Склад ИЕРАРХИЯ,
|    ОбъектыПроката ИЕРАРХИЯ,
|    ДокументПред";

Это конец запроса.

Нужно вы области Склада Над приходом, раскходом, и остатком выводились итоги по складу
39 FuriKuri
 
12.09.12
14:25
На макете добавил поля "ИтогРасход"... и т.д
40 palpetrovich
 
12.09.12
15:05
(39) Думаю, будет тебе не лишним, познакомиться с конструктором отчетов. Послушай доброго совета, начни отчет заново, он тебе и выходную форму нарисует и поля заполнит. Создашь форму,в одуле вызовешь конструктор запросов, тип обработки выбираешь - Вывод в табличный документ ...
Потом красоту наведешь и все
41 FuriKuri
 
12.09.12
15:23
Я понимая что так легче.. НО вот у меня такое задание, сделать это все без СКД, контсрукторов и т.д.. а руками все
42 FuriKuri
 
12.09.12
15:44
Больше нет никаких идей с итогами? :(
43 palpetrovich
 
12.09.12
15:45
(41) это кто-ж такой злой, что "все руками"  ? ... и кстати, он разрешил пользоваться интернетом для решения? :)
44 FuriKuri
 
12.09.12
15:46
(43) злой дядя который дал задание)
45 FuriKuri
 
12.09.12
15:47
Я только учусь, так что мне чем хочешь пользоваться можно..