Форум программистов, компьютерный форум, киберфорум
Наши страницы
Войти
Регистрация
Восстановить пароль
 
restarbit
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 46
1

Отчет в СКД

14.02.2019, 15:02. Просмотров 316. Ответов 6

Добрый день. Подскажите пожалуйста. Строю в СКД отчет, там есть запрос который помещается в временную таблицу (ВТ), и следом за ним другой запрос, который тянет данные из ВТ + добавляет другие данные.
Отчет строится нормально, кроме одного поля, которое тянется из ВТ. Если взять из СКД польностью скопировать код обоих запросов и выполнить его в консольке для запросов (без связей), то отображается все классно.
Может у меня как-то плохо связи выполнены? Я особого опыта в этом деле не имею, поэтому прошу помощи. (Прикрепил скриншоты внизу и код запроса)
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
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(СчетНаОплатуПокупателю.СуммаДокумента) КАК Долг,
    СчетНаОплатуПокупателю.Подразделение
ПОМЕСТИТЬ ДолгВТ
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты
        ПО СчетНаОплатуПокупателю.Ссылка = ХозрасчетныйОбороты.Субконто3
ГДЕ
    СчетНаОплатуПокупателю.ПометкаУдаления = ЛОЖЬ
    И ХозрасчетныйОбороты.Счет ЕСТЬ NULL 
    И СчетНаОплатуПокупателю.БезОплатнаяОснова = ЛОЖЬ
    И СчетНаОплатуПокупателю.Дата > &ДатаЯнваря
 
СГРУППИРОВАТЬ ПО
    СчетНаОплатуПокупателю.Подразделение
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПодразделенияОрганизаций.Ссылка,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 60
                ИЛИ ПодразделенияОрганизаций.Код = 73
            ТОГДА "ЭТАЛОН"
        ИНАЧЕ ПодразделенияОрганизаций.Наименование
    КОНЕЦ КАК Наименование,
    ПланРеализацииСрезПоследних.Сумма КАК План,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Поступления.СуммаПоступления + ЕСТЬNULL(Поступления10.СуммаПоступления10, 0)
        ИНАЧЕ Поступления.СуммаПоступления
    КОНЕЦ КАК СуммаПоступления,
    ВЫБОР
        КОГДА ПланРеализацииСрезПоследних.Сумма <> 0
            ТОГДА ВЫБОР
                    КОГДА ПодразделенияОрганизаций.Код = 8
                        ТОГДА (Реализация.СуммаАктов + РеализацияОтдела10.СуммаАктов10) / ПланРеализацииСрезПоследних.Сумма * 100
                    ИНАЧЕ Реализация.СуммаАктов / ПланРеализацииСрезПоследних.Сумма * 100
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентВыполнения,
    ВыставленныеСчета.СуммаВыставленныхСчетов,
    Кредиторы.ОстатокПереплаты,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Реализация.СуммаАктов + ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0)
        ИНАЧЕ Реализация.СуммаАктов
    КОНЕЦ КАК СуммаАктов,
    ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0) КАК СуммаАктов10,
    ЕСТЬNULL(Поступления10.СуммаПоступления10, 0) КАК СуммаПоступления10
ИЗ
    Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение КАК СделкаПодразделение,
            СУММА(ВЫРАЗИТЬ(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа * ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КурсВзаиморасчетов / ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)) КАК СуммаПоступления
        ИЗ
            Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
        ГДЕ
            ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
            И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
        
        СГРУППИРОВАТЬ ПО
            ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Подразделение,
            ВЫРАЗИТЬ(ПриходныйКассовыйОрдерРасшифровкаПлатежа.СуммаПлатежа * ПриходныйКассовыйОрдерРасшифровкаПлатежа.КурсВзаиморасчетов / ПриходныйКассовыйОрдерРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)
        ИЗ
            Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
        ГДЕ
            ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
            И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК Поступления
        ПО ПодразделенияОрганизаций.Ссылка = Поступления.СделкаПодразделение
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СчетНаОплатуПокупателю.Подразделение КАК Подразделение,
            СУММА(СчетНаОплатуПокупателю.СуммаДокумента) КАК СуммаВыставленныхСчетов
        ИЗ
            Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ГДЕ
            СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
            И СчетНаОплатуПокупателю.ПометкаУдаления = ЛОЖЬ
        
        СГРУППИРОВАТЬ ПО
            СчетНаОплатуПокупателю.Подразделение) КАК ВыставленныеСчета
        ПО ПодразделенияОрганизаций.Ссылка = ВыставленныеСчета.Подразделение
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            КредиторыПоСделка.Субконто3.Подразделение КАК Подразделение,
            СУММА(КредиторыПоСделка.СуммаОстатокКт) КАК ОстатокПереплаты
        ИЗ
            (ВЫБРАТЬ
                ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
                ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
            ИЗ
                РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериодаРеализации, , , ) КАК ХозрасчетныйОстатки
            ГДЕ
                ХозрасчетныйОстатки.Счет.Код = "6811"
                И ХозрасчетныйОстатки.Субконто3 ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК КредиторыПоСделка
        
        СГРУППИРОВАТЬ ПО
            КредиторыПоСделка.Субконто3.Подразделение) КАК Кредиторы
        ПО ПодразделенияОрганизаций.Ссылка = Кредиторы.Подразделение
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ВЫБОР
                    КОГДА АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов = 1
                        ТОГДА АктОбОказанииПроизводственныхУслуг.СуммаДокумента
                    ИНАЧЕ ВЫРАЗИТЬ(АктОбОказанииПроизводственныхУслуг.СуммаДокумента * АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов / АктОбОказанииПроизводственныхУслуг.КратностьВзаиморасчетов КАК ЧИСЛО)
                КОНЕЦ) КАК СуммаАктов10,
            МАКСИМУМ(8) КАК КодОтдетла10
        ИЗ
            Документ.АктОбОказанииПроизводственныхУслуг КАК АктОбОказанииПроизводственныхУслуг
        ГДЕ
            АктОбОказанииПроизводственныхУслуг.Проведен = ИСТИНА
            И АктОбОказанииПроизводственныхУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
            И АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации.Код = 10
            И АктОбОказанииПроизводственныхУслуг.ВидАкта <> ЗНАЧЕНИЕ(Перечисление.ВидыАктовРаботы.ВыведенИзГарантийногоПисьма)
        
        СГРУППИРОВАТЬ ПО
            АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации) КАК РеализацияОтдела10
        ПО ПодразделенияОрганизаций.Код = РеализацияОтдела10.КодОтдетла10
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ВЫБОР
                    КОГДА АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов = 1
                        ТОГДА АктОбОказанииПроизводственныхУслуг.СуммаДокумента
                    ИНАЧЕ ВЫРАЗИТЬ(АктОбОказанииПроизводственныхУслуг.СуммаДокумента * АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов / АктОбОказанииПроизводственныхУслуг.КратностьВзаиморасчетов КАК ЧИСЛО)
                КОНЕЦ) КАК СуммаАктов,
            АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации КАК Подразделение
        ИЗ
            Документ.АктОбОказанииПроизводственныхУслуг КАК АктОбОказанииПроизводственныхУслуг
        ГДЕ
            АктОбОказанииПроизводственныхУслуг.Проведен = ИСТИНА
            И АктОбОказанииПроизводственныхУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
            И ВЫБОР
                    КОГДА АктОбОказанииПроизводственныхУслуг.Сделка.Сектор <> ЗНАЧЕНИЕ(Справочник.СекторыПодразделений.ПустаяСсылка)
                        ТОГДА АктОбОказанииПроизводственныхУслуг.Сделка.Сектор.Код
                    ИНАЧЕ 0
                КОНЕЦ <> 20
            И АктОбОказанииПроизводственныхУслуг.ВидАкта <> ЗНАЧЕНИЕ(Перечисление.ВидыАктовРаботы.ВыведенИзГарантийногоПисьма)
        
        СГРУППИРОВАТЬ ПО
            АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации) КАК Реализация
        ПО ПодразделенияОрганизаций.Ссылка = Реализация.Подразделение
        ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
            СУММА(ВЫРАЗИТЬ(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа * ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КурсВзаиморасчетов / ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)) КАК СуммаПоступления10,
            МАКСИМУМ(8) КАК КодОтдетла10
        ИЗ
            Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
        ГДЕ
            ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
            И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
            И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение.Код = 10
        
        СГРУППИРОВАТЬ ПО
            ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение
        
        ОБЪЕДИНИТЬ ВСЕ
        
        ВЫБРАТЬ
            ВЫРАЗИТЬ(ПриходныйКассовыйОрдерРасшифровкаПлатежа.СуммаПлатежа * ПриходныйКассовыйОрдерРасшифровкаПлатежа.КурсВзаиморасчетов / ПриходныйКассовыйОрдерРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО),
            8
        ИЗ
            Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
        ГДЕ
            ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Проведен
            И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
            И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Подразделение.Код = 10) КАК Поступления10
        ПО ПодразделенияОрганизаций.Код = Поступления10.КодОтдетла10
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланРеализации.СрезПоследних(&КонецПериода, ) КАК ПланРеализацииСрезПоследних
        ПО (ПланРеализацииСрезПоследних.ПодразделениеОрганизации = ПодразделенияОрганизаций.Ссылка)
ГДЕ
    (ПодразделенияОрганизаций.Код = 2
            ИЛИ ПодразделенияОрганизаций.Код = 1
            ИЛИ ПодразделенияОрганизаций.Код = 3
            ИЛИ ПодразделенияОрганизаций.Код = 4
            ИЛИ ПодразделенияОрганизаций.Код = 5
            ИЛИ ПодразделенияОрганизаций.Код = 6
            ИЛИ ПодразделенияОрганизаций.Код = 8
            ИЛИ ПодразделенияОрганизаций.Код = 9
            ИЛИ ПодразделенияОрганизаций.Код = 24
            ИЛИ ПодразделенияОрганизаций.Код = 26
            ИЛИ ПодразделенияОрганизаций.Код = 27)
 
СГРУППИРОВАТЬ ПО
    ПодразделенияОрганизаций.Ссылка,
    ПланРеализацииСрезПоследних.Сумма,
    ВыставленныеСчета.СуммаВыставленныхСчетов,
    Кредиторы.ОстатокПереплаты,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 60
                ИЛИ ПодразделенияОрганизаций.Код = 73
            ТОГДА "ЭТАЛОН"
        ИНАЧЕ ПодразделенияОрганизаций.Наименование
    КОНЕЦ,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Поступления.СуммаПоступления + ЕСТЬNULL(Поступления10.СуммаПоступления10, 0)
        ИНАЧЕ Поступления.СуммаПоступления
    КОНЕЦ,
    ВЫБОР
        КОГДА ПланРеализацииСрезПоследних.Сумма <> 0
            ТОГДА ВЫБОР
                    КОГДА ПодразделенияОрганизаций.Код = 8
                        ТОГДА (Реализация.СуммаАктов + РеализацияОтдела10.СуммаАктов10) / ПланРеализацииСрезПоследних.Сумма * 100
                    ИНАЧЕ Реализация.СуммаАктов / ПланРеализацииСрезПоследних.Сумма * 100
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Реализация.СуммаАктов + ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0)
        ИНАЧЕ Реализация.СуммаАктов
    КОНЕЦ,
    ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0),
    ЕСТЬNULL(Поступления10.СуммаПоступления10, 0)
https://pp.userapi.com/c851524/v851524096/b6f37/RoDwgLvJFes.jpg
https://pp.userapi.com/c849424/v849424139/12f086/7dMz9jqbwAw.jpg
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
14.02.2019, 15:02
Ответы с готовыми решениями:

Отчет в СКД
Господа, подскажите как в СКД можно решить данную проблему: нужно вывести оганизации в 2...

Отчет СКД
Добрый день. Пытаюсь какой уже день, все мысли исчерпаны. Пытаюсь сделать отчет при помощи СКД ...

Отчет СКД
Создала внешний отчет с помощью СКД. Результат вывожу на форму в Поле табличного документа. Ка мне...

3в1 отчет на СКД
Здравствуйте, может кто делал такое, поделитесь опытом. Собсно по сабжу: надо сделать отчет...

Такой отчет в скд
Всем привет. Надо сделать отчет, где 1я строка в группе это к-во выданных денег(берется из док),...

6
SonicQ
283 / 183 / 18
Регистрация: 20.02.2012
Сообщений: 918
15.02.2019, 08:39 2
restarbit, смотри в настройках СКД, скорее всего группировка не правильная, может лишний раз где то сгруппировал или просуммировал поле
1
restarbit
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 46
15.02.2019, 08:43  [ТС] 3
В том то и дело, не вижу ничего подозрительного((
0
SonicQ
283 / 183 / 18
Регистрация: 20.02.2012
Сообщений: 918
15.02.2019, 08:52 4
restarbit, а параметры верно заданы? Например "Конец периода" явно должен быть как "КонецДня"

Добавлено через 3 минуты
restarbit, потом еще соединение с таблице "долг". Она должна быть присоединена левым к "Подразделению". Хотя тут как бы вопрос в другом, в СКД одно показывает, в консоли другое. Так что ищи различие в настройках)
0
Yulunga
393 / 284 / 72
Регистрация: 22.04.2013
Сообщений: 1,779
Записей в блоге: 1
Завершенные тесты: 1
15.02.2019, 12:47 5
меня беспокоят 2 вещи :
кототдетла
и
долгвт - в него данные помещаются, но больше нигде не используются ( ctrl-f по коду запроса)
1
restarbit
0 / 0 / 1
Регистрация: 27.09.2013
Сообщений: 46
15.02.2019, 16:18  [ТС] 6
Я не тот код скопировал(((
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
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(СчетНаОплатуПокупателю.СуммаДокумента) КАК Долг,
    СчетНаОплатуПокупателю.Подразделение
ПОМЕСТИТЬ ДолгВТ
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты
        ПО СчетНаОплатуПокупателю.Ссылка = ХозрасчетныйОбороты.Субконто3
ГДЕ
    СчетНаОплатуПокупателю.ПометкаУдаления = ЛОЖЬ
    И ХозрасчетныйОбороты.Счет ЕСТЬ NULL 
    И СчетНаОплатуПокупателю.БезОплатнаяОснова = ЛОЖЬ
    И СчетНаОплатуПокупателю.Дата > &ДатаЯнваря
 
СГРУППИРОВАТЬ ПО
    СчетНаОплатуПокупателю.Подразделение
;
 
////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    ПодразделенияОрганизаций.Ссылка,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 60
                ИЛИ ПодразделенияОрганизаций.Код = 73
            ТОГДА "ЭТАЛОН"
        ИНАЧЕ ПодразделенияОрганизаций.Наименование
    КОНЕЦ КАК Наименование,
    ПланРеализацииСрезПоследних.Сумма КАК План,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Поступления.СуммаПоступления + ЕСТЬNULL(Поступления10.СуммаПоступления10, 0)
        ИНАЧЕ Поступления.СуммаПоступления
    КОНЕЦ КАК СуммаПоступления,
    ВЫБОР
        КОГДА ПланРеализацииСрезПоследних.Сумма <> 0
            ТОГДА ВЫБОР
                    КОГДА ПодразделенияОрганизаций.Код = 8
                        ТОГДА (Реализация.СуммаАктов + РеализацияОтдела10.СуммаАктов10) / ПланРеализацииСрезПоследних.Сумма * 100
                    ИНАЧЕ Реализация.СуммаАктов / ПланРеализацииСрезПоследних.Сумма * 100
                КОНЕЦ
        ИНАЧЕ 0
    КОНЕЦ КАК ПроцентВыполнения,
    ВыставленныеСчета.СуммаВыставленныхСчетов,
    Кредиторы.ОстатокПереплаты,
    ВЫБОР
        КОГДА ПодразделенияОрганизаций.Код = 8
            ТОГДА Реализация.СуммаАктов + ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0)
        ИНАЧЕ Реализация.СуммаАктов
    КОНЕЦ КАК СуммаАктов,
    ЕСТЬNULL(РеализацияОтдела10.СуммаАктов10, 0) КАК СуммаАктов10,
    ЕСТЬNULL(Поступления10.СуммаПоступления10, 0) КАК СуммаПоступления10,
    ДолгВТ.Долг
ИЗ
    ДолгВТ КАК ДолгВТ
        ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ПодразделенияОрганизаций КАК ПодразделенияОрганизаций
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение КАК СделкаПодразделение,
                СУММА(ВЫРАЗИТЬ(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа * ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КурсВзаиморасчетов / ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)) КАК СуммаПоступления
            ИЗ
                Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
            ГДЕ
                ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
                И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
            
            СГРУППИРОВАТЬ ПО
                ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Подразделение,
                ВЫРАЗИТЬ(ПриходныйКассовыйОрдерРасшифровкаПлатежа.СуммаПлатежа * ПриходныйКассовыйОрдерРасшифровкаПлатежа.КурсВзаиморасчетов / ПриходныйКассовыйОрдерРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)
            ИЗ
                Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
            ГДЕ
                ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
                И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода) КАК Поступления
            ПО ПодразделенияОрганизаций.Ссылка = Поступления.СделкаПодразделение
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                СчетНаОплатуПокупателю.Подразделение КАК Подразделение,
                СУММА(СчетНаОплатуПокупателю.СуммаДокумента) КАК СуммаВыставленныхСчетов
            ИЗ
                Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
            ГДЕ
                СчетНаОплатуПокупателю.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
                И СчетНаОплатуПокупателю.ПометкаУдаления = ЛОЖЬ
            
            СГРУППИРОВАТЬ ПО
                СчетНаОплатуПокупателю.Подразделение) КАК ВыставленныеСчета
            ПО ПодразделенияОрганизаций.Ссылка = ВыставленныеСчета.Подразделение
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                КредиторыПоСделка.Субконто3.Подразделение КАК Подразделение,
                СУММА(КредиторыПоСделка.СуммаОстатокКт) КАК ОстатокПереплаты
            ИЗ
                (ВЫБРАТЬ
                    ХозрасчетныйОстатки.Субконто3 КАК Субконто3,
                    ХозрасчетныйОстатки.СуммаОстатокКт КАК СуммаОстатокКт
                ИЗ
                    РегистрБухгалтерии.Хозрасчетный.Остатки(&КонецПериодаРеализации, , , ) КАК ХозрасчетныйОстатки
                ГДЕ
                    ХозрасчетныйОстатки.Счет.Код = "6811"
                    И ХозрасчетныйОстатки.Субконто3 ССЫЛКА Документ.СчетНаОплатуПокупателю) КАК КредиторыПоСделка
            
            СГРУППИРОВАТЬ ПО
                КредиторыПоСделка.Субконто3.Подразделение) КАК Кредиторы
            ПО ПодразделенияОрганизаций.Ссылка = Кредиторы.Подразделение
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                СУММА(ВЫБОР
                        КОГДА АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов = 1
                            ТОГДА АктОбОказанииПроизводственныхУслуг.СуммаДокумента
                        ИНАЧЕ ВЫРАЗИТЬ(АктОбОказанииПроизводственныхУслуг.СуммаДокумента * АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов / АктОбОказанииПроизводственныхУслуг.КратностьВзаиморасчетов КАК ЧИСЛО)
                    КОНЕЦ) КАК СуммаАктов10,
                МАКСИМУМ(8) КАК КодОтдетла10
            ИЗ
                Документ.АктОбОказанииПроизводственныхУслуг КАК АктОбОказанииПроизводственныхУслуг
            ГДЕ
                АктОбОказанииПроизводственныхУслуг.Проведен = ИСТИНА
                И АктОбОказанииПроизводственныхУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
                И АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации.Код = 10
                И АктОбОказанииПроизводственныхУслуг.ВидАкта <> ЗНАЧЕНИЕ(Перечисление.ВидыАктовРаботы.ВыведенИзГарантийногоПисьма)
            
            СГРУППИРОВАТЬ ПО
                АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации) КАК РеализацияОтдела10
            ПО ПодразделенияОрганизаций.Код = РеализацияОтдела10.КодОтдетла10
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                СУММА(ВЫБОР
                        КОГДА АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов = 1
                            ТОГДА АктОбОказанииПроизводственныхУслуг.СуммаДокумента
                        ИНАЧЕ ВЫРАЗИТЬ(АктОбОказанииПроизводственныхУслуг.СуммаДокумента * АктОбОказанииПроизводственныхУслуг.КурсВзаиморасчетов / АктОбОказанииПроизводственныхУслуг.КратностьВзаиморасчетов КАК ЧИСЛО)
                    КОНЕЦ) КАК СуммаАктов,
                АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации КАК Подразделение
            ИЗ
                Документ.АктОбОказанииПроизводственныхУслуг КАК АктОбОказанииПроизводственныхУслуг
            ГДЕ
                АктОбОказанииПроизводственныхУслуг.Проведен = ИСТИНА
                И АктОбОказанииПроизводственныхУслуг.Дата МЕЖДУ &НачалоПериода И &КонецПериодаРеализации
                И ВЫБОР
                        КОГДА АктОбОказанииПроизводственныхУслуг.Сделка.Сектор <> ЗНАЧЕНИЕ(Справочник.СекторыПодразделений.ПустаяСсылка)
                            ТОГДА АктОбОказанииПроизводственныхУслуг.Сделка.Сектор.Код
                        ИНАЧЕ 0
                    КОНЕЦ <> 20
                И АктОбОказанииПроизводственныхУслуг.ВидАкта <> ЗНАЧЕНИЕ(Перечисление.ВидыАктовРаботы.ВыведенИзГарантийногоПисьма)
            
            СГРУППИРОВАТЬ ПО
                АктОбОказанииПроизводственныхУслуг.ПодразделениеОрганизации) КАК Реализация
            ПО ПодразделенияОрганизаций.Ссылка = Реализация.Подразделение
            ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
                СУММА(ВЫРАЗИТЬ(ПлатежноеПоручениеВходящееРасшифровкаПлатежа.СуммаПлатежа * ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КурсВзаиморасчетов / ПлатежноеПоручениеВходящееРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО)) КАК СуммаПоступления10,
                МАКСИМУМ(8) КАК КодОтдетла10
            ИЗ
                Документ.ПлатежноеПоручениеВходящее.РасшифровкаПлатежа КАК ПлатежноеПоручениеВходящееРасшифровкаПлатежа
            ГДЕ
                ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Проведен = ИСТИНА
                И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                И ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение.Код = 10
            
            СГРУППИРОВАТЬ ПО
                ПлатежноеПоручениеВходящееРасшифровкаПлатежа.Сделка.Подразделение
            
            ОБЪЕДИНИТЬ ВСЕ
            
            ВЫБРАТЬ
                ВЫРАЗИТЬ(ПриходныйКассовыйОрдерРасшифровкаПлатежа.СуммаПлатежа * ПриходныйКассовыйОрдерРасшифровкаПлатежа.КурсВзаиморасчетов / ПриходныйКассовыйОрдерРасшифровкаПлатежа.КратностьВзаиморасчетов КАК ЧИСЛО),
                8
            ИЗ
                Документ.ПриходныйКассовыйОрдер.РасшифровкаПлатежа КАК ПриходныйКассовыйОрдерРасшифровкаПлатежа
            ГДЕ
                ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Проведен
                И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Ссылка.Дата МЕЖДУ &НачалоПериода И &КонецПериода
                И ПриходныйКассовыйОрдерРасшифровкаПлатежа.Сделка.Подразделение.Код = 10) КАК Поступления10
            ПО ПодразделенияОрганизаций.Код = Поступления10.КодОтдетла10
            ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПланРеализации.СрезПоследних(&КонецПериода, ) КАК ПланРеализацииСрезПоследних
            ПО (ПланРеализацииСрезПоследних.ПодразделениеОрганизации = ПодразделенияОрганизаций.Ссылка)
        ПО ДолгВТ.Подразделение = ПодразделенияОрганизаций.Ссылка
ГДЕ
    (ПодразделенияОрганизаций.Код = 2
            ИЛИ ПодразделенияОрганизаций.Код = 1
            ИЛИ ПодразделенияОрганизаций.Код = 3
            ИЛИ ПодразделенияОрганизаций.Код = 4
            ИЛИ ПодразделенияОрганизаций.Код = 5
            ИЛИ ПодразделенияОрганизаций.Код = 6
            ИЛИ ПодразделенияОрганизаций.Код = 8
            ИЛИ ПодразделенияОрганизаций.Код = 9
            ИЛИ ПодразделенияОрганизаций.Код = 24
            ИЛИ ПодразделенияОрганизаций.Код = 26
            ИЛИ ПодразделенияОрганизаций.Код = 27)
Но запрос то сам по себе работает.
0
polax
933 / 610 / 205
Регистрация: 16.01.2015
Сообщений: 2,155
15.02.2019, 21:00 7
А сам запрос никого не смущает? Запрос - откровенно дрянь. Начиная сначала:
1C
1
2
3
4
5
6
7
8
ВЫБРАТЬ РАЗРЕШЕННЫЕ
    СУММА(СчетНаОплатуПокупателю.СуммаДокумента) КАК Долг,
    СчетНаОплатуПокупателю.Подразделение
ПОМЕСТИТЬ ДолгВТ
ИЗ
    Документ.СчетНаОплатуПокупателю КАК СчетНаОплатуПокупателю
        ЛЕВОЕ СОЕДИНЕНИЕ РегистрБухгалтерии.Хозрасчетный.Обороты КАК ХозрасчетныйОбороты
        ПО СчетНаОплатуПокупателю.Ссылка = ХозрасчетныйОбороты.Субконто3
Зачем здесь вторая таблица и левое соединение, если вы ничего не берете из второй таблицы?
Вторая часть - все ну или почти все нужные вам данные есть в регистрах накопления, данные надо брать оттуда, а не собирать все подряд документы. Ну и поле соединения таблиц - результат запроса - это прямой путь к долгому ожиданию выполнения отчета вплоть до полного зависания (самая низкая производительность)
Что касается вопроса, 100% где-то в дебрях кучи левых соединений по результату запроса двоятся и троятся подразделения.
Берите временную таблицу и соединяйте с остальными данными, но разбитыми по одному а не все в куче и смотрите результат. В каком случае появится повторение подразделений. В том виде в котором запрос сейчас найти ошибку крайне сложно, если вообще возможно
0
15.02.2019, 21:00
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
15.02.2019, 21:00

Отчет СКД не работатет в Sql-e
Перенес базу в MS SQL 2008 Express - файловый глючил постоянно. И с удивление обнаружил, что отчет,...

Отчет без использования СКД
Есть в форме диаграмма, нужно сделать такую же, но только в виде отчета. Диаграмма весьма сложна, и...

Отчет по разным периодам в СКД?
Кто нибудь пробовал делать отчет в СКД по разным периодам? т.е. дупустим берем январь 2011 февраль...


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

Или воспользуйтесь поиском по форуму:
7
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru