![]() |
|
Вывод ТЗ в печатную форму | ☑ | ||
---|---|---|---|---|
0
Gera1t
12.09.16
✎
22:05
|
Есть ТЗ типа
Товар Колво Упаковка Товар1 3 Тара1 Товар1 2 Тара2 Товар1 5 Тара3 Товар2 1 Тара1 Товар 3 Тара4 Необходимо вывести в отчет вида Товар Колво Тара1 Тара2 Тара3 Тара4 Чтобы выводил 1 товар в строку и раскидывал колво по разным колонкам упаковок. Подскажите пожалуйста не соображу не как |
|||
1
zak555
12.09.16
✎
22:06
|
ТЗ откуда получил ?
|
|||
2
Gera1t
12.09.16
✎
22:06
|
из запроса выгрузил
|
|||
3
zak555
12.09.16
✎
22:09
|
(2) так ты запросом сразу обойди, как тебе нужно
покажи запрос |
|||
4
Gera1t
12.09.16
✎
22:09
|
Думал сравнить Товар с предыдущим и если он изменился то только тогда выводить новую строку, но как не соображу.
|
|||
5
Gera1t
12.09.16
✎
22:09
|
Запрос.Текст = "ВЫБРАТЬ
| | РеализацияТоваровУслугТовары.Номенклатура как Номеклатура, | РеализацияТоваровУслугТовары.Количество, | СпецификацияУпаковок.КоличествоВИзделии как КоличествоВ1Изделии, | РеализацияТоваровУслугТовары.Количество * СпецификацияУпаковок.КоличествоВИзделии КАК КоличествоВДокументе, | ЕСТЬNULL(СпецификацияУпаковок.НаименованиеИсходной.ВидНоменклатуры, РеализацияТоваровУслугТовары.Номенклатура.ВидНоменклатуры) КАК ТипУпаковки |ИЗ | Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары | ЛЕВОЕ СОЕДИНЕНИЕ Справочник.СпецификацияУпаковок КАК СпецификацияУпаковок | ПО РеализацияТоваровУслугТовары.Номенклатура = СпецификацияУпаковок.Владелец |ГДЕ | РеализацияТоваровУслугТовары.Ссылка = &ВыбДок | |УПОРЯДОЧИТЬ ПО | НомерСтроки"; |
|||
6
Gera1t
12.09.16
✎
22:10
|
ТЗ = Запрос.Выполнить().Выгрузить(); // Собираем данные по товарам документа
ТЗ.Свернуть("Номеклатура, ТипУпаковки", "КоличествоВ1Изделии, КоличествоВДокументе"); |
|||
7
zak555
12.09.16
✎
22:10
|
(5)ты в курсе, что у одного товара может быть больше одной спецификации ?
|
|||
8
zak555
12.09.16
✎
22:11
|
опиши суть задачи лучше
|
|||
9
Gera1t
12.09.16
✎
22:18
|
Долго объяснять.
Есть запрос который выводит данные как в первом посте в начале, Упаковка в столбце всего фиксировано 10 упаковок. Нужно получить отчет, который бы выводил значение строк в столбце упаковка из запроса в столбцы отчета |
|||
10
Gera1t
12.09.16
✎
22:20
|
Колонки не создаются динамически, а задаются жестко
Для Каждого стр Из ТЗ Цикл ОбластьМакета.Параметры.НомерСтроки = н; ОбластьМакета.Параметры.Товар = стр.Номеклатура; Если Строка(стр.ТипУпаковки) = "Корпус" Тогда ОбластьМакета.Параметры.Корпус = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Фасады" Тогда ОбластьМакета.Параметры.Фасады = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "ДВП" Тогда ОбластьМакета.Параметры.ДВП = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Фурнитура" Тогда ОбластьМакета.Параметры.Фурнитура = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Стекло" Тогда ОбластьМакета.Параметры.Стекло = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Столешница" Тогда ОбластьМакета.Параметры.Столешница = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Направляющие" Тогда ОбластьМакета.Параметры.Направляющие = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Матрас" Тогда ОбластьМакета.Параметры.Матрас = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Комплектующие" Тогда ОбластьМакета.Параметры.Комплектующие = стр.КоличествоВ1Изделии; Иначе ОбластьМакета.Параметры.Прочее = стр.КоличествоВ1Изделии; КонецЕсли; ТабДокумент.Вывести(ОбластьМакета); КонецЦикла; |
|||
11
Gera1t
12.09.16
✎
22:21
|
Как то можно проверить что значение в колонке Товар последнее, а значит нужно выводить строку на экран?
|
|||
12
Gera1t
12.09.16
✎
22:27
|
Вроде решил:
ПредыдущийТовар = ""; Для Каждого стр Из ТЗ Цикл Если (ПредыдущийТовар <> "") и (стр.Номеклатура <> ПредыдущийТовар) Тогда н = н + 1; ТабДокумент.Вывести(ОбластьМакета); КонецЕсли; ОбластьМакета.Параметры.НомерСтроки = н; ОбластьМакета.Параметры.Товар = стр.Номеклатура; Если Строка(стр.ТипУпаковки) = "Корпус" Тогда ОбластьМакета.Параметры.Корпус = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Фасады" Тогда ОбластьМакета.Параметры.Фасады = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "ДВП" Тогда ОбластьМакета.Параметры.ДВП = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Фурнитура" Тогда ОбластьМакета.Параметры.Фурнитура = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Стекло" Тогда ОбластьМакета.Параметры.Стекло = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Столешница" Тогда ОбластьМакета.Параметры.Столешница = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Направляющие" Тогда ОбластьМакета.Параметры.Направляющие = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Матрас" Тогда ОбластьМакета.Параметры.Матрас = стр.КоличествоВ1Изделии; ИначеЕсли Строка(стр.ТипУпаковки) = "Комплектующие" Тогда ОбластьМакета.Параметры.Комплектующие = стр.КоличествоВ1Изделии; Иначе ОбластьМакета.Параметры.Прочее = стр.КоличествоВ1Изделии; КонецЕсли; ПредыдущийТовар = стр.Номеклатура; КонецЦикла; ТабДокумент.Вывести(ОбластьМакета); |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |