Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
1

Группировка в запросе при печати документа.

30.06.2016, 09:50. Просмотров 904. Ответов 11
Метки нет (Все метки)

Приветствую профи 1С, сам новичок в 1С, хотел бы узнать, как можно получить такой результат, как показан на рисунке (красным)? Делался запросом.
1С 8.2 УТ 10.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
Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
 
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ПоступлениеТоваровУслуг.Номер,
    |   ПоступлениеТоваровУслуг.Дата,
    |   ПоступлениеТоваровУслуг.ДатаВходящегоДокумента,
    |   ПоступлениеТоваровУслуг.ДоговорКонтрагента,
    |   ПоступлениеТоваровУслуг.Контрагент,
    |   ПоступлениеТоваровУслуг.Контрагент КАК Поставщик,
    |   ПоступлениеТоваровУслуг.Организация,
    |   ПоступлениеТоваровУслуг.Организация КАК Покупатель,
    |   ПоступлениеТоваровУслуг.СуммаДокумента,
    |   ПоступлениеТоваровУслуг.ВалютаДокумента,
    |   ПоступлениеТоваровУслуг.УчитыватьНДС,
    |   ПоступлениеТоваровУслуг.СуммаВключаетНДС,
    |   ПоступлениеТоваровУслуг.Комментарий,
    |   ПоступлениеТоваровУслуг.Сделка
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    |   ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент";
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
 
    СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ПоступлениеТоваровУслуг");
    
    ЗапросПоТоварам = Новый Запрос();
    ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    ЗапросПоТоварам.Текст =
    "ВЫБРАТЬ
    |   ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |   ВложенныйЗапрос.Номенклатура.Артикул КАК КодАртикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМест,
    |   ВложенныйЗапрос.КоличествоМест,
    |   ВложенныйЗапрос.Количество,
    |   ВложенныйЗапрос.Коэффициент,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |   ВложенныйЗапрос.Вес,
    |   ВложенныйЗапрос.Характеристика,
    |   МИНИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки,
    |   ВложенныйЗапрос.Метка КАК Метка
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.КоличествоМест) КАК КоличествоМест,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент КАК Коэффициент,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |       СУММА(ПоступлениеТоваровУслуг.Вес) КАК Вес,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры КАК Характеристика,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки,
    |       0 КАК Метка
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры) КАК ВложенныйЗапрос
    |
    |СГРУППИРОВАТЬ ПО
    |   ВложенныйЗапрос.Номенклатура,
    |   ВложенныйЗапрос.Номенклатура.Артикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление,
    |   ВложенныйЗапрос.КоличествоМест,
    |   ВложенныйЗапрос.Количество,
    |   ВложенныйЗапрос.Коэффициент,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес,
    |   ВложенныйЗапрос.Вес,
    |   ВложенныйЗапрос.Характеристика,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ВложенныйЗапрос.Метка
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслуг.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслуг.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.Количество,
    |   1,
    |   NULL,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.НомерСтроки,
    |   2
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура) КАК ПоступлениеТоваровУслуг
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   СУММА(ПоступлениеТоваровУслугТовары.КоличествоМест),
    |   СУММА(ПоступлениеТоваровУслугТовары.Количество),
    |   ПоступлениеТоваровУслугТовары.Коэффициент,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   СУММА(ПоступлениеТоваровУслугТовары.Вес),
    |   ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
    |   МИНИМУМ(ПоступлениеТоваровУслугТовары.НомерСтроки),
    |   3
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |   ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийДокумент
    |   И ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес = 0
    |
    |СГРУППИРОВАТЬ ПО
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   ПоступлениеТоваровУслугТовары.Коэффициент,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |
    |УПОРЯДОЧИТЬ ПО
    |   Метка,
    |   НомерСтроки";
 
    ВыборкаСтрок = ЗапросПоТоварам.Выполнить().Выгрузить();
0
Миниатюры
Группировка в запросе при печати документа.  
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
30.06.2016, 09:50
Ответы с готовыми решениями:

Адрес при печати документа
Здравствуйте. Имеется процедура печати в которой адрес собирается в одну строку Процедура...

Ошибка 0x80020005 при печати двоичного документа
Добрый день, вообщем при печати двоичного документа выскакивает такая ошибка на этой строке ...

Ошибка в запросе при попытке получения значения из Табличной части документа
Необходимо получить предыдущую цену продажи по данному Контрагенту, Дате и номенклатуре. В первом...

Группировка В Запросе
Совсем измучался с запросом. Запрос простой, но могу красиво выбрать результаты. Сам запрос: ...

Группировка в запросе
Доброго времени суток! В результате запроса получаю вот такую таблицу(во вложении): ...

11
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.06.2016, 09:55 2
Godunov, о каком конкретно результате речь?
Видимо в одной печати выводится номер п/п записей, а в другой - номер строки табличной части.
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 10:02  [ТС] 3
Имеется ввиду, что две одинаковые позиции номенклатуры объединяются в одну, но номер строки учитывается и отображается в печатной форме как показано на рисунке красным.
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.06.2016, 10:09 4
Godunov, посмотрите в запросе поля группировки - в тексте после "СГРУППИРОВАТЬ ПО". А для номера строки используется агрегатная функция - МИНИМУМ()
1C
1
|   МИНИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки,
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 10:20  [ТС] 5
GreenkA, также и прописываю, но почему-то не срабатывает...
0
Миниатюры
Группировка в запросе при печати документа.   Группировка в запросе при печати документа.   Группировка в запросе при печати документа.  

GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.06.2016, 10:22 6
Godunov, покажите полный текст запроса и вывода в макет.
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 10:24  [ТС] 7
GreenkA, весь код скидываю.

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
Функция ПечатьПоступлениеТоваров()
 
    
    ВыводитьКоды    = Истина;
    //Колонка         = "Артикул";
    ТекстКодАртикул = "Артикул";
    
    Если ВыводитьКоды Тогда
        ОбластьШапки  = "ШапкаСКодом";
        ОбластьСтроки = "СтрокаСКодом";
    Иначе
        ОбластьШапки  = "ШапкаТаблицы";
        ОбластьСтроки = "Строка";
    Конецесли;
 
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
 
    Запрос.Текст =
    "ВЫБРАТЬ
    |   Номер,
    |   Дата,
    |   ДатаВходящегоДокумента,
    |   ДоговорКонтрагента,
    |   Контрагент,
    |   Контрагент КАК Поставщик,
    |   Организация,
    |   Организация КАК Покупатель,
    |   СуммаДокумента,
    |   ВалютаДокумента,
    |   УчитыватьНДС,
    |   СуммаВключаетНДС,
    |   Комментарий
    |
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |
    |ГДЕ
    |   ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент";
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
 
    СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ПоступлениеТоваровУслуг");
    
    ЗапросПоТоварам = Новый Запрос();
    ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    ЗапросПоТоварам.Текст =
    "ВЫБРАТЬ
    |   ВложенныйЗапрос.Номенклатура,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |   ВложенныйЗапрос.Номенклатура.Артикул КАК КодАртикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМест,
    |   СУММА(ВложенныйЗапрос.КоличествоМест) КАК КоличествоМест,
    |   СУММА(ВложенныйЗапрос.Количество) КАК Количество,
    |   СУММА(ВложенныйЗапрос.Цена) КАК Цена,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |   СУММА(ВложенныйЗапрос.Вес) КАК Вес,
    |   СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
    |   СУММА(ВложенныйЗапрос.СуммаНДС) КАК СуммаНДС,
    |   ВложенныйЗапрос.СтавкаНДС,
    |   МИНИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки,
    |   ВложенныйЗапрос.Метка
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.КоличествоМест) КАК КоличествоМест,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент КАК Коэффициент,
    |       ПоступлениеТоваровУслуг.Цена КАК Цена,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |       ПоступлениеТоваровУслуг.Вес КАК Вес,
    |       СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма,
    |       СУММА(ПоступлениеТоваровУслуг.СуммаНДС) КАК СуммаНДС,
    |       ПоступлениеТоваровУслуг.СтавкаНДС КАК СтавкаНДС,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры КАК Характеристика,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки,
    |       0 КАК Метка
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура,
    |       ПоступлениеТоваровУслуг.СтавкаНДС,
    |       ПоступлениеТоваровУслуг.Цена,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес,
    |       ПоступлениеТоваровУслуг.Вес,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры) КАК ВложенныйЗапрос
    |
    |СГРУППИРОВАТЬ ПО
    |   ВложенныйЗапрос.Номенклатура,
    |   ВложенныйЗапрос.Номенклатура.Артикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес,
    |   ВложенныйЗапрос.СтавкаНДС,
    |   ВложенныйЗапрос.Метка,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслуг.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслуг.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.Количество,
    |   ПоступлениеТоваровУслуг.Цена,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.Сумма,
    |   0,
    |   ""Без НДС"",
    |   ПоступлениеТоваровУслуг.НомерСтроки,
    |   2
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       ПоступлениеТоваровУслуг.Цена КАК Цена,
    |       СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура,
    |       ПоступлениеТоваровУслуг.Цена) КАК ПоступлениеТоваровУслуг
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   СУММА(ПоступлениеТоваровУслугТовары.КоличествоМест),
    |   СУММА(ПоступлениеТоваровУслугТовары.Количество),
    |   СУММА(ПоступлениеТоваровУслугТовары.Цена),
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   СУММА(ПоступлениеТоваровУслугТовары.Вес),
    |   СУММА(ПоступлениеТоваровУслугТовары.Сумма),
    |   СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС),
    |   ПоступлениеТоваровУслугТовары.СтавкаНДС,
    |   МИНИМУМ(ПоступлениеТоваровУслугТовары.НомерСтроки),
    |   3
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |   ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийДокумент
    |   И ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес = 0
    |
    |СГРУППИРОВАТЬ ПО
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   ПоступлениеТоваровУслугТовары.СтавкаНДС,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |
    |УПОРЯДОЧИТЬ ПО
    |   ВложенныйЗапрос.Метка,
    |   НомерСтроки";
 
    ВыборкаСтрок = ЗапросПоТоварам.Выполнить().Выгрузить();
 
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеТоваровУслуг_Накладная";
    Макет       = ПолучитьМакет("Накладная");
 
    // Выводим шапку накладной
    
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Накладная");
    ТабДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата), "ПолноеНаименование,");
    ОбластьМакета.Параметры.Поставщик = Шапка.Контрагент;
    ТабДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата), "ПолноеНаименование,");
    ОбластьМакета.Параметры.Получатель = Шапка.Организация;
    ОбластьМакета.Параметры.Комментарий = Шапка.Комментарий;//нс
    ТабДокумент.Вывести(ОбластьМакета);
 
    
    // Вывести табличную часть
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
    //Если ВыводитьКоды Тогда
    //  ОбластьМакета.Параметры.Колонка = Колонка;
    //КонецЕсли;
 
    ТабДокумент.Вывести(ОбластьМакета);
 
    Сумма    = 0;
    СуммаНДС = 0;
    ВсегоВес = 0;//нс
    ЕстьНулевойВес = Ложь;
 
    Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл
        
        Если ВыборкаСтрокТовары.Метка = 3 Тогда //пропустим товары с 0 весом, они выделены меткой 3
            ЕстьНулевойВес = Истина;
            Продолжить;
        КонецЕсли;
        
        НаимТовара = СокрЛП(ВыборкаСтрокТовары.Товар) + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", ""); //+ ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)  //MAY
            СтрВысота = "";
        Если СтрДлина(СокрЛП(НаимТовара)) > 60 Тогда
            СтрВысота = "АвтоВысота";
        КонецЕсли;
        
        ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки + СтрВысота);
 
        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.Индекс(ВыборкаСтрокТовары) + 1;
        ОбластьМакета.Параметры.Товар       = НаимТовара;
 
        //Если ВыводитьКоды Тогда
        //  ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
        //КонецЕсли;
        
        
        //нс
        Если ВыборкаСтрокТовары.Вес = 0 Тогда
            Если  ВыборкаСтрокТовары.ЕдиницаИзмерения = "кг" Тогда //кг
                Вес = ВыборкаСтрокТовары.Количество;
            Иначе
                Вес = ВыборкаСтрокТовары.ЕдиницаИзмеренияВес * ВыборкаСтрокТовары.Количество;
            КонецЕсли;
        Иначе
            Вес = ВыборкаСтрокТовары.Вес
        КонецЕсли;
        
        ОбластьМакета.Параметры.Вес = Вес;      
        //нс
 
        ТабДокумент.Вывести(ОбластьМакета);
 
        Сумма    = Сумма    + ВыборкаСтрокТовары.Сумма;
        СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
        ВсегоВес = ВсегоВес + Вес;//нс
 
    КонецЦикла;
 
    // Вывести Итого
    ОбластьМакета                 = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ОбластьМакета.Параметры.ВсегоВес = ВсегоВес;//нс
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести ИтогоНДС
    //Если Шапка.УчитыватьНДС Тогда
    //  ОбластьМакета                    = Макет.ПолучитьОбласть("ИтогоНДС");
    //  ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
    //  ОбластьМакета.Параметры.НДС      = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
    //  ТабДокумент.Вывести(ОбластьМакета);
    //КонецЕсли;
 
    // Вывести Сумму прописью
    ОбластьМакета                          = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи                          = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ВыборкаСтрок.Количество()
                                           + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
    ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);
    
    Если ЕстьНулевойВес Тогда
        //нс
        //Вывести табличную часть по 0 весу
        ОбластьМакета = Макет.ПолучитьОбласть("ШапкаНулевойВес");
        ТабДокумент.Вывести(ОбластьМакета);
 
        ОбластьМакета = Макет.ПолучитьОбласть("СтрокаНулевойВес");
        Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл
            
            Если ВыборкаСтрокТовары.Метка <> 3 Тогда //пропустим товары с 0 весом, они выделены меткой 3
                Продолжить;
            КонецЕсли;
 
            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
            //ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.НомерСтроки;
            ОбластьМакета.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар) + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", "");  //+ ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары) //MAY
                                                            
            //Если ВыводитьКоды Тогда
            //  ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
            //КонецЕсли;
            
            //нс
            Если ВыборкаСтрокТовары.Вес = 0 Тогда
                Если  ВыборкаСтрокТовары.ЕдиницаИзмерения = "кг" Тогда //кг
                    Вес = ВыборкаСтрокТовары.Количество;
                Иначе
                    Вес = ВыборкаСтрокТовары.ЕдиницаИзмеренияВес * ВыборкаСтрокТовары.Количество;
                КонецЕсли;
            Иначе
                Вес = ВыборкаСтрокТовары.Вес
            КонецЕсли;
            
            ОбластьМакета.Параметры.Вес = Вес;      
            //нс
 
            ТабДокумент.Вывести(ОбластьМакета);
 
        КонецЦикла;
        //нс
    КонецЕсли;
    
    //если места в документе не заполнены,
    //МестВсего = ВыборкаСтрок.Итог("КоличествоМест");
    //Если МестВсего = 0 Тогда
    //  УниверсальныеМеханизмы.СкрытьКолонкиВТабличномДокументе(ТабДокумент, "Мест", 5,ОбластьШапки);
    //КонецЕсли;
 
    Возврат ТабДокумент;
 
КонецФункции // ПечатьПоступлениеТоваров()
0
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.06.2016, 10:35 8
Godunov, строка 123 - в запросе пропишите МИНИМУМ, и строка 231 - закомментить.
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 10:40  [ТС] 9
GreenkA, попробую.
Не помогло. Сделаю иначе, возьму готовую нужную обработку и переделаю её под нужную форму.
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 11:15  [ТС] 10
Лучший ответ Сообщение было отмечено GreenkA как решение

Решение

Вот такой код заработал как надо.

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
Функция ПечатьПоступлениеТоваров()
 
        
    ОбластьШапки  = "Шапка";
    ОбластьСтроки = "Строка";
    
    //Иначе
    //  ОбластьШапки  = "ШапкаТаблицы";
    //  ОбластьСтроки = "Строка";
    //Конецесли;
 
    Запрос = Новый Запрос;
    Запрос.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
 
    Запрос.Текст =
    "ВЫБРАТЬ
    |   ПоступлениеТоваровУслуг.Номер,
    |   ПоступлениеТоваровУслуг.Дата,
    |   ПоступлениеТоваровУслуг.ДатаВходящегоДокумента,
    |   ПоступлениеТоваровУслуг.ДоговорКонтрагента,
    |   ПоступлениеТоваровУслуг.Контрагент,
    |   ПоступлениеТоваровУслуг.Контрагент КАК Поставщик,
    |   ПоступлениеТоваровУслуг.Организация,
    |   ПоступлениеТоваровУслуг.Организация КАК Покупатель,
    |   ПоступлениеТоваровУслуг.СуммаДокумента,
    |   ПоступлениеТоваровУслуг.ВалютаДокумента,
    |   ПоступлениеТоваровУслуг.УчитыватьНДС,
    |   ПоступлениеТоваровУслуг.СуммаВключаетНДС,
    |   ПоступлениеТоваровУслуг.Комментарий,
    |   ПоступлениеТоваровУслуг.Сделка
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг КАК ПоступлениеТоваровУслуг
    |ГДЕ
    |   ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент";
    Шапка = Запрос.Выполнить().Выбрать();
    Шапка.Следующий();
 
    СтрокаВыборкиПоляСодержания = ОбработкаТабличныхЧастей.ПолучитьЧастьЗапросаДляВыбораСодержания("ПоступлениеТоваровУслуг");
    
    ЗапросПоТоварам = Новый Запрос();
    ЗапросПоТоварам.УстановитьПараметр("ТекущийДокумент", СсылкаНаОбъект);
    ЗапросПоТоварам.Текст =
    "ВЫБРАТЬ
    |   ВложенныйЗапрос.Номенклатура КАК Номенклатура,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)) КАК Товар,
    |   ВложенныйЗапрос.Номенклатура.Артикул КАК КодАртикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление КАК ЕдиницаИзмерения,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление КАК ЕдиницаИзмеренияМест,
    |   СУММА(ВложенныйЗапрос.КоличествоМест) КАК КоличествоМест,
    |   СУММА(ВложенныйЗапрос.Количество) КАК Количество,
    |   ВложенныйЗапрос.Коэффициент,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |   СУММА(ВложенныйЗапрос.Вес) КАК Вес,
    |   ВложенныйЗапрос.Характеристика,
    |   МИНИМУМ(ВложенныйЗапрос.НомерСтроки) КАК НомерСтроки,
    |   ВложенныйЗапрос.Метка КАК Метка,
    |   СУММА(ВложенныйЗапрос.Сумма) КАК Сумма,
    |   СУММА(ВложенныйЗапрос.Цена) КАК Цена,
    |   СУММА(ВложенныйЗапрос.СуммаНДС) КАК СуммаНДС,
    |   ВложенныйЗапрос.СтавкаНДС
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.КоличествоМест) КАК КоличествоМест,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения КАК ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест КАК ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент КАК Коэффициент,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес КАК ЕдиницаИзмеренияВес,
    |       СУММА(ПоступлениеТоваровУслуг.Вес) КАК Вес,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры КАК Характеристика,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки,
    |       0 КАК Метка,
    |       СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма,
    |       ПоступлениеТоваровУслуг.Цена КАК Цена,
    |       ПоступлениеТоваровУслуг.СуммаНДС КАК СуммаНДС,
    |       ПоступлениеТоваровУслуг.СтавкаНДС КАК СтавкаНДС
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения.Вес,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмерения,
    |       ПоступлениеТоваровУслуг.ЕдиницаИзмеренияМест,
    |       ПоступлениеТоваровУслуг.Коэффициент,
    |       ПоступлениеТоваровУслуг.ХарактеристикаНоменклатуры,
    |       ПоступлениеТоваровУслуг.Сумма,
    |       ПоступлениеТоваровУслуг.Цена,
    |       ПоступлениеТоваровУслуг.СуммаНДС,
    |       ПоступлениеТоваровУслуг.СтавкаНДС) КАК ВложенныйЗапрос
    |
    |СГРУППИРОВАТЬ ПО
    |   ВложенныйЗапрос.Номенклатура,
    |   ВложенныйЗапрос.Номенклатура.Артикул,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Представление,
    |   ВложенныйЗапрос.ЕдиницаИзмеренияМест.Представление,
    |   ВложенныйЗапрос.Коэффициент,
    |   ВложенныйЗапрос.ЕдиницаИзмерения.Вес,
    |   ВложенныйЗапрос.Характеристика,
    |   ВложенныйЗапрос.Метка,
    |   ВложенныйЗапрос.СтавкаНДС,
    |   ВЫРАЗИТЬ(ВложенныйЗапрос.Номенклатура.НаименованиеПолное КАК СТРОКА(1000))
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслуг.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслуг.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслуг.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслуг.Номенклатура.ЕдиницаХраненияОстатков.Представление,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.Количество,
    |   1,
    |   NULL,
    |   NULL,
    |   NULL,
    |   ПоступлениеТоваровУслуг.НомерСтроки,
    |   2,
    |   ПоступлениеТоваровУслуг.Сумма,
    |   ПоступлениеТоваровУслуг.Цена,
    |   ""Без НДС"",
    |   0
    |ИЗ
    |   (ВЫБРАТЬ
    |       ПоступлениеТоваровУслуг.Номенклатура КАК Номенклатура,
    |       СУММА(ПоступлениеТоваровУслуг.Количество) КАК Количество,
    |       МИНИМУМ(ПоступлениеТоваровУслуг.НомерСтроки) КАК НомерСтроки,
    |       СУММА(ПоступлениеТоваровУслуг.Сумма) КАК Сумма,
    |       ПоступлениеТоваровУслуг.Цена КАК Цена
    |   ИЗ
    |       Документ.ПоступлениеТоваровУслуг.ВозвратнаяТара КАК ПоступлениеТоваровУслуг
    |   ГДЕ
    |       ПоступлениеТоваровУслуг.Ссылка = &ТекущийДокумент
    |   
    |   СГРУППИРОВАТЬ ПО
    |       ПоступлениеТоваровУслуг.Номенклатура,
    |       ПоступлениеТоваровУслуг.Сумма,
    |       ПоступлениеТоваровУслуг.Цена) КАК ПоступлениеТоваровУслуг
    |
    |ОБЪЕДИНИТЬ ВСЕ
    |
    |ВЫБРАТЬ
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   СУММА(ПоступлениеТоваровУслугТовары.КоличествоМест),
    |   СУММА(ПоступлениеТоваровУслугТовары.Количество),
    |   ПоступлениеТоваровУслугТовары.Коэффициент,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   СУММА(ПоступлениеТоваровУслугТовары.Вес),
    |   ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
    |   МИНИМУМ(ПоступлениеТоваровУслугТовары.НомерСтроки),
    |   3,
    |   СУММА(ПоступлениеТоваровУслугТовары.Сумма),
    |   СУММА(ПоступлениеТоваровУслугТовары.Цена),
    |   СУММА(ПоступлениеТоваровУслугТовары.СуммаНДС),
    |   ПоступлениеТоваровУслугТовары.СтавкаНДС
    |ИЗ
    |   Документ.ПоступлениеТоваровУслуг.Товары КАК ПоступлениеТоваровУслугТовары
    |ГДЕ
    |   ПоступлениеТоваровУслугТовары.Ссылка = &ТекущийДокумент
    |   И ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес = 0
    |
    |СГРУППИРОВАТЬ ПО
    |   ПоступлениеТоваровУслугТовары.Номенклатура,
    |   ПоступлениеТоваровУслугТовары.Номенклатура.Артикул,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Представление,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмеренияМест.Представление,
    |   ПоступлениеТоваровУслугТовары.Коэффициент,
    |   ПоступлениеТоваровУслугТовары.ЕдиницаИзмерения.Вес,
    |   ПоступлениеТоваровУслугТовары.ХарактеристикаНоменклатуры,
    |   ВЫРАЗИТЬ(ПоступлениеТоваровУслугТовары.Номенклатура.НаименованиеПолное КАК СТРОКА(1000)),
    |   ПоступлениеТоваровУслугТовары.СтавкаНДС
    |
    |УПОРЯДОЧИТЬ ПО
    |   Метка,
    |   НомерСтроки,
    |   Сумма";
 
    ВыборкаСтрок = ЗапросПоТоварам.Выполнить().Выгрузить();
 
    ТабДокумент = Новый ТабличныйДокумент;
    ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПоступлениеТоваровУслуг_Приемка";
    Макет       = ПолучитьМакет("Накладная");
 
    // Выводим шапку накладной
 
    ОбластьМакета = Макет.ПолучитьОбласть("Заголовок");
    ОбластьМакета.Параметры.ТекстЗаголовка = ОбщегоНазначения.СформироватьЗаголовокДокумента(Шапка, "Накладная");
    ТабДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Поставщик");
    ОбластьМакета.Параметры.ПредставлениеПоставщика = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Поставщик, Шапка.Дата), "ПолноеНаименование,");
    ОбластьМакета.Параметры.Поставщик = Шапка.Контрагент;
    ТабДокумент.Вывести(ОбластьМакета);
 
    ОбластьМакета = Макет.ПолучитьОбласть("Покупатель");
    ОбластьМакета.Параметры.ПредставлениеПолучателя = ФормированиеПечатныхФорм.ОписаниеОрганизации(УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Шапка.Покупатель, Шапка.Дата), "ПолноеНаименование,");
    ОбластьМакета.Параметры.Получатель = Шапка.Организация;
    ОбластьМакета.Параметры.Комментарий = Шапка.Комментарий;//нс
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести табличную часть
    ОбластьМакета = Макет.ПолучитьОбласть(ОбластьШапки);
    ТабДокумент.Вывести(ОбластьМакета);
 
    Сумма    = 0;
    СуммаНДС = 0;
    ВсегоВес = 0;//нс
    ЕстьНулевойВес = Ложь;
 
    Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл
        
        Если ВыборкаСтрокТовары.Метка = 3 Тогда //пропустим товары с 0 весом, они выделены меткой 3
            ЕстьНулевойВес = Истина;
            Продолжить;
        КонецЕсли;
        
        //СтрСтрана = "";
        //Если ЗначениеЗаполнено(ВыборкаСтрокТовары.Серия) Тогда
        //  СтрСтрана = СокрЛП(ВыборкаСтрокТовары.Серия.СтранаПроисхождения);
        //  СтрСтрана = ?(СтрСтрана = "", "", " (" + СтрСтрана + ")");
        //КонецЕсли;
        
        НаимТовара = СокрЛП(ВыборкаСтрокТовары.Товар) //ФормированиеПечатныхФорм.ПредставлениеСерий(ВыборкаСтрокТовары)
                                            + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", "");
        СтрВысота = "";
        Если СтрДлина(СокрЛП(НаимТовара)) > 60 Тогда
            СтрВысота = "АвтоВысота";
        КонецЕсли;
        
        ОбластьМакета = Макет.ПолучитьОбласть(ОбластьСтроки + СтрВысота);
 
        ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
        //ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.Индекс(ВыборкаСтрокТовары) + 1;
        ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрокТовары.НомерСтроки;
        ОбластьМакета.Параметры.Товар       = НаимТовара;
        
        //Если Не Шапка.СуммаВключаетНДС Тогда
        //  ОбластьМакета.Параметры.Сумма       = ВыборкаСтрокТовары.Сумма + ВыборкаСтрокТовары.СуммаНДС;
        //КонецЕсли;    
 
        //Если ВыводитьКоды Тогда
        //  ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
        //КонецЕсли;
        
        //нс
        Если ВыборкаСтрокТовары.Вес = 0 Тогда
            Если  ВыборкаСтрокТовары.ЕдиницаИзмерения = "кг" Тогда //кг
                Вес = ВыборкаСтрокТовары.Количество;
            Иначе
                Вес = ВыборкаСтрокТовары.ЕдиницаИзмеренияВес * ВыборкаСтрокТовары.Количество;
            КонецЕсли;
        Иначе
            Вес = ВыборкаСтрокТовары.Вес
        КонецЕсли;
        
        ОбластьМакета.Параметры.Вес = Вес;      
        //нс
 
        ТабДокумент.Вывести(ОбластьМакета);
 
        //Если Шапка.СуммаВключаетНДС Тогда
            Сумма    = Сумма    + ВыборкаСтрокТовары.Сумма;
        //Иначе
        //  Сумма    = Сумма    + ВыборкаСтрокТовары.Сумма + ВыборкаСтрокТовары.СуммаНДС;
        //КонецЕсли;    
 
        СуммаНДС = СуммаНДС + ВыборкаСтрокТовары.СуммаНДС;
        ВсегоВес = ВсегоВес + Вес;//нс
 
    КонецЦикла;
 
    // Вывести Итого
    ОбластьМакета                 = Макет.ПолучитьОбласть("Итого");
    ОбластьМакета.Параметры.Всего = ОбщегоНазначения.ФорматСумм(Сумма);
    ОбластьМакета.Параметры.ВсегоВес = ВсегоВес;//нс
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести ИтогоНДС
    //Если Шапка.УчитыватьНДС Тогда
    //  ОбластьМакета                    = Макет.ПолучитьОбласть("ИтогоНДС");
    //  ОбластьМакета.Параметры.ВсегоНДС = ОбщегоНазначения.ФорматСумм(СуммаНДС);
    //  ОбластьМакета.Параметры.НДС      = ?(Шапка.СуммаВключаетНДС, "В том числе НДС:", "Сумма НДС:");
    //  ТабДокумент.Вывести(ОбластьМакета);
    //КонецЕсли;
 
    // Вывести Сумму прописью
    ОбластьМакета                          = Макет.ПолучитьОбласть("СуммаПрописью");
    СуммаКПрописи                          = Сумма + ?(Шапка.СуммаВключаетНДС, 0, СуммаНДС);
    ОбластьМакета.Параметры.ИтоговаяСтрока ="Всего наименований " + ВыборкаСтрок.Количество()
                                            + ", на сумму " + ОбщегоНазначения.ФорматСумм(СуммаКПрописи, Шапка.ВалютаДокумента);
    ОбластьМакета.Параметры.СуммаПрописью  = ОбщегоНазначения.СформироватьСуммуПрописью(СуммаКПрописи, Шапка.ВалютаДокумента);
    ТабДокумент.Вывести(ОбластьМакета);
 
    // Вывести подписи
    ОбластьМакета = Макет.ПолучитьОбласть("Подписи");
    ОбластьМакета.Параметры.Заполнить(Шапка);
    ТабДокумент.Вывести(ОбластьМакета);
    
    Если ЕстьНулевойВес Тогда
        //нс
        //Вывести табличную часть по 0 весу
        ОбластьМакета = Макет.ПолучитьОбласть("ШапкаНулевойВес");
        ТабДокумент.Вывести(ОбластьМакета);
 
        ОбластьМакета = Макет.ПолучитьОбласть("СтрокаНулевойВес");
        Для Каждого ВыборкаСтрокТовары Из ВыборкаСтрок Цикл
            
            Если ВыборкаСтрокТовары.Метка <> 3 Тогда //пропустим товары с 0 весом, они выделены меткой 3
                Продолжить;
            КонецЕсли;
 
            ОбластьМакета.Параметры.Заполнить(ВыборкаСтрокТовары);
            //ОбластьМакета.Параметры.НомерСтроки = ВыборкаСтрок.НомерСтроки;
            ОбластьМакета.Параметры.Товар       = СокрЛП(ВыборкаСтрокТовары.Товар) + ?(ВыборкаСтрокТовары.Метка = 2, " (возвратная тара)", "");
 
            //Если ВыводитьКоды Тогда
            //  ОбластьМакета.Параметры.КодАртикул = ВыборкаСтрокТовары.КодАртикул;
            //КонецЕсли;
            
            //нс
            Если ВыборкаСтрокТовары.Вес = 0 Тогда
                Если  ВыборкаСтрокТовары.ЕдиницаИзмерения = "кг" Тогда //кг
                    Вес = ВыборкаСтрокТовары.Количество;
                Иначе
                    Вес = ВыборкаСтрокТовары.ЕдиницаИзмеренияВес * ВыборкаСтрокТовары.Количество;
                КонецЕсли;
            Иначе
                Вес = ВыборкаСтрокТовары.Вес
            КонецЕсли;
            
            ОбластьМакета.Параметры.Вес = Вес;      
            //нс
 
            ТабДокумент.Вывести(ОбластьМакета);
 
        КонецЦикла;
        //нс
    КонецЕсли;
    
    Возврат ТабДокумент;
 
КонецФункции // ПечатьПоступлениеТоваров()
0
Миниатюры
Группировка в запросе при печати документа.  
GreenkA
Модератор
Эксперт 1С
2990 / 1911 / 520
Регистрация: 25.06.2009
Сообщений: 6,784
30.06.2016, 11:47 11
Godunov, что не помогло-то?) в вашем коде как раз закомменчено то, о чем я писала выше.
0
Godunov
3 / 3 / 6
Регистрация: 29.03.2016
Сообщений: 116
30.06.2016, 15:06  [ТС] 12
GreenkA, сделал всё как вы сказали, но результат был прежний...
Всё равно благодарю за помощь.
0
30.06.2016, 15:06
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
30.06.2016, 15:06

Группировка в запросе 1с77
Есть отчет по оплатам с реквизитом ВыбрСтудент. Надо узнать какую сумму заплатил человек, дату и...

Группировка по параметру в запросе 1С
Есть такой вот запрос ВЫБРАТЬ ОстаткиТоваровОстатки.ТМЦ,...

Группировка В Запросе И Уровни Справочника
есть одноуровневый справочник Операторы, который уже разросся до неудобства, хотелось бы разделить...


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

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

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