Форум программистов, компьютерный форум, киберфорум
1С: Типовые и стандартные решения
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/5: Рейтинг темы: голосов - 5, средняя оценка - 4.80
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
1
1C 7.x

Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)

10.02.2015, 23:24. Показов 957. Ответов 17
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Итак,уже 4 часа мучаюсь и пытаюсь вникнуть в чужой код . необходимо найти в коде как рассчитываются определенные данные.
на скринах обведены те данные,которые необходимо найти. В программе их как то рассчитывают, я не могу понять как именно?
Кликните здесь для просмотра всего текста
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
Перем ОтборСубк1,ОтборСубк2,ОтборСубк3,ОтборСубк4;
Перем Субконто1,Субконто2,Субконто3,Субконто4;
Перем Т;
Перем Обновить;
Перем Расшифровка;
Перем ПредставлениеРУ;
Перем Количественный,Валютный;
Перем ВидПериода,НачалоПериода,КонецПериода;
Перем ДО,ДОКол,ДОВал,КО,КОКол,КОВал;
Перем Дата1,Дата2;
Перем РазделительУчета;
Перем ПоВсемРУ;
 
Функция ПредставлениеПозицииДокумента(Поз)
    Перем ДокДата,Ч,М,С,Док;
    РазобратьПозициюДокумента(Поз,ДокДата,Ч,М,С,Док);
    ПредПозиции="( "+Строка(ДокДата)+" "+Формат(Ч,"Ч(0)2")+":"+Формат(М,"Ч(0)2")+":"+Формат(С,"Ч(0)2")+" "+Док.представлениеВида()+" №"+Строка(Док.НомерДок)+" )";
    Возврат ПредПозиции;
КонецФункции
 
Функция ПредставлениеИнтервалаОтчета(ДатаНачала,ДатаКонца)
    Если ((ТипЗначенияСтр(ДатаНачала)="Дата") И (ТипЗначенияСтр(ДатаКонца)="Дата")) Тогда
        Возврат ПериодСтр(ДатаНачала,ДатаКонца);
    Иначе
        Если ТипЗначенияСтр(ДатаНачала)="Документ" Тогда
            Интервал=ПредставлениеПозицииДокумента(ДатаНачала.ПолучитьПозицию());
        ИначеЕсли ТипЗначенияСтр(ДатаНачала)="Строка" Тогда
            Интервал=ПредставлениеПозицииДокумента(ДатаНачала);
        ИначеЕсли ТипЗначенияСтр(ДатаНачала)="Дата" Тогда
            Интервал=Строка(ДатаНачала);
        Иначе
            Интервал="""  .  .  """;
        КонецЕсли;
        
        Интервал=Интервал+" - ";
        Если ТипЗначенияСтр(ДатаКонца)="Документ" Тогда
            Интервал=Интервал+ПредставлениеПозицииДокумента(ДатаКонца.ПолучитьПозицию());
        ИначеЕсли ТипЗначенияСтр(ДатаКонца)="Строка" Тогда
            Интервал=Интервал+ПредставлениеПозицииДокумента(ДатаКонца);
        ИначеЕсли ТипЗначенияСтр(ДатаКонца)="Дата" Тогда
            Интервал=Интервал+Строка(ДатаКонца);
        Иначе
            Интервал=Интервал+"""  .  .  """;
        КонецЕсли;
        
        Возврат Интервал;
    КонецЕсли;
КонецФункции
 
Процедура ПриУстановкеДаты()
    Перем Ч,М,С,Док;
    
    Если ТипЗначенияСтр(Дата1)="Документ" Тогда
        НачДата=Дата1.ДатаДок;
    ИначеЕсли ТипЗначенияСтр(Дата1)="Строка" Тогда
        РазобратьПозициюДокумента(Дата1,НачДата,Ч,М,С,Док);
    Иначе
        НачДата=Дата1;
    КонецЕсли;
    
    Если ТипЗначенияСтр(Дата2)="Документ" Тогда
        КонДата=Дата2.ДатаДок;
    ИначеЕсли ТипЗначенияСтр(Дата2)="Строка" Тогда
        РазобратьПозициюДокумента(Дата2,КонДата,Ч,М,С,Док);
    Иначе
        КонДата=Дата2;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореДаты()
    Дата1=НачДата;
    Дата2=КонДата;
КонецПроцедуры 
 
Процедура УстановитьВладельца(ПоВсем,РУ,Субконто)
    Назначить=0;
    Если ТипЗначенияСтр(Субконто)="Справочник" Тогда
        Назначить=1;
        Если (ПоВсем=0) И (ТипЗначенияСтр(РУ)="Справочник") Тогда
            МДСубконто=Метаданные.Справочник(Субконто.Вид());
            Если МДСубконто.Владелец.Выбран()=1 Тогда
                Если МДСубконто.Владелец.Идентификатор=РУ.Вид() Тогда
                    Назначить=2;
                КонецЕсли;
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
    Если Назначить=1 Тогда
        Субконто.ИспользоватьВладельца("");
    ИначеЕсли Назначить=2 Тогда
        Субконто.ИспользоватьВладельца(РУ);
    КонецЕсли;
КонецПроцедуры
 
Функция ПроверкаПериода()
    Если КонДата>КонецРассчитанногоПериодаБИ() Тогда
        Предупреждение("За выбранный период итоги не рассчитаны.");
        Возврат 0;
    КонецЕсли;
    Возврат 1;
КонецФункции
 
Функция ЗначенияВСтроку(Значения)
    Если ТипЗначенияСтр(Значения)="СписокЗначений" Тогда
        С="";
        Для А=1 По Значения.РазмерСписка() Цикл
            Если А<>1 Тогда
                С=С+" ";
            КонецЕсли;
            С=С+Значения.ПолучитьЗначение(А);
        КонецЦикла;
        Возврат СокрЛП(С);
    Иначе
        Возврат СокрЛП(Значения);
    КонецЕсли;
КонецФункции
 
Функция РасшифровкаОбновить(Обновить)
    Расшифровка.Установить("Обновить",Обновить);
    Возврат Расшифровка;
КонецФункции
 
Функция НачПериода(Д)
    Перем Д1;
    Если ВидПериода=4 Тогда // День
        Д1=Д;
    ИначеЕсли ВидПериода=5 Тогда // Неделя
        Д1=НачНедели(Д);
    ИначеЕсли ВидПериода=6 Тогда // Декада
        Ч=ДатаЧисло(Д);
        Если Ч<10 Тогда
            Ч=1;
        ИначеЕсли Ч<20 Тогда
            Ч=10;
        Иначе
            Ч=20;
        КонецЕсли;
        Д1=Дата(ДатаГод(Д),ДатаМесяц(Д),Ч);
    ИначеЕсли ВидПериода=7 Тогда // Месяц
        Д1=НачМесяца(Д);
    ИначеЕсли ВидПериода=8 Тогда // Квартал
        Д1=НачКвартала(Д);
    ИначеЕсли ВидПериода=9 Тогда // Год
        Д1=НачГода(Д);
    КонецЕсли;
    Возврат Д1;
КонецФункции
 
Функция КонПериода(Д)
    Перем Д1;
    Если ВидПериода=4 Тогда // День
        Д1=Д;
    ИначеЕсли ВидПериода=5 Тогда // Неделя
        Д1=КонНедели(Д);
    ИначеЕсли ВидПериода=6 Тогда // Декада
        Ч=ДатаЧисло(Д);
        Если Ч<10 Тогда
            Ч=9;
        ИначеЕсли Ч<20 Тогда
            Ч=19;
        Иначе
            Ч=ДатаЧисло(КонМесяца(Д));
        КонецЕсли;
        Д1=Дата(ДатаГод(Д),ДатаМесяц(Д),Ч);
    ИначеЕсли ВидПериода=7 Тогда // Месяц
        Д1=КонМесяца(Д);
    ИначеЕсли ВидПериода=8 Тогда // Квартал
        Д1=КонКвартала(Д);
    ИначеЕсли ВидПериода=9 Тогда // Год
        Д1=КонГода(Д);
    КонецЕсли;
    Возврат Д1;
КонецФункции
 
Процедура ДобавитьОбороты(Опер,Дт,Кт)
    Перем Стр;
    Если Дт=1 Тогда
        ДО=ДО+Опер.Сумма;
        Если Количественный=1 Тогда
            ДОКол=ДОКол+Опер.Количество;
        КонецЕсли;
        Если (Валютный=1) И (ПоВалюте=1) Тогда
            ДОВал=ДОВал+Опер.ВалСумма;
        КонецЕсли;
    КонецЕсли;
    Если Кт=1 Тогда
        КО=КО+Опер.Сумма;
        Если Количественный=1 Тогда
            КОКол=КОКол+Опер.Количество;
        КонецЕсли;
        Если (Валютный=1) И (ПоВалюте=1) Тогда
            КОВал=КОВал+Опер.ВалСумма;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
 
Процедура ВывестиОбороты()
    Период="Обороты за ";
    Если ВидПериода=4 Тогда
        Период=Период+НачалоПериода;
    Иначе
        Период=Период+ПериодСтр(НачалоПериода,КонецПериода);
    КонецЕсли;
    
    Секция=Т.ПолучитьСекцию("Секция_22");
    Если (Валютный=1) И (ПоВалюте=1) Тогда
        Т.ВывестиСекцию(Секция);
        Секция=Т.ПолучитьСекцию("Секция_24");
    КонецЕсли;
    Если Количественный=1 Тогда
        Т.ВывестиСекцию(Секция);
        Секция=Т.ПолучитьСекцию("Секция_23");
    КонецЕсли;
    Область=Секция.Область(1,1,1,9);
    Область.РамкаСнизу(4);
    Т.ВывестиСекцию(Секция);
КонецПроцедуры
 
Процедура ВывестиПроводку(Ит,Т,Опер,Дт,Кт)
    Расшифровка.Установить("НомерКорреспонденции",Опер.НомерКорреспонденции());
    
    СД=Ит.СКД()-Ит.СКК();
    
    Если Количественный=1 Тогда
        Если (ОтборСубк1<>2) И (ОтборСубк2<>2) И (ОтборСубк3<>2) Тогда
            Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
                Если ПоВалюте=1 Тогда
                    СДВал=Ит.СКД(2)-Ит.СКК(2);
                    Т.ВывестиСекцию("Секция_6_7_1");
                Иначе
                    Т.ВывестиСекцию("Секция_6_1_7_1");
                КонецЕсли;
            Иначе
                Т.ВывестиСекцию("Секция_7_1");
            КонецЕсли;
        Иначе
            СДКол=Ит.СКД(3)-Ит.СКК(3);
            Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
                Если ПоВалюте=1 Тогда
                    СДВал=Ит.СКД(2)-Ит.СКК(2);
                    Т.ВывестиСекцию("Секция_6_7_1");
                Иначе
                    Т.ВывестиСекцию("Секция_6_1_7_1");
                КонецЕсли;
            Иначе
                Т.ВывестиСекцию("Секция_7_1");
            КонецЕсли;
        КонецЕсли;
    ИначеЕсли Опер.Количество<>0 Тогда
        Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
            Если ПоВалюте=1 Тогда
                СДВал=Ит.СКД(2)-Ит.СКК(2);
                Т.ВывестиСекцию("Секция_6_7_1");
            Иначе
                Т.ВывестиСекцию("Секция_6_1_7_1");
            КонецЕсли;
        Иначе
            Т.ВывестиСекцию("Секция_7_1");
        КонецЕсли;
    Иначе
        Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
            Если ПоВалюте=1 Тогда
                СДВал=Ит.СКД(2)-Ит.СКК(2);
                Т.ВывестиСекцию("Секция_6");
            Иначе
                Т.ВывестиСекцию("Секция_6_1");
            КонецЕсли;
        Иначе
            Т.ВывестиСекцию("Секция_5");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
 
Процедура СформироватьОтчет(ФлагЗакрытияФормы=0)
    Если ((ТипЗначенияСтр(Дата1)="Дата") И (ТипЗначенияСтр(Дата2)="Дата")) Тогда
        ПриВыбореДаты();
    КонецЕсли;
    
    Если Счет.Выбран()=0 Тогда
        Предупреждение("Не указан счет.");
        Возврат;
    КонецЕсли;
    
    Если ПроверкаПериода()=0 Тогда
        Возврат;
    КонецЕсли;
    
    ОтборСубк1=?(ОтборСубконто1=1,2,3);
    ОтборСубк2=?(ОтборСубконто2=1,2,3);
    ОтборСубк3=?(ОтборСубконто3=1,2,3);
    ОтборСубк4=?(ОтборСубконто4=1,2,3);
    
    ВидПериода=1;
    Если Периодичность.ТекущаяСтрока()<>0 Тогда
        ВидПериода=Периодичность.ПолучитьЗначение(Периодичность.ТекущаяСтрока());
    КонецЕсли;
    
    Оп=СоздатьОбъект("Операция");
    Расшифровка=СоздатьОбъект("СписокЗначений");
    Ит=СоздатьОбъект("БухгалтерскиеИтоги");
    Ит.ИспользоватьРазделительУчета(РазделительУчета);
    Если ВыбВидСубконто1.Выбран()=0 Тогда
        ОтборСубк1=3;
    КонецЕсли;
    
    Если ВыбВидСубконто2.Выбран()=0 Тогда
        ОтборСубк2=3;
    КонецЕсли;
    
    Если ВыбВидСубконто3.Выбран()=0 Тогда
        ОтборСубк3=3;
    КонецЕсли;
    
    Если ВыбВидСубконто4.Выбран()=0 Тогда
        ОтборСубк4=3;
    КонецЕсли;
    
    //Если (ВыбВидСубконто1=ВыбВидСубконто2) И (ОтборСубк1<>3) И (ОтборСубк2<>3) И (ОтборСубк4<>3) Или
    //   (ВыбВидСубконто1=ВыбВидСубконто3) И (ОтборСубк1<>3) И (ОтборСубк3<>3) И (ОтборСубк4<>3) Или
    //   (ВыбВидСубконто3=ВыбВидСубконто2) И (ОтборСубк3<>3) И (ОтборСубк2<>3) И (ОтборСубк4<>3) Или 
    //   (ВыбВидСубконто4=ВыбВидСубконто3) И (ОтборСубк1<>3) И (ОтборСубк2<>3) И (ОтборСубк1<>3) Или 
    //   (ВыбВидСубконто4=ВыбВидСубконто2) И (ОтборСубк4<>3) И (ОтборСубк2<>3) И (ОтборСубк1<>3) Тогда
    //  Предупреждение("Выбраны одинаковые виды субконто.");
    //  Возврат;
    //КонецЕсли;
    
    Заголовок="Карточка счета "+Счет;
    Заголовок1="";
    Если ОтборСубк1<>3 Тогда  // 3 - без учета субконто
        Заголовок1=Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто1)+": "+ЗначенияВСтроку(Субконто1);
        Ит.ИспользоватьСубконто(ВыбВидСубконто1,Субконто1,ОтборСубк1);
    КонецЕсли;
    
    Если ОтборСубк2<>3 Тогда  // 3 - без учета субконто
        Заголовок1=Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто2)+": "+ЗначенияВСтроку(Субконто2);
        Ит.ИспользоватьСубконто(ВыбВидСубконто2,Субконто2,ОтборСубк2);
    КонецЕсли;
    
    Если ОтборСубк3<>3 Тогда  // 3 - без учета субконто
        Заголовок1=Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто3)+": "+ЗначенияВСтроку(Субконто3);
        Ит.ИспользоватьСубконто(ВыбВидСубконто3,Субконто3,ОтборСубк3);
    КонецЕсли;
    
    Если ОтборСубк4<>3 Тогда  // 3 - без учета субконто
        Заголовок1=Заголовок1+?(Заголовок1="","","; ")+Строка(ВыбВидСубконто4)+": "+ЗначенияВСтроку(Субконто4);
        Ит.ИспользоватьСубконто(ВыбВидСубконто4,Субконто4,ОтборСубк4);
    КонецЕсли;
    
    Если ПоВалюте=1 Тогда
        Заголовок=Заголовок+?(Заголовок1="","","; ")+Валюта;
        Если Ит.ВыполнитьЗапрос(Дата1,Дата2,Счет,,Валюта,,"Проводка")=0 Тогда
            Возврат;
        КонецЕсли;
    Иначе
        Если Ит.ВыполнитьЗапрос(Дата1,Дата2,Счет,,,,"Проводка")=0 Тогда
            Возврат;
        КонецЕсли;
    КонецЕсли;
    
    Если (ТипЗначенияСтр(Т)<>"Таблица") Или (Обновить=0) Тогда
        Т=СоздатьОбъект("Таблица");
    Иначе
        Т.Очистить();
    КонецЕсли;
    Т.ИсходнаяТаблица("Таблица");
    
    ОбДт=0;
    ОбКт=0;



вот код программы. Рассчитывается переоценка ОС по 83 счету. Мне необходимо найти как оно рассчитывается и потом найти разность между Кт и Дт (на фото выделено).
1с предприятие 7.7
Миниатюры
Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)   Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)  
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2015, 23:24
Ответы с готовыми решениями:

Управление торговым предприятием 8.1 (бух. отчеты)
При попытке сформировать бухгалтерские отчеты (оборотно-сальдовая ведомость, анализ счета и др.)...

УПП 1.3 (или бухня 2), Бух.отчеты. Аналитику в верхний уровень группировок
Есть подозрение, что в СКД это решено. То есть в Бух 3. Перед тем как установить 8.3 (винду...

Бух КОРП 2.0.25 перенести данные в Бух ПРОФ 3.0.35?
Подскажите! Как с Бух КОРП 2.O перенести данные в Бух ПРОФ 3.O? Есть ли такая возможность?

Найти выходные за период в разрезе месяца
На компьютере: XE2, MsSQL Таблица: Jornal Колонки: ID, Data,Name Задача: Нужно создaть SQL...

17
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
10.02.2015, 23:25  [ТС] 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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
Расшифровка.Установить("Отчет","Стандарт_КарточкаСчета");
    Расшифровка.Установить("РазделительУчета",РазделительУчета);
    Расшифровка.Установить("Дата1",Дата1);
    Расшифровка.Установить("Дата2",Дата2);
    Расшифровка.Установить("Счет",Счет);
    Расшифровка.Установить("ВидСубконто1",ВыбВидСубконто1);
    Расшифровка.Установить("Субконто1",Субконто1);
    Расшифровка.Установить("ОтборСубконто1",ОтборСубк1);
    Расшифровка.Установить("ВидСубконто2",ВыбВидСубконто2);
    Расшифровка.Установить("Субконто2",Субконто2);
    Расшифровка.Установить("ОтборСубконто2",ОтборСубк2);
    Расшифровка.Установить("ВидСубконто3",ВыбВидСубконто3);
    Расшифровка.Установить("Субконто3",Субконто3);
    Расшифровка.Установить("ОтборСубконто3",ОтборСубк3);
    Расшифровка.Установить("Субконто4",Субконто4);
    Расшифровка.Установить("ОтборСубконто4",ОтборСубк4);
    Расшифровка.Установить("Валюта",Валюта);
    Расшифровка.Установить("ПоВалюте",ПоВалюте);
    Расшифровка.Установить("ВидПериода",ВидПериода);
    Т.ВывестиСекцию("Секция_13");
    Т.ВывестиСекцию("Секция_1_1");
    Если Заголовок1<>"" Тогда
        Т.ВывестиСекцию("Секция_1_2");
    КонецЕсли;
    Т.ВывестиСекцию("Секция_1_3");
    
    Расшифровка.УдалитьВсе();
    Если ((Счет.Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2))) Или (ПоВалюте=1) Тогда
        Т.ВывестиСекцию("Секция_2_1");
    Иначе
        Т.ВывестиСекцию("Секция_2");
    КонецЕсли;
    
    Если ПоВалюте=1 Тогда
        Если (Счет.Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2)) Тогда
            Т.ВывестиСекцию("Секция_4_1");
        Иначе
            Т.ВывестиСекцию("Секция_4");
        КонецЕсли;
    КонецЕсли;
    
    Количественный=Счет.Количественный;
    Валютный=Счет.Валютный;
    
    Если (Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2)) Тогда
        Т.ВывестиСекцию("Секция_3");
    КонецЕсли;
    
    НачалоПериода=0;
    Ит.ВыбратьПериоды();
    Пока Ит.ПолучитьПериод()=1 Цикл
        Опер=Ит.Операция;
        Если ВидПериода<>1 Тогда
            Если НачалоПериода<>НачПериода(Опер.ДатаОперации) Тогда
                Если НачалоПериода<>0 Тогда
                    ВывестиОбороты();
                КонецЕсли;
                ДО=0;
                ДОКол=0;
                ДОВал=0;
                КО=0;
                КОКол=0;
                КОВал=0;
                НачалоПериода=НачПериода(Опер.ДатаОперации);
                КонецПериода=КонПериода(Опер.ДатаОперации);
            КонецЕсли;
        КонецЕсли;
        
        Дт=Ит.ВыбранаПоДт();
        Кт=Ит.ВыбранаПоКт();
        
        Расшифровка.УдалитьВсе();
        Расшифровка.Установить("Вид","Документ");
        Расшифровка.Установить("Документ",Опер.Документ.ТекущийДокумент());
        Расшифровка.Установить("НомерПроводки",Опер.НомерПроводки());
        ВывестиПроводку(Ит,Т,Опер,Дт,Кт);
        
        Если ВидПериода<>1 Тогда
            ДобавитьОбороты(Опер,Дт,Кт);
        КонецЕсли;
    КонецЦикла;
    
    Если ВидПериода<>1 Тогда
        Если (ДО<>0) Или (ДОКол<>0) Или (ДОВал<>0) Или 
             (КО<>0) Или (КОКол<>0) Или (КОВал<>0) Тогда
            ВывестиОбороты();
        КонецЕсли;
    КонецЕсли;
    
    Т.ВывестиСекцию("Секция_8");
    Если ПоВалюте=1 Тогда
        Т.ВывестиСекцию("Секция_14");
    КонецЕсли;
    Если (Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2)) Тогда
        Т.ВывестиСекцию("Секция_9");
    КонецЕсли;
    
    Т.ВывестиСекцию("Секция_10");
    Если ПоВалюте=1 Тогда
        Т.ВывестиСекцию("Секция_15");
    КонецЕсли;
    Если (Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2)) Тогда
        Т.ВывестиСекцию("Секция_11");
    КонецЕсли;
 
    Т.ВывестиСекцию("Секция_12");
    Ит=0;
    Т.ТолькоПросмотр(1);
 
    ФиксСтрок=6;
    Если (Количественный=1) И ((ОтборСубк1=2) Или (ОтборСубк2=2) Или (ОтборСубк3=2) Или (ОтборСубк4=2)) Тогда
        ФиксСтрок=ФиксСтрок+1;
    КонецЕсли;
    Если ПоВалюте=1 Тогда
        ФиксСтрок=ФиксСтрок+1;
    КонецЕсли;
    Если Заголовок1<>"" Тогда
        ФиксСтрок=ФиксСтрок+1;
    КонецЕсли;
    
    ВерхнийКолонтитул=Заголовок+" ("+ПериодСтр(Дата1,Дата2)+")"+?(ТипЗначения(РазделительУчета)=0,""," "+РазделительУчета);
    НижнийКолонтитул="Отчет сформирован "+ТекущаяДата()+" "+ТекущееВремя()+?(ПустоеЗначение(ИмяПользователя())=0,"  Пользователь: "+ИмяПользователя(),"");
    
    Т.Опции(0,0,ФиксСтрок,2);
    Т.ОбластьПечати(2);
    Т.ПовторятьПриПечатиСтроки(?(ПустоеЗначение(Заголовок1)=1,4,5),ФиксСтрок);
    Т.ПараметрыСтраницы(1,,,,,,,,,1);
    Т.Показать(Заголовок+?(ПустоеЗначение(Заголовок1)=1,""," по субконто "+Заголовок1)+" ("+ПериодСтр(Дата1,Дата2)+")"+?(ТипЗначения(РазделительУчета)=0,""," "+РазделительУчета),"");
    
    Если (ФлагЗакрытияФормы=1) Или (Обновить=2) Тогда
         СтрокаДействийФормы="#Закрыть";
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореСчета()
    Если Счет.КоличествоСубконто()>0 Тогда
        НазначитьСчет(ВыбВидСубконто1,Счет,1);
        Форма.ВыбСубконто1.НазначитьТип(ВыбВидСубконто1);
        Доступность=1;
    Иначе
        ВыбВидСубконто1="";
        ВыбСубконто1="";
        Доступность=0;
    КонецЕсли;
    Форма.ВыбСубконто1.Доступность(Доступность);
    Форма.ОтборСубконто1.Доступность(Доступность);
    Форма.ВыбВидСубконто1.Доступность(Доступность);
    Форма.ОчиститьСубконто1.Доступность(Доступность);
    
    Если Счет.КоличествоСубконто()>1 Тогда
        НазначитьСчет(ВыбВидСубконто2,Счет,2);
        Форма.ВыбСубконто2.НазначитьТип(ВыбВидСубконто2);
        Доступность=1;
    Иначе
        ВыбВидСубконто2="";
        ВыбСубконто2="";
        Доступность=0;
    КонецЕсли;
    Форма.ВыбСубконто2.Доступность(Доступность);
    Форма.ОтборСубконто2.Доступность(Доступность);
    Форма.ВыбВидСубконто2.Доступность(Доступность);
    Форма.ОчиститьСубконто2.Доступность(Доступность);
    
    Если Счет.КоличествоСубконто()>2 Тогда
        НазначитьСчет(ВыбВидСубконто3,Счет,3);
        Форма.ВыбСубконто3.НазначитьТип(ВыбВидСубконто3);
        Доступность=1;
    Иначе
        ВыбВидСубконто3="";
        ВыбСубконто3="";
        Доступность=0;
    КонецЕсли;
    Форма.ВыбСубконто3.Доступность(Доступность);
    Форма.ОтборСубконто3.Доступность(Доступность);
    Форма.ВыбВидСубконто3.Доступность(Доступность);
    Форма.ОчиститьСубконто3.Доступность(Доступность);
    
    Если Счет.КоличествоСубконто()>3 Тогда
        НазначитьСчет(ВыбВидСубконто4,Счет,4);
        Форма.ВыбСубконто4.НазначитьТип(ВыбВидСубконто4);
        Доступность=1;
    Иначе
        ВыбВидСубконто4="";
        ВыбСубконто4="";
        Доступность=0;
    КонецЕсли;
    Форма.ВыбСубконто4.Доступность(Доступность);
    Форма.ОтборСубконто4.Доступность(Доступность);
    Форма.ВыбВидСубконто4.Доступность(Доступность);
    Форма.ОчиститьСубконто4.Доступность(Доступность);
    
    Если Счет.Валютный=0 Тогда
        ПоВалюте=0;
        Если Метаданные.Валюта.Выбран()=1 Тогда
            Валюта=ПолучитьПустоеЗначение("Справочник."+Метаданные.Валюта.Идентификатор);
        КонецЕсли;
    КонецЕсли;
    Форма.ПоВалюте.Доступность(Счет.Валютный);
    Форма.Валюта.Доступность(Счет.Валютный);
    
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто1);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто2);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто3);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто4);
КонецПроцедуры
 
Процедура ПриВыбореВалюты()
    Если Валюта.Выбран()=1 Тогда
        ПоВалюте=1;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореВидаСубконто1()
    Форма.ВыбСубконто1.НазначитьТип(ВыбВидСубконто1);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто1);
КонецПроцедуры
 
Процедура ПриВыбореВидаСубконто2()
    Форма.ВыбСубконто2.НазначитьТип(ВыбВидСубконто2);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто2);
КонецПроцедуры
 
Процедура ПриВыбореВидаСубконто3()
    Форма.ВыбСубконто3.НазначитьТип(ВыбВидСубконто3);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто3);
КонецПроцедуры
 
Процедура ПриВыбореВидаСубконто4()
    Форма.ВыбСубконто4.НазначитьТип(ВыбВидСубконто4);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто4);
КонецПроцедуры
 
Процедура ПриВыбореСубконто1()
    Если ПустоеЗначение(ВыбСубконто1)=0 Тогда
        ОтборСубконто1=1;
    Иначе
        ОтборСубконто1=0;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореСубконто2()
    Если ПустоеЗначение(ВыбСубконто2)=0 Тогда
        ОтборСубконто2=1;
    Иначе
        ОтборСубконто2=0;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореСубконто3()
    Если ПустоеЗначение(ВыбСубконто3)=0 Тогда
        ОтборСубконто3=1;
    Иначе
        ОтборСубконто3=0;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриВыбореСубконто4()
    Если ПустоеЗначение(ВыбСубконто4)=0 Тогда
        ОтборСубконто4=1;
    Иначе
        ОтборСубконто4=0;
    КонецЕсли;
КонецПроцедуры
 
Процедура ПриОчиститьСубконто1()
    ВыбСубконто1="";
    ОтборСубконто1=0;
КонецПроцедуры
 
Процедура ПриОчиститьСубконто2()
    ВыбСубконто2="";
    ОтборСубконто2=0;
КонецПроцедуры
 
Процедура ПриОчиститьСубконто3()
    ВыбСубконто3="";
    ОтборСубконто3=0;
КонецПроцедуры
 
Процедура ПриОчиститьСубконто4()
    ВыбСубконто4="";
    ОтборСубконто4=0;
КонецПроцедуры
 
Процедура ПриВыбореПоВсемРУ()
КонецПроцедуры
 
Процедура ПриВыбореРУ()
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто1);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто2);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто3);
    УстановитьВладельца(ПоВсемРУ,РазделительУчета,ВыбСубконто4);
КонецПроцедуры
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
10.02.2015, 23:26  [ТС] 3
и еще последний кусочек кода

Кликните здесь для просмотра всего текста
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
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
Процедура ПриОткрытии()
    Если Метаданные.РазделительУчета.Выбран()=1 Тогда
        ПредставлениеРУ=Метаданные.РазделительУчета.Представление();
        РазделительУчета.НазначитьТип(Метаданные.РазделительУчета);
    КонецЕсли;
    
    Периодичность.УдалитьВсе();
    Периодичность.ДобавитьЗначение(1,"За период");
    Периодичность.ДобавитьЗначение(4,"По дням");
    Периодичность.ДобавитьЗначение(5,"По неделям");
    Периодичность.ДобавитьЗначение(6,"По декадам");
    Периодичность.ДобавитьЗначение(7,"По месяцам");
    Периодичность.ДобавитьЗначение(8,"По кварталам");
    Периодичность.ДобавитьЗначение(9,"По годам");
    
    ОтборСубконто1=0;
    ОтборСубконто2=0;
    ОтборСубконто3=0;
    ОтборСубконто4=0;
    
    Если Метаданные.Валюта.Выбран()=1 Тогда
        Форма.Валюта.НазначитьТип("Справочник."+Метаданные.Валюта.Идентификатор);
    Иначе
        Форма.ВалютаТекст.Доступность(0);
        Форма.Валюта.Доступность(0);
        Форма.ПоВалюте.Доступность(0);
    КонецЕсли;
    
    Если глФлагРасшифровки=1 Тогда
        Обновить=глОбновить;
        РУ=глРасшифровка.Получить("РазделительУчета");
        Если ТипЗначенияСтр(РУ)<>"" Тогда
            РазделительУчета=РУ;
            ПоВсемРУ=0;
        Иначе
            ПоВсемРУ=1;
        КонецЕсли;
        Дата1=глРасшифровка.Получить("Дата1");
        Дата2=глРасшифровка.Получить("Дата2");
        ПриУстановкеДаты();
        Счет=глРасшифровка.Получить("Счет");
        ПриВыбореСчета();
        ВыбВидСубконто1=глРасшифровка.Получить("ВидСубконто1");
        Субконто1=глРасшифровка.Получить("Субконто1");
        Если глРасшифровка.Получить("ОтборСубконто1")=2 Тогда
            ОтборСубконто1=1;
        Иначе
            ОтборСубконто1=0;
        КонецЕсли;
        ВыбВидСубконто2=глРасшифровка.Получить("ВидСубконто2");
        Субконто2=глРасшифровка.Получить("Субконто2");
        Если глРасшифровка.Получить("ОтборСубконто2")=2 Тогда
            ОтборСубконто2=1;
        Иначе
            ОтборСубконто2=0;
        КонецЕсли;
        ВыбВидСубконто3=глРасшифровка.Получить("ВидСубконто3");
        Субконто3=глРасшифровка.Получить("Субконто3");
        Если глРасшифровка.Получить("ОтборСубконто3")=2 Тогда
            ОтборСубконто3=1;
        Иначе
            ОтборСубконто3=0;
        КонецЕсли;
        ВыбВидСубконто4=глРасшифровка.Получить("ВидСубконто4");
        Субконто4=глРасшифровка.Получить("Субконто4");
        Если глРасшифровка.Получить("ОтборСубконто4")=2 Тогда
            ОтборСубконто4=1;
        Иначе
            ОтборСубконто4=0;
        КонецЕсли;
        Валюта=глРасшифровка.Получить("Валюта");
        ПоВалюте=глРасшифровка.Получить("ПоВалюте");
        
        ВидПериода=глРасшифровка.Получить("ВидПериода");
        Позиция=Периодичность.НайтиЗначение(ВидПериода);
        Если Позиция=0 Тогда
            Позиция=1;
        КонецЕсли;
        Периодичность.ТекущаяСтрока(Позиция);
        
        Если Обновить<>0 Тогда
            Т=глТаблица;
        КонецЕсли;
        
        Если Обновить<>2 Тогда
            СформироватьОтчет();
            СтатусВозврата(0);
            Возврат;
        Иначе
            ПриВыбореДаты();
            Если ТипЗначенияСтр(Субконто1)="СписокЗначений" Тогда
                Субконто1="";
                ОтборСубконто1=0;
            КонецЕсли;
            Если ТипЗначенияСтр(Субконто2)="СписокЗначений" Тогда
                Субконто2="";
                ОтборСубконто2=0;
            КонецЕсли;
            Если ТипЗначенияСтр(Субконто3)="СписокЗначений" Тогда
                Субконто3="";
                ОтборСубконто3=0;
            КонецЕсли;
            Если ТипЗначенияСтр(Субконто4)="СписокЗначений" Тогда
                Субконто4="";
                ОтборСубконто4=0;
            КонецЕсли;
        КонецЕсли;
        
        Форма.ВыбСубконто1.НазначитьТип(ВыбВидСубконто1);
        ВыбСубконто1=Субконто1;
        Если ТипЗначенияСтр(Субконто1)="СписокЗначений" Тогда
            Если Субконто1.РазмерСписка()=1 Тогда
                ВыбСубконто1=Субконто1.ПолучитьЗначение(0);
            КонецЕсли;
        КонецЕсли;
        
        Форма.ВыбСубконто2.НазначитьТип(ВыбВидСубконто2);
        ВыбСубконто2=Субконто2;
        Если ТипЗначенияСтр(Субконто2)="СписокЗначений" Тогда
            Если Субконто2.РазмерСписка()=1 Тогда
                ВыбСубконто2=Субконто2.ПолучитьЗначение(0);
            КонецЕсли;
        КонецЕсли;
        
        Форма.ВыбСубконто3.НазначитьТип(ВыбВидСубконто3);
        ВыбСубконто3=Субконто3;
        Если ТипЗначенияСтр(Субконто3)="СписокЗначений" Тогда
            Если Субконто3.РазмерСписка()=1 Тогда
                ВыбСубконто3=Субконто3.ПолучитьЗначение(0);
            КонецЕсли;
        КонецЕсли;
        
        Форма.ВыбСубконто4.НазначитьТип(ВыбВидСубконто4);
        ВыбСубконто4=Субконто4;
        Если ТипЗначенияСтр(Субконто4)="СписокЗначений" Тогда
            Если Субконто4.РазмерСписка()=1 Тогда
                ВыбСубконто4=Субконто4.ПолучитьЗначение(0);
            КонецЕсли;
        КонецЕсли;
    Иначе
        Обновить=0;
        Если ТипЗначенияСтр(РУ)<>"" Тогда
            РазделительУчета=РУ;
            ПоВсемРУ=0;
        Иначе
            ПоВсемРУ=1;
        КонецЕсли;
        Дата1=НачалоПериодаБИ();
        Дата2=КонецПериодаБИ();
        ПриУстановкеДаты();
        Если Счет.Выбран()=0 Тогда
            ВосстановитьЗначение("ОтчРабСчет",Счет);
        КонецЕсли;
    КонецЕсли;
    ПриВыбореСчета();
КонецПроцедуры
 
Процедура Сформировать(ФлагЗакрытияФормы=0)
    СохранитьЗначение("ОтчРабСчет",Счет);
    Субконто1=ВыбСубконто1;
    Субконто2=ВыбСубконто2;
    Субконто3=ВыбСубконто3;
    Субконто4=ВыбСубконто4;
    СформироватьОтчет();
КонецПроцедуры
 
Процедура ВводНового()
    Дата1=НачалоПериодаБИ();
    Дата2=КонецПериодаБИ();
    ПриУстановкеДаты();
    ПриВыбореСчета();
КонецПроцедуры
 
Процедура ПриНачалеВыбораЗначения(ИдентЭлемДиалога,Флаг)
    //Обработка выбора субконто типа "Документ"
    Если Лев(ИдентЭлемДиалога,11)="ВыбСубконто" Тогда
        Ном=Число(Прав(ИдентЭлемДиалога,1));
        Если Ном=1 Тогда
            ВидСубконто=ВыбВидСубконто1;
        ИначеЕсли Ном=2 Тогда
            ВидСубконто=ВыбВидСубконто2;
        ИначеЕсли Ном=3 Тогда
            ВидСубконто=ВыбВидСубконто3;
        ИначеЕсли Ном=4 Тогда
            ВидСубконто=ВыбВидСубконто4;
        КонецЕсли;
        Если Лев(ВидСубконто.ТипСубконто(),8)="Документ" Тогда
            //Предусмотрена возможность выбора субконто типа "Документ" из специально созданного в конфигурации журнала
            //Идентификатор такого журнала должен быть такой же,как у вида субконто
            Журнал=Метаданные.Журнал(ВидСубконто.Идентификатор());
            Если Журнал.Выбран()=0 Тогда
                Флаг=1;
                Возврат;
            КонецЕсли;
            //Тип первой ссылки первой графы этого журнала может определять тип параметра,
            //передаваемого в форму журнала документов.
            //Данный параметр может использоваться,например,для установки отбора документов в открываемой форме
            Флаг=0;
            Если Журнал.Графа(1).Выбран()=0 Тогда
                ОткрытьФорму("Журнал."+Журнал.Идентификатор);
                Возврат;
            КонецЕсли;
            Если Журнал.Графа(1).Ссылки.Количество()>0 Тогда
                РеквизитОтбора=Журнал.Графа(1).Ссылки.Получить(1).Тип+"."+Журнал.Графа(1).Ссылки.Получить(1).Вид;
                Если РеквизитОтбора=ВыбВидСубконто1.ТипСубконто() Тогда
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор,?(ОтборСубконто1=1,ВыбСубконто1,""));
                ИначеЕсли РеквизитОтбора=ВыбВидСубконто2.ТипСубконто() Тогда
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор,?(ОтборСубконто2=1,ВыбСубконто2,""));
                ИначеЕсли РеквизитОтбора=ВыбВидСубконто3.ТипСубконто() Тогда
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор,?(ОтборСубконто3=1,ВыбСубконто3,""));
                ИначеЕсли РеквизитОтбора=ВыбВидСубконто4.ТипСубконто() Тогда
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор,?(ОтборСубконто4=1,ВыбСубконто4,""));
                Иначе
                    ОткрытьФорму("Журнал."+Журнал.Идентификатор);
                КонецЕсли;
            Иначе
                ОткрытьФорму("Журнал."+Журнал.Идентификатор);
            КонецЕсли;
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
0
Модератор
Эксперт 1С
3784 / 2964 / 589
Регистрация: 10.03.2011
Сообщений: 11,669
Записей в блоге: 1
11.02.2015, 00:11 4
Это Бух итоги
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 00:26 5
Эти секции выводит Процедура ВывестиПроводку(Ит,Т,Опер,Дт,Кт). а там понятно всё. В печать попадают переменные, указанные в макете и рассчитанные в модуле, иногда функции типа Ит.СНД().

Добавлено через 2 минуты
Вам надо анализ субконто юзать, а не карточку.
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 00:37  [ТС] 6
Цитата Сообщение от duk337 Посмотреть сообщение
Эти секции выводит Процедура ВывестиПроводку(Ит,Т,Опер,Дт,Кт). а там понятно всё. В печать попадают переменные, указанные в макете и рассчитанные в модуле, иногда функции типа Ит.СНД().
Добавлено через 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
Процедура ВывестиПроводку(Ит,Т,Опер,Дт,Кт)
    Расшифровка.Установить("НомерКорреспонденции",Опер.НомерКорреспонденции());
    
    СД=Ит.СКД()-Ит.СКК();
    
    Если Количественный=1 Тогда
        Если (ОтборСубк1<>2) И (ОтборСубк2<>2) И (ОтборСубк3<>2) Тогда
            Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
                Если ПоВалюте=1 Тогда
                    СДВал=Ит.СКД(2)-Ит.СКК(2);
                    Т.ВывестиСекцию("Секция_6_7_1");
                Иначе
                    Т.ВывестиСекцию("Секция_6_1_7_1");
                КонецЕсли;
            Иначе
                Т.ВывестиСекцию("Секция_7_1");
            КонецЕсли;
        Иначе
            СДКол=Ит.СКД(3)-Ит.СКК(3);
            Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
                Если ПоВалюте=1 Тогда
                    СДВал=Ит.СКД(2)-Ит.СКК(2);
                    Т.ВывестиСекцию("Секция_6_7_1");
                Иначе
                    Т.ВывестиСекцию("Секция_6_1_7_1");
                КонецЕсли;
            Иначе
                Т.ВывестиСекцию("Секция_7_1");
            КонецЕсли;
        КонецЕсли;
    ИначеЕсли Опер.Количество<>0 Тогда
        Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
            Если ПоВалюте=1 Тогда
                СДВал=Ит.СКД(2)-Ит.СКК(2);
                Т.ВывестиСекцию("Секция_6_7_1");
            Иначе
                Т.ВывестиСекцию("Секция_6_1_7_1");
            КонецЕсли;
        Иначе
            Т.ВывестиСекцию("Секция_7_1");
        КонецЕсли;
    Иначе
        Если (Опер.ВалСумма<>0) Или (ПоВалюте=1) Тогда
            Если ПоВалюте=1 Тогда
                СДВал=Ит.СКД(2)-Ит.СКК(2);
                Т.ВывестиСекцию("Секция_6");
            Иначе
                Т.ВывестиСекцию("Секция_6_1");
            КонецЕсли;
        Иначе
            Т.ВывестиСекцию("Секция_5");
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры
какая часть кода еще нужна? в каких переменных храняться данные по КТ и ДТ (числа) ,между которыми мне нужно узнать разницу?
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 10:18 7
Цитата Сообщение от duk337 Посмотреть сообщение
Вам надо анализ субконто юзать, а не карточку.
Ит.ДО()-Ит.КО() вам надо, но не по проводке, а по аналитике. А здесь уровень операции, где ДО или КО = 0.
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 11:35  [ТС] 8
Цитата Сообщение от duk337 Посмотреть сообщение
Вам надо анализ субконто юзать, а не карточку.
В анализе субконто не прослеживаются эти цифры,которые нужно потом вычитать.единственное где они видны это только в карточке счета 83. поэтому из ккарточки мне нужно их как то доставать эти данные.


по сути мне нужно создать ведомость переоценки по 83 счету. где будет отражаться все ОС и по каждому году разность между Кт и Дт .
Чтобы в ведомость выводились все ОС я это сделала. нужно теперь по каждому ОС,по каждому году вычислить разность. А данные для разности я нашла только в карточке счета 83. (и эту же карточу мне показали бухгалтеры)
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 17:08 9
Цитата Сообщение от kapelka_leta Посмотреть сообщение
В анализе субконто не прослеживаются эти цифры,которые нужно
как это? Вам нужен годовой итог оборотов в разрезе ОС с фильтром по определённой корреспонденции. Неужели типовые отчеты этого не могут? Не верю.
"Анализ счета по субконто" есть такой отчет.

Добавлено через 6 минут
Найдите вариант, где Дт и Кт по ОС в одной строке, а колонку с разницей уж добавите как-нибудь
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 17:39  [ТС] 10
Если не сложно..
можете показать мне кусками моего кода, где в нем программа :
1. Ищет документ(в дальнейшем это "Акт переоценки")
2. Выбирает определенный Акт переоценки.
3. Берет по порядку ОС в этом акте
4. Высчитывает сумму по Дт и Кт
5. Выводит в таблицу.(по 2010 году выводит в секцию 6)

Буду очень благодарна за помощь..
просто только начинаю работать с Бух итогами,и голова уже кругом..не понимаю ничего..
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
11.02.2015, 17:56 11
Цитата Сообщение от kapelka_leta Посмотреть сообщение
просто только начинаю работать с Бух итогами
тут не бухитогами пахнет.
Цитата Сообщение от kapelka_leta Посмотреть сообщение
показать мне кусками моего кода
а где эти куски?
Вам надо сохранить типовой отчет "Анализ счета по субконто" как внешний.
Добавить в макете колонку с разницей до и ко без всяких кусков кода, в ячейках "ФорматС(Ит.КО()-Ит.ДО())". ВСЁ.
Открываете его файл.открыть.
И начать юзать. Думаю, надо будет отключить вывод детальных строк по Дт и Кт, строк остатков, да и то необязательно. Вот это уже в модуле заремарить вывестиСекцию(имя соотв.секции).
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 17:56  [ТС] 12
В анализе счета по субконто по 83 счету не формируется..
либо я что то не то выбираю..как правильно сформировать отчет счета по субконто, где Дт и Кт по ОС в одной строке???помогите )
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 18:13  [ТС] 13
Просто открыла стандартный отчет счета по субконто и выбрала по 83 счету.
и вот такая ошибка..
Миниатюры
Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)  
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 18:29  [ТС] 14
Просто я наверно Вас не понимаю.
Для чего нужен этот отчет по субконто?

там если и содержится инфа,то скорее всего,как я понимаю, в целом. т.е. по определенному средству за все года сумма вместе!?
а мне нужно чтобы по каждому отдельному ОС по каждому году(через проводки) была видна сумма в отдельной колонке.
либо я просто не понимаю как работает отчет счета по субконто...
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
11.02.2015, 18:40  [ТС] 15
У меня должна формироваться таблица с перечнем всех ос и их уникальным кодом. и следующие колонки это года (с 2010) .в этих колонках разница между КТ и Дт. и еще одна колонка это сумма за все время.Что то типо этого как на фото1.

что мне надо прописать,чтобы в этих колонках по годам формировалась эта разница?
Миниатюры
Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)   Типовые бух.отчеты по ОС. Найти сумму переоценки в разрезе ОС (КО - ДО)  
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.02.2015, 11:05 16
к #13.
1.Убрать галку по корр.счетам и аналитике.
2.Выбрать вид субконто как Субконто1 - ОС. "Разворачивать".
Цитата Сообщение от kapelka_leta Посмотреть сообщение
Для чего нужен этот отчет по субконто?
Субконто - это Ваши ОС. Обороты по переоценке, собранные по ОС, можно получить только так.
0
0 / 0 / 3
Регистрация: 23.03.2013
Сообщений: 148
12.02.2015, 11:23  [ТС] 17
Цитата Сообщение от duk337 Посмотреть сообщение
Субконто - это Ваши ОС. Обороты по переоценке, собранные по ОС, можно получить только так.
а можно ли написать какую нибудь формулу ,типо "ФорматС(Ит.КО()-Ит.ДО())" этой в ячейках по годам,чтобы все считало?
просто если писать эту формулу "ФорматС(Ит.КО()-Ит.ДО())",то отрицательные суммы выдает.

Добавлено через 4 минуты
к #13
по 83 счету не дает,только если по 02 счету. амортизация.
но там виден 83 счет. там отражается только сумма по Дт.

подскажите лучше формулу) проще будет)
спасибо)
0
2955 / 1767 / 82
Регистрация: 03.11.2011
Сообщений: 8,280
12.02.2015, 12:21 18
кто-то удалил субконто ОС с 83.1?
Цитата Сообщение от kapelka_leta Посмотреть сообщение
подскажите лучше формулу) проще будет)
нет такой формулы в карточке счета.
0
12.02.2015, 12:21
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
12.02.2015, 12:21
Помогаю со студенческими работами здесь

Перенос данных из Бух. 7.7 в Бух. 7.7
Всем доброго времени суток! Был сделан архив базы, затем произведено обновление (конфигурация...

Отчеты- как расчитать сумму?
здравствуйте! у меня есть документ оплата. если абитуриент заплатил 2 раза по 750 то в регистре...

Управляющий. Стандарт. Минусы в ОСВ после переоценки
после переоценки в отчете &quot;обороты номенклатуры&quot; появились миллионные минусы, получился...

Не проводится документ, огромные минусы после переоценки
Всем доброго дня. Такая проблема: не получается провести документ, ошибка пишет, что не достаточное...

Вытянуть код номенклатуры в макет печати документа переоценки
1С:Предприятие 8.2 (8.2.19.130) конфиг 1.2.15.2 Скажите пожалуйста, как вытянуть код номенклатуры...


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

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