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
| Перем ИтВал,плп;
Процедура Сформировать_Колонки_Вал(Ит, Таб, Стр,Вал,ИтВал,Суб1,Суб2)
Суб1.НайтиЭлемент(Ит.Субконто(1));
С1=Суб1.ТекущийЭлемент();
Суб2.НайтиЭлемент(Ит.Субконто(2));
С2=Суб2.ТекущийЭлемент();
ИтВал.ИспользоватьСубконто(ВидыСубконто.Контрагенты,С1,1);
ИтВал.ИспользоватьСубконто(ВидыСубконто.Основание,С2,1);
ИтВал.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "60.2",,Вал,3,,3);
ИтВалКД=ИтВал.СКД(2);
ИтВалКК=ИтВал.СКК(2);
ИтВалДО=ИтВал.ДО(2);
ИтВалКО=ИтВал.КО(2);
Если ИтВал.ВыбратьВалюты()=1 Тогда
Таб.ВывестиСекцию(Стр+"|Начало");
Иначе
Возврат;
КонецЕсли;
Ит.ВыбратьКорСчета(1, 1);
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.КорСчет.ЭтоГруппа()=0 Тогда
ИтВал.ИспользоватьСубконто(ВидыСубконто.Контрагенты,С1,1);
ИтВал.ИспользоватьСубконто(ВидыСубконто.Основание,С2,1);
ИтВал.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "60",Ит.КорСчет,Вал, 3,, 3);
Таб.ПрисоединитьСекцию(Стр+"|КорСчет_Дт");
Если (Ит.КорСчет=СчетПоКоду("51.0")) или (Ит.КорСчет=СчетПоКоду("51.1")) или (Ит.КорСчет.ПринадлежитГруппе(СчетПоКоду(52))=1) Тогда
Таб.ПрисоединитьСекцию(Стр+"|Выписка");
КонецЕсли;
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Оборот_Дт");
Ит.ВыбратьКорСчета(1, 2);
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.КорСчет.ЭтоГруппа()=0 Тогда
ИтВал.ИспользоватьСубконто(ВидыСубконто.Контрагенты,С1,1);
ИтВал.ИспользоватьСубконто(ВидыСубконто.Основание,С2,1);
ИтВал.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "60",Ит.КорСчет,Вал, 3,, 3);
Таб.ПрисоединитьСекцию(Стр+"|КорСчет_Кт");
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Оборот_Кт");
Таб.ПрисоединитьСекцию(Стр+"|Конец");
КонецПроцедуры
Процедура Сформировать_Колонки(Ит, Таб, Стр)
Таб.ВывестиСекцию(Стр+"|Начало");
Опер = СоздатьОбъект("Операция");
Ит.ВыбратьКорСчета(1, 1);
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.КорСчет.ЭтоГруппа()=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|КорСчет_Дт");
Док="";
Док1="";
Платежка="";
Если (Ит.КорСчет=СчетПоКоду("51.0")) или (Ит.КорСчет=СчетПоКоду("51.1")) или (Ит.КорСчет.ПринадлежитГруппе(СчетПоКоду(52))=1) Тогда
Опер.ИспользоватьСубконто(ВидыСубконто.Контрагенты, Ит.Субконто(1));
Опер.ИспользоватьСубконто(ВидыСубконто.Основание, %C8т.Субконто(2));
Опер.ВыбратьОперацииСПроводками(ВыбНачПериода, ВыбКонПериода, Ит.Счет, Ит.КорСчет, 3, "");
Пока Опер.ПолучитьПроводку() = 1 Цикл
Док=Опер.Документ.ТекущийДокумент();
Если Док.Вид()="Выписка" Тогда
Док1="Вып.№"+СокрЛП(Опер.Документ.НомерДок)+" от "+Опер.Документ.ДатаДок;
ПлП.НайтиДокумент(Док);
ПлП.ВыбратьСтроки();
Пока ПлП.ПолучитьСтроку()=1 Цикл
Если (Ит.Субконто(1)=ПлП.Субконто1) и (Ит.Субконто(2)=ПлП.Субконто2) Тогда
//Платежка= Лев(ПлП.НазначениеПлатежа,20);
Платежка= "п/п № "+ПлП.НомерПП;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Выписка");
КонецЕсли;
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Оборот_Дт");
Ит.ВыбратьКорСчета(1, 2);
Пока Ит.ПолучитьКорСчет() = 1 Цикл
Если Ит.КорСчет.ЭтоГруппа()=0 Тогда
Таб.ПрисоединитьСекцию(Стр+"|КорСчет_Кт");
КонецЕсли;
КонецЦикла;
Таб.ПрисоединитьСекцию(Стр+"|Оборот_Кт");
Таб.ПрисоединитьСекцию(Стр+"|Конец");
КонецПроцедуры
Процедура Сформировать()
Таб = СоздатьОбъект("Таблица");
Таб.ИсходнаяТаблица("Сформировать");
плп=СоздатьОбъект("Документ.Выписка");
СВ=СоздатьОбъект("Справочник.Валюты");
Суб1=СоздатьОбъект("Справочник.Контрагенты");
Суб2=СоздатьОбъект("Справочник.Договора");
Ит = СоздатьОбъект("БухгалтерскиеИтоги");
ИтВал = СоздатьОбъект("БухгалтерскиеИтоги");
Ит.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
Ит.ИспользоватьСубконто(ВидыСубконто.Основание,, 1);
Ит.ВключатьСубсчета(, 1);
Ит.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "60",,, 3,, 3);
ИтБар = СоздатьОбъект("БухгалтерскиеИтоги");
ИтБар.ИспользоватьСубконто(ВидыСубконто.Контрагенты,, 1);
ИтБар.ИспользоватьСубконто(ВидыСубконто.Основание,, 1);
ИтБар.ВключатьСубсчета(, 1);
ИтБар.ВыполнитьЗапрос(ВыбНачПериода, ВыбКонПериода, "60",,, 3,, 3);
КолПБ=0;
ИтБар.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Пока ИтБар.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
КолПБ=КолПБ+1;
КонецЦикла;
Таб.ВывестиСекцию("Заголовок");
Сформировать_Колонки(Ит, Таб, "Шапка");
Таб.Опции(1, 1, 7, 3,,);
Таб.ПовторятьПриПечатиСтроки(3,4);
Таб.ПараметрыСтраницы(2,100,,5,3,3,3,5,0,,,);
//прогресс-бар
и1=0;
и2=0;
Форма.Картина.Видимость(1);
Форма.Процент.Видимость(1);
НомерПБ=0;
//конец бара
Ит.ВыбратьСубконто(ВидыСубконто.Контрагенты);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Контрагенты) = 1 Цикл
//прогресс-бар
НомерПБ=НомерПБ+1;
Кратность=Цел(КолПБ/26);
и1=и1+1;
Форма.процент.Заголовок("Выполнено "+Окр(100/КолПБ*НомерПБ,0,1)+"%");
Если и1=Кратность Тогда
и2=и2+1;
Форма.ПрогрессПолн.Заголовок(СтрЗаменить(Формат("","С"+и2)," ","g"));
и1=0;
КонецЕсли;
//конецбара
Сформировать_Колонки(Ит, Таб, "Субконто1");
Ит.ВыбратьСубконто(ВидыСубконто.Основание);
Пока Ит.ПолучитьСубконто(ВидыСубконто.Основание) = 1 Цикл
Сформировать_Колонки(Ит, Таб, "Субконто2");
СВ.ВыбратьЭлементы();
Пока СВ.ПолучитьЭлемент()=1 Цикл
Сформировать_Колонки_Вал(Ит, Таб, "Валютная",СВ.ТекущийЭлемент(),ИтВал,Суб1,Суб2);
КонецЦикла;
КонецЦикла;
КонецЦикла;
//прогресс-бар
Форма.ПрогрессПолн.Заголовок("");
Форма.Картина.Видимость(0);
Форма.Процент.Видимость(0);
//конец бара
Сформировать_Колонки(Ит, Таб, "Подвал");
Таб.ТолькоПросмотр(1);
Таб.Показать("Журнал-ордер 60 счета","ЖО60_р"+ДатаМесяц(ВыбНачПериода),1);
КонецПроцедуры
Процедура ПриОткрытии()
ВыбНачПериода = НачалоПериодаБИ();
ВыбКонПериода = КонецПериодаБИ();
//прогресс-бар
Форма.Картина.Видимость(0);
Форма.Процент.Видимость(0);
//конец бара
КонецПроцедуры |