Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.56/9: Рейтинг темы: голосов - 9, средняя оценка - 4.56
0 / 0 / 0
Регистрация: 12.05.2016
Сообщений: 2
1

Разделение периода на месяцы в отчете

12.05.2016, 20:37. Показов 1852. Ответов 4
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Помогите! При формировании отчета при выборе периода от 2-х месяцев данные отчета суммируются и дублируются. Как сделать так, чтобы при формировании отчета при выборе периода от 2-х месяцев данные отчета выводились за месяц в отдельной таблице?
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
        
ДатаНач = НачалоМесяца(ПериодРегистрацииНач);
ДатаКон  = КонецМесяца(ПериодРегистрацииКон);
НачалоПериода = НачалоДня(ДатаНач);
КонецПериода  = КонецДня(ДатаКон);   
Пока Месяц(НачалоПериода) <= Месяц(КонецПериода) цикл                        
СуммаВыпуска   = ВыборкаНоменклатураВыпуска.ОбщаяСуммаВыпуска;
СуммаВыпускаПР = ?(ВариантОтчета = 3, ВыборкаНоменклатураВыпуска.ОбщаяСуммаВыпускаПР, 0);
СуммаВыпускаВР = ?(ВариантОтчета = 3, ВыборкаНоменклатураВыпуска.ОбщаяСуммаВыпускаВР, 0);           
Коэффициент   = ?(ВсегоВыпуск = 0, 0, СуммаВыпуска   / ВсегоВыпуск);
КоэффициентПР = ?(ВсегоВыпускПР = 0, 0, СуммаВыпускаПР / ВсегоВыпускПР);
КоэффициентВР = ?(ВсегоВыпускВР = 0, 0, СуммаВыпускаВР / ВсегоВыпускВР);
ВыборкаПрямыеЗатраты = ВыборкаНоменклатураВыпуска.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "ПрямыеЗатраты");
                        ИтогоСуммаЗатрат20 = 0;
                        ИтогоСуммаЗатрат20ПР = 0;
                        ИтогоСуммаЗатрат20ВР = 0;
                        ДокументРезультат.НачатьАвтогруппировкуСтрок();
                        Пока ВыборкаПрямыеЗатраты.Следующий() Цикл
                            
                            Если ВыборкаПрямыеЗатраты.СуммаПрямыхЗатрат = 0 Тогда
                                Продолжить;
                            КонецЕсли;
                            СуммаПрямыхЗатрат   = 0;
                            СуммаПрямыхЗатратПР = 0;
                            СуммаПрямыхЗатратВР = 0;
ВыборкаСчетПрямыхЗатрат = ВыборкаПрямыеЗатраты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "КорСчетПрямыхЗатрат");
Если ВыборкаСчетПрямыхЗатрат.Количество() = 0 Тогда
СуммаПрямыхЗатрат = ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатрат;
Если ВариантОтчета = 3 Тогда
СуммаПрямыхЗатратПР = ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратПР;
                                    СуммаПрямыхЗатратВР = ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратВР;
                                КонецЕсли;
                            Иначе
                                Пока ВыборкаСчетПрямыхЗатрат.Следующий() Цикл
                                    ВыборкаНоменклатураЗатрат = ВыборкаСчетПрямыхЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатураПрямыхЗатрат");
                                    Если ВыборкаНоменклатураЗатрат.Количество() = 0 Тогда
                                        СуммаПрямыхЗатрат = СуммаПрямыхЗатрат + ВыборкаПрямыеЗатраты.СуммаПрямыхЗатрат;
                                        Если ВариантОтчета = 3 Тогда
                                            СуммаПрямыхЗатратПР = СуммаПрямыхЗатратПР + ВыборкаПрямыеЗатраты.СуммаПрямыхЗатратПР;
                                            СуммаПрямыхЗатратВР = СуммаПрямыхЗатратВР + ВыборкаПрямыеЗатраты.СуммаПрямыхЗатратВР;
                                        КонецЕсли;
                                    Иначе
                                        Пока ВыборкаНоменклатураЗатрат.Следующий() Цикл
                                            СуммаПрямыхЗатрат = СуммаПрямыхЗатрат + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатрат;
                                            Если ВариантОтчета = 3 Тогда
                                                СуммаПрямыхЗатратПР = СуммаПрямыхЗатратПР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратПР;
                                                СуммаПрямыхЗатратВР = СуммаПрямыхЗатратВР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратВР;
                                            КонецЕсли;
                                            
                                        КонецЦикла;
                                    КонецЕсли;
                                КонецЦикла;
                            КонецЕсли;
                            
                            ОбластьСтрокаЗатрат.Параметры.НаименованиеЗатрат = ВыборкаПрямыеЗатраты.ПрямыеЗатраты;
                            ОбластьСтрокаЗатрат.Параметры.СуммаЗатрат = СуммаПрямыхЗатрат * Коэффициент;
                            ВывестиОбласть(ДокументРезультат, ОбластьСтрокаЗатрат, ОбластьСтрокаЗатратРазницы, ОбластьСтрокаЗатратОкончание, 2, "Группа2", Ложь, "СуммаЗатрат", ВыборкаПрямыеЗатраты, СуммаПрямыхЗатратПР * КоэффициентПР, СуммаПрямыхЗатратВР * КоэффициентВР);
                            ВыборкаСчетПрямыхЗатрат = ВыборкаПрямыеЗатраты.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "КорСчетПрямыхЗатрат");                      
                            Пока ВыборкаСчетПрямыхЗатрат.Следующий() Цикл                           
                                Если ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатрат = 0 Тогда
                                    Если ВариантОтчета = 3 Тогда
                                        Если ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратПР = 0 И ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратВР = 0 Тогда
                                            Продолжить;
                                        КонецЕсли;
                                    Иначе
                                        Продолжить;
                                    КонецЕсли;
                                КонецЕсли;                             
                                ВыборкаНоменклатураЗатрат = ВыборкаСчетПрямыхЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатураПрямыхЗатрат");
                                СуммаПрямыхЗатрат = 0;
                                СуммаПрямыхЗатратПР = 0;
                                СуммаПрямыхЗатратВР = 0;
                                Пока ВыборкаНоменклатураЗатрат.Следующий() Цикл
                                    СуммаПрямыхЗатрат = СуммаПрямыхЗатрат + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатрат;
                                    Если ВариантОтчета = 3 Тогда
                                        СуммаПрямыхЗатратПР = СуммаПрямыхЗатратПР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратПР;
                                        СуммаПрямыхЗатратВР = СуммаПрямыхЗатратВР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратВР;
                                    КонецЕсли;                                 
                                КонецЦикла;
                                СуммаПрямыхЗатрат = ?(СуммаПрямыхЗатрат = 0, ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатрат, СуммаПрямыхЗатрат);
                                ОбластьСчетЗатрат.Параметры.НаименованиеСчетаЗатрат = РазъяснитьЗатраты(ВыборкаСчетПрямыхЗатрат.КорСчетПрямыхЗатрат);
                                ОбластьСчетЗатрат.Параметры.СуммаСчетаЗатрат = СуммаПрямыхЗатрат * Коэффициент;
                                ВывестиОбласть(ДокументРезультат, ОбластьСчетЗатрат, ОбластьСчетЗатратРазницы, ОбластьСчетЗатратОкончание, 3, "Группа3", Ложь, "СуммаСчетаЗатрат", ВыборкаСчетПрямыхЗатрат, СуммаПрямыхЗатратПР * КоэффициентПР, СуммаПрямыхЗатратВР * КоэффициентВР);
                                
                                ВыборкаНоменклатураЗатрат = ВыборкаСчетПрямыхЗатрат.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "НоменклатураПрямыхЗатрат");
                                Пока ВыборкаНоменклатураЗатрат.Следующий() Цикл
                                    
                                    ОбластьНоменклатураЗатрат.Параметры.НаименованиеНоменклатурыЗатрат = УправлениеПроизводством.ВыводНаименованияВыпуска(ВыборкаНоменклатураЗатрат.НоменклатураПрямыхЗатрат);
                                    ОбластьНоменклатураЗатрат.Параметры.СуммаНоменклатурыЗатрат        = ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатрат * Коэффициент;
                                    ОбластьНоменклатураЗатрат.Параметры.КоличествоНоменклатурыЗатрат   = ВыборкаНоменклатураЗатрат.КоличествоПрямыхЗатрат * Коэффициент;
                                    ОбластьНоменклатураЗатрат.Параметры.ЦенаНоменклатурыЗатрат         = ?(ВыборкаНоменклатураЗатрат.КоличествоПрямыхЗатрат = 0, 0, ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатрат / ВыборкаНоменклатураЗатрат.КоличествоПрямыхЗатрат);
                                    ВывестиОбласть(ДокументРезультат, ОбластьНоменклатураЗатрат, ОбластьНоменклатураЗатратРазницы, ОбластьНоменклатураЗатратОкончание, 4, "Группа4", Ложь, "СуммаНоменклатурыЗатрат", ВыборкаНоменклатураЗатрат, ?(ВариантОтчета = 3, (ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратПР) * КоэффициентПР, 0), ?(ВариантОтчета = 3, (ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратВР) * КоэффициентВР, 0));
                                    
                                    ИтогоСуммаЗатрат20 = ИтогоСуммаЗатрат20 + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатрат * Коэффициент;
                                    Если ВариантОтчета = 3 Тогда
                                        ИтогоСуммаЗатрат20ПР = ИтогоСуммаЗатрат20ПР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратПР * КоэффициентПР;
                                        ИтогоСуммаЗатрат20ВР = ИтогоСуммаЗатрат20ВР + ВыборкаНоменклатураЗатрат.СуммаПрямыхЗатратВР  * КоэффициентВР;
                                    КонецЕсли;
                                КонецЦикла; // НоменклатураЗатрат
                                Если ВыборкаНоменклатураЗатрат.Количество() = 0 Тогда
ИтогоСуммаЗатрат20 = ИтогоСуммаЗатрат20 + ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатрат * Коэффициент;
Если ВариантОтчета = 3 Тогда
ИтогоСуммаЗатрат20ПР = ИтогоСуммаЗатрат20ПР + ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратПР * КоэффициентПР;
ИтогоСуммаЗатрат20ВР = ИтогоСуммаЗатрат20ВР + ВыборкаСчетПрямыхЗатрат.СуммаПрямыхЗатратВР  * КоэффициентВР;
                                    КонецЕсли;
                                КонецЕсли;
                                
                            КонецЦикла; // СчетЗатрат
                        КонецЦикла;  // ПрямыеЗатраты
                        
                        ОбластьИтого20.Параметры.ИтогоСуммаЗатрат20 = ИтогоСуммаЗатрат20;
                        ВывестиОбласть(ДокументРезультат, ОбластьИтого20, ОбластьИтого20Разницы, ОбластьИтого20Окончание, 2, "Группа2", Ложь, "ИтогоСуммаЗатрат20", ВыборкаСчетПрямыхЗатрат, ИтогоСуммаЗатрат20ПР, ИтогоСуммаЗатрат20ВР);
                        
                        Всего25 = ВыборкаНоменклатураВыпуска.Сумма25;
                        ВсегоСуммаЗатрат   = 0;
                        ВсегоСуммаЗатратПР = 0;
                        ВсегоСуммаЗатратВР = 0;
                        Если НЕ Всего25 = 0 Тогда
                            ВывестиОбласть(ДокументРезультат, ОбластьШапка25, ОбластьШапка25Разницы, ОбластьШапка25Окончание, 2, "Группа2", Ложь, "Текст", ВыборкаНоменклатураВыпуска, "", "");
                            Выборка25 = ВыборкаНоменклатураВыпуска.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Затраты25");
                            Пока Выборка25.Следующий() Цикл
                                ОбластьСтрокаЗатрат.Параметры.НаименованиеЗатрат = Выборка25.Затраты25;
                                ОбластьСтрокаЗатрат.Параметры.СуммаЗатрат        = Выборка25.Сумма25 * Коэффициент;
                                ВсегоСуммаЗатрат = ВсегоСуммаЗатрат + Выборка25.Сумма25 * Коэффициент;
                                Если ВариантОтчета = 3 Тогда
                                    Сумма25ПР = (Выборка25.Сумма25ПР) * КоэффициентПР;
                                    Сумма25ВР = (Выборка25.Сумма25ВР) * КоэффициентВР;
                                Иначе
                                    Сумма25ПР = 0;
                                    Сумма25ВР = 0;
                                КонецЕсли;
                                ВсегоСуммаЗатратПР = ВсегоСуммаЗатратПР + Сумма25ПР;
                                ВсегоСуммаЗатратВР = ВсегоСуммаЗатратВР + Сумма25ВР;
                                ВывестиОбласть(ДокументРезультат, ОбластьСтрокаЗатрат, ОбластьСтрокаЗатратРазницы, ОбластьСтрокаЗатратОкончание, 0, 0, Ложь, "СуммаЗатрат", Выборка25, Сумма25ПР, Сумма25ВР);
                            КонецЦикла;                   
                            ОбластьИтого25.Параметры.ИтогоСуммаЗатрат25        = ВсегоСуммаЗатрат;
                            ВывестиОбласть(ДокументРезультат, ОбластьИтого25, ОбластьИтого25Разницы, ОбластьИтого25Окончание, 2, "Группа2", Ложь, "ИтогоСуммаЗатрат25", Выборка25, ВсегоСуммаЗатратПР, ВсегоСуммаЗатратВР);
                        КонецЕсли;  // Затраты25
                        
                        Всего26 = ВыборкаНоменклатураВыпуска.Сумма26;
                        ВсегоСуммаЗатрат = 0;
                        ВсегоСуммаЗатратПР = 0;
                        ВсегоСуммаЗатратВР = 0;
                        Если НЕ Всего26 = 0 Тогда
                            ВывестиОбласть(ДокументРезультат, ОбластьШапка26, ОбластьШапка26Разницы, ОбластьШапка26Окончание, 2, "Группа2", Ложь, "Текст", ВыборкаНоменклатураВыпуска, "", "");
                            Выборка26 = ВыборкаНоменклатураВыпуска.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам, "Затраты26");
                            Пока Выборка26.Следующий() Цикл
                                ОбластьСтрокаЗатрат.Параметры.НаименованиеЗатрат = Выборка26.Затраты26;
                                ОбластьСтрокаЗатрат.Параметры.СуммаЗатрат        = Выборка26.Сумма26 * Коэффициент;
                                ВсегоСуммаЗатрат = ВсегоСуммаЗатрат + Выборка26.Сумма26 * Коэффициент;
                                Если ВариантОтчета = 3 Тогда
                                    Сумма26ПР = (Выборка26.Сумма26ПР) * КоэффициентПР;
                                    Сумма26ВР = (Выборка26.Сумма26ВР) * КоэффициентВР;
                                Иначе
                                    Сумма26ПР = 0;
                                    Сумма26ВР = 0;
                                КонецЕсли;
                                ВсегоСуммаЗатратПР = ВсегоСуммаЗатратПР + Сумма26ПР;
                                ВсегоСуммаЗатратВР = ВсегоСуммаЗатратВР + Сумма26ВР;
                                ВывестиОбласть(ДокументРезультат, ОбластьСтрокаЗатрат, ОбластьСтрокаЗатратРазницы, ОбластьСтрокаЗатратОкончание, 0, 0, Ложь, "СуммаЗатрат", Выборка26, Сумма26ПР, Сумма26ВР);
                            КонецЦикла; 
                            ОбластьИтого26.Параметры.ИтогоСуммаЗатрат26        = ВсегоСуммаЗатрат;
                            ВывестиОбласть(ДокументРезультат, ОбластьИтого26, ОбластьИтого26Разницы, ОбластьИтого26Окончание, 2, "Группа2", Ложь, "ИтогоСуммаЗатрат26", Выборка26, ВсегоСуммаЗатратПР, ВсегоСуммаЗатратВР);                         
                        КонецЕсли;  // Затраты26                    
                        НачОстНЗП   = ВыборкаНоменклатураВыпуска.НачОстНЗП   * Коэффициент;
                        КонОстНЗП   = ВыборкаНоменклатураВыпуска.КонОстНЗП   * Коэффициент;
                        НачОстНЗППР = 0;
                        КонОстНЗППР = 0;
                        НачОстНЗПВР = 0;
                        КонОстНЗПВР = 0;
                        Если ВариантОтчета = 3 Тогда
                            НачОстНЗППР = (ВыборкаНоменклатураВыпуска.НачОстНЗППР) * КоэффициентПР;
                            КонОстНЗППР = (ВыборкаНоменклатураВыпуска.КонОстНЗППР) * КоэффициентПР;
                            НачОстНЗПВР = (ВыборкаНоменклатураВыпуска.НачОстНЗПВР) * КоэффициентВР;
                            КонОстНЗПВР = (ВыборкаНоменклатураВыпуска.КонОстНЗПВР) * КоэффициентВР;
                        КонецЕсли;
                        
                        Если     НачОстНЗП   <> 0 Или КонОстНЗП   <> 0
                            Или НачОстНЗППР <> 0 Или КонОстНЗППР <> 0
                            Или НачОстНЗПВР <> 0 Или КонОстНЗПВР <> 0 Тогда
                            
                            ОбластьНЗПНач.Параметры.СуммаНЗПнаНачало = НачОстНЗП;
                            ОбластьНЗПКон.Параметры.СуммаНЗПнаКонец  = КонОстНЗП;
                            ОбластьНЗПИтого.Параметры.ИтогоНЗП         = НачОстНЗП - КонОстНЗП;
                            ОбластьНЗПНач.Параметры.НачалоПериода      = ДатаНач;
                            ОбластьНЗПКон.Параметры.КонецПериода    = ДатаКон;
                            ВывестиОбласть(ДокументРезультат, ОбластьНЗПНач, ОбластьНЗПНачРазницы, ОбластьНЗПНачОкончание, 2, "Группа2", Ложь, "НачОстНЗП", ВыборкаНоменклатураВыпуска, НачОстНЗППР, НачОстНЗПВР);
                            ВывестиОбласть(ДокументРезультат, ОбластьНЗПКон, ОбластьНЗПКонРазницы, ОбластьНЗПКонОкончание, 2, "Группа2", Ложь, "КонОстНЗП", ВыборкаНоменклатураВыпуска, КонОстНЗППР, КонОстНЗПВР);
                            ВывестиОбласть(ДокументРезультат, ОбластьНЗПИтого, ОбластьНЗПИтогоРазницы, ОбластьНЗПИтогоОкончание, 2, "Группа2", Ложь, "ИтогоНЗП", ВыборкаНоменклатураВыпуска, - КонОстНЗППР + НачОстНЗППР, - КонОстНЗПВР + НачОстНЗПВР);
                        КонецЕсли;  // НЗП
                        ДокументРезультат.ЗакончитьАвтогруппировкуСтрок();
                        ВывестиОбласть(ДокументРезультат, ОбластьОкончаниеТаблицы, ОбластьОкончаниеТаблицыРазницы, ОбластьОкончаниеТаблицыОкончание, 1, "Группа1", Ложь, "Текст", ВыборкаНоменклатураВыпуска, "", "");
                    КонецЦикла;  // НоменклатураВыпуска    
                КонецЦикла;   // НоменклатурнаяГруппа 
            КонецЦикла;    // Подразделение
            ОбластьПодвал.Параметры.ТекстПримечания = ?(ВариантОтчета = 3, "Постоянные разницы: Постоянные разницы в оценке стоимости активов и обязательств.
            |Временные разницы: Временные разницы в оценке стоимости активов и обязательств.", "");
            ДокументРезультат.Вывести(ОбластьПодвал);
            ВысотаПодписи = ДокументРезультат.Области.Подвал.Низ - ДокументРезультат.Области.Подвал.Верх;           
            ДокументРезультат.Области.Подвал.Видимость = ПоказыватьПодписи;
            ДокументРезультат.ИмяПараметровПечати = "Калькуляция себестоимости";            
            УправлениеОтчетами.УстановитьКолонтитулыПоУмолчанию(ДокументРезультат, ЗаголовокОтчета, Строка(глЗначениеПеременной("глТекущийПользователь")));
            НачалоПериода = ДобавитьМесяц(НачалоПериода,1);
        КонецЦикла; // Дублирование отчета
    КонецПроцедуры // СформироватьОтчет
#КонецЕсли
Миниатюры
Разделение периода на месяцы в отчете  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.05.2016, 20:37
Ответы с готовыми решениями:

создание периода в отчете
Все привет! Подскажите пожалуйста, как в отчете сделать выбор по периоду? от даты1 до даты2. не...

Вывод сумм в отчете ДДС не по неделям, а по дням периода
Здравствуйте! Помогите, пожалуйста, видоизменить отчет. Собственно об отчете: 1. Имеется отчет,...

Период из запроса разбить на начало периода и конец периода
есть запрос &quot;выбрать оборотыпродажи. период как период из продажиобороты &quot; на выходе имеем...

Месяцы
Берем временной промежуток (10 лет) с 2010 по 2020 год Вопрос сколько в этом промежутке месяцев,...

4
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
12.05.2016, 21:19 2
ikarus_283, какая у вас конфигурация? И выложите текст запроса, при выполнении которого получается ВыборкаПрямыеЗатраты.
0
0 / 0 / 0
Регистрация: 12.05.2016
Сообщений: 2
12.05.2016, 22:36  [ТС] 3
1С: Бухгалтерия предприятия, редакция 2.0
1C
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
ВЫБРАТЬ
    ХозрасчетныйОбороты.Подразделение КАК ПодразделениеПрямыхЗатрат,
    ХозрасчетныйОбороты.Субконто1 КАК НоменклатурнаяГруппаПрямыхЗатрат,
    ХозрасчетныйОбороты.Субконто2 КАК ЗатратыПрямыхЗатрат,
    ХозрасчетныйОбороты.КорСчет КАК КорСчетПрямыхЗатрат,
    ХозрасчетныйОбороты.КорСубконто1 КАК КорСубконтоПрямыхЗатрат,
    ХозрасчетныйОбороты.СуммаОборотДт КАК СуммаПрямыхЗатрат,
    ХозрасчетныйОбороты.КоличествоКорОборот КАК КоличествоПрямыхЗатрат
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &НачДата,
            &КонДата,
            ,
            Счет В ИЕРАРХИИ (&СчетПрямЗатрат),
            ,
            Организация = &Организация
                И &ОграничениеПоПостроителю,
            НЕ КорСчет В ИЕРАРХИИ (&Счет25)
                И НЕ КорСчет В ИЕРАРХИИ (&Счет26),
            ) КАК ХозрасчетныйОбороты
 
ОБЪЕДИНИТЬ ВСЕ
 
ВЫБРАТЬ
    ХозрасчетныйОбороты.Подразделение,
    ХозрасчетныйОбороты.Субконто1,
    ХозрасчетныйОбороты.Субконто2,
    ХозрасчетныйОбороты.Счет,
    "Списано как косвенные расходы",
    -ХозрасчетныйОбороты.СуммаОборотКт,
    0
ИЗ
    РегистрБухгалтерии.Хозрасчетный.Обороты(
            &НачДата,
            &КонДата,
            ,
            Счет В ИЕРАРХИИ (&СчетПрямЗатрат),
            ,
            Организация = &Организация
                И &ОграничениеПоПостроителю,
            КорСчет В ИЕРАРХИИ (&Счет90),
            ) КАК ХозрасчетныйОбороты
ГДЕ
    ХозрасчетныйОбороты.СуммаОборотКт <> 0
0
Эксперт 1С
3057 / 2004 / 524
Регистрация: 25.06.2009
Сообщений: 6,964
12.05.2016, 22:53 4
ikarus_283, очень много кода вывода в макет... Надеюсь, идею вы поймете и найдете, где/что изменить в коде: можно в запросе выставить в "параметрах виртуальной таблицы" периодичность - Запись, тогда появится поле Период в таблице. Выбрав это поле измените его на выражение - НачалоПериода(ХозрасчетныйОбороты.Период, МЕСЯЦ). Далее надо сделать итоги по этому полю.
Тогда при обходе выборки: сначала вы будете выбирать:
1C
1
Выборка = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Здесь вы будете выводить шапку таблицы и обнулять все поля подсчета сумм, которые выводятся в таблице. Т.е. для каждой группировки по периоду(месяцу) у вас будет своя таблица.
Далее в цикле обхода этой выборки:
1C
1
ВыборкаДетальныеЗаписи = Выборка.Выбрать();
И здесь в обходе выборки циклом выводите строки таблицы с подсчетом сумм и т.п.
0
Dethmontt
18.05.2016, 01:04     Разделение периода на месяцы в отчете
  #5

Не по теме:

в этом коде столько условий что смотря на него, застрелиться хочется!!!

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
18.05.2016, 01:04

года и месяцы
В общем у меня в задаче говорится за какое время арендаторы смогут выкупит квартиру при...

Дни и Месяцы
Подскажите пожалуйста, есть 2 даты, НачДата и КонДата, если дата с 1.03.14 по 15.03.14 - это будет...

Месяцы времени года
В меню выберается время года (например лето или зима) а в мемо выводятся месяцы соответствующие...

Времена года и месяцы
Написать программу, которая выводит на экран приглашение: «Введите месяц», вводит с клавиатуры...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru