|
Проблема с выводом данных на печать | ☑ | ||
---|---|---|---|---|
0
S-Sheriff
02.10.19
✎
10:06
|
Всем привет! Использую 1С:Предприятие 8.3 (8.3.13.1690)
конфа - Бухгалтерия для Казахстана, редакция 3.0, разработка для Казахстана: «1С-Рейтинг» (3.0.31.2) Сделал в расширении изменение на документ Требование-накладная. Теперь в печатную форму пытаюсь вывести вес вагонов через запятую, но вот если в табличной части документа Отгрузка вагонов повторяется вес, то в печатной форме он почему -то выходит только как будто там всего одна позиция, хотя там их 3 вагона, но с одинаковым весом. С другими документами где вес у вагонов разный, всё нормально при печати. Функция ПолучитьВесВагонов(ДокСсылка) МассивНомеров=""; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтгрузкаВагоновВагоны.Тоннаж КАК Тоннаж |ИЗ | Документ.ЦЗС_ОтгрузкаВагонов.Вагоны КАК ОтгрузкаВагоновВагоны | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЦЗС_ОтгрузкаВагонов КАК ОтгрузкаВагонов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.ЦЗС_ДокументыОтгрузкиВагонами КАК ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная | ПО ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.Ссылка = ТребованиеНакладная.Ссылка | ПО (ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.СсылкаНаДокумент = ОтгрузкаВагонов.Ссылка) | ПО ОтгрузкаВагоновВагоны.Ссылка = ОтгрузкаВагонов.Ссылка |ГДЕ | ТребованиеНакладная.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ОтгрузкаВагоновВагоны.Тоннаж"; Запрос.УстановитьПараметр("Ссылка", ДокСсылка); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Сч=0; Всего=0; Если Выборка.Количество()>0 Тогда Всего=Выборка.Количество(); Сч =1; Пока Выборка.Следующий() Цикл Если Всего<>Сч Тогда Сч=Сч+1; МассивНомеров=МассивНомеров+" "+Выборка.Тоннаж+","; Иначе МассивНомеров=МассивНомеров+" "+Выборка.Тоннаж; КонецЕсли; КонецЦикла; КонецЕсли; Возврат МассивНомеров; КонецФункции // ПолучитьВесВагонов() |
|||
1
vicof
02.10.19
✎
10:09
|
СГРУППИРОВАТЬ ПО
НомерСтроки |
|||
2
vicof
02.10.19
✎
10:11
|
И убрать все соединения
|
|||
3
vicof
02.10.19
✎
10:11
|
А, не, не убирать, но чото сильно много их
|
|||
4
vicof
02.10.19
✎
10:12
|
Ну короче, весь запрос переписать
|
|||
5
S-Sheriff
02.10.19
✎
10:19
|
СГРУППИРОВАТЬ ПО
НомерСтроки получилось) Ещё момент, как их можно в столбец сделать? Чтоб не в строку были данные, а в столбец |
|||
6
S-Sheriff
02.10.19
✎
10:22
|
мне надо ещё итого посчитать по этому весу
|
|||
7
vicof
02.10.19
✎
10:30
|
Какие данные?
|
|||
8
S-Sheriff
02.10.19
✎
10:32
|
Вес вагонов : 66, 66, 66
У меня сейчас в печатной форме выходит так А хотелось бы в столбец 66 66 66 И по итогу, посчитать их общий вес, типа Итого - 198 Ну как -то так) |
|||
9
S-Sheriff
02.10.19
✎
10:33
|
Тоннаж так скажем
|
|||
10
ДенисЧ
02.10.19
✎
10:34
|
Если ты группируешь по одинаковому значению, тогда почему у тебя должно получиться несколько строчек?
|
|||
11
S-Sheriff
02.10.19
✎
10:37
|
Если ты группируешь по одинаковому значению, тогда почему у тебя должно получиться несколько строчек?
Хорошо, тогда как надо группировать, чтоб сделать эти данные в столбец и посчитать итог? |
|||
12
ДенисЧ
02.10.19
✎
10:41
|
(11) Отсюда не видно, что там у тебя, кроме аццкого )) тоннажа есть.
|
|||
13
S-Sheriff
02.10.19
✎
10:59
|
(12) Я хз как тут картинку запихать)
|
|||
14
S-Sheriff
02.10.19
✎
11:17
|
Блин, как объяснить ещё:)
№ вагонов : 24381170, 24551459, 52034261 Вес вагонов : 66, 66, 66 Эти данные в печатной форме выводятся, НО, они в строчку все Как их каждую строку сделать в столбец, чтоб номер вагона, соответствовал весу вагона Ну и по итогу, общий все в конце |
|||
15
ДенисЧ
02.10.19
✎
11:33
|
(14) ну вот и группируй по номерам вагонов, а не по тоннажу...
|
|||
16
S-Sheriff
02.10.19
✎
11:37
|
(15) так я и спрашиваю, как это сделать?
Область.Параметры.НомерВагона = " № вагонов : " + ПолучитьНомераВагонов(Шапка.Ссылка); Область.Параметры.ВесВагона = " № вагонов : " + ПолучитьВесВагонов(Шапка.Ссылка); Функция ПолучитьНомераВагонов(ДокСсылка) МассивНомеров=""; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ОтгрузкаВагоновВагоны.Вагон.Наименование КАК НомерВагона |ИЗ | Документ.ЦЗС_ОтгрузкаВагонов.Вагоны КАК ОтгрузкаВагоновВагоны | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЦЗС_ОтгрузкаВагонов КАК ОтгрузкаВагонов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.ЦЗС_ДокументыОтгрузкиВагонами КАК ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная | ПО ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.Ссылка = ТребованиеНакладная.Ссылка | ПО (ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.СсылкаНаДокумент = ОтгрузкаВагонов.Ссылка) | ПО ОтгрузкаВагоновВагоны.Ссылка = ОтгрузкаВагонов.Ссылка |ГДЕ | ТребованиеНакладная.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ОтгрузкаВагоновВагоны.Вагон.Наименование"; Запрос.УстановитьПараметр("Ссылка", ДокСсылка); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Сч=0; Всего=0; Если Выборка.Количество()>0 Тогда Всего=Выборка.Количество(); Сч =1; Пока Выборка.Следующий() Цикл Если Всего<>Сч Тогда Сч=Сч+1; МассивНомеров=МассивНомеров+" "+Выборка.НомерВагона+","; Иначе МассивНомеров=МассивНомеров+" "+Выборка.НомерВагона; КонецЕсли; КонецЦикла; КонецЕсли; Возврат МассивНомеров; КонецФункции // ПолучитьНомераВагонов() Функция ПолучитьВесВагонов(ДокСсылка) МассивНомеров=""; Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ ПЕРВЫЕ 10 | ОтгрузкаВагоновВагоны.Тоннаж КАК Тоннаж |ИЗ | Документ.ЦЗС_ОтгрузкаВагонов.Вагоны КАК ОтгрузкаВагоновВагоны | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ЦЗС_ОтгрузкаВагонов КАК ОтгрузкаВагонов | ВНУТРЕННЕЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная.ЦЗС_ДокументыОтгрузкиВагонами КАК ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ТребованиеНакладная КАК ТребованиеНакладная | ПО ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.Ссылка = ТребованиеНакладная.Ссылка | ПО (ТребованиеНакладнаяЦЗС_ДокументыОтгрузкиВагонами.СсылкаНаДокумент = ОтгрузкаВагонов.Ссылка) | ПО ОтгрузкаВагоновВагоны.Ссылка = ОтгрузкаВагонов.Ссылка |ГДЕ | ТребованиеНакладная.Ссылка = &Ссылка | |СГРУППИРОВАТЬ ПО | ОтгрузкаВагоновВагоны.НомерСтроки, | ОтгрузкаВагоновВагоны.Тоннаж"; Запрос.УстановитьПараметр("Ссылка", ДокСсылка); Результат = Запрос.Выполнить(); Выборка = Результат.Выбрать(); Сч=0; Всего=0; Если Выборка.Количество()>0 Тогда Всего=Выборка.Количество(); Сч =1; Пока Выборка.Следующий() Цикл Если Всего<>Сч Тогда Сч=Сч+1; МассивНомеров=МассивНомеров+" "+Выборка.Тоннаж+","; Иначе МассивНомеров=МассивНомеров+" "+Выборка.Тоннаж; КонецЕсли; КонецЦикла; КонецЕсли; Возврат МассивНомеров; КонецФункции // ПолучитьВесВагонов() Вот так сделано у меня в коде |
|||
17
S-Sheriff
02.10.19
✎
14:29
|
по итогу, никто не может подсказать как это мне реализовать?
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |