|
Снова объединение ячеек в печатной форме | ☑ | ||
---|---|---|---|---|
0
Ly_Alena
29.10.14
✎
07:28
|
Народ, только не бейте! Всю голову сломала. Выводит подряд три раза одно и то же, но не объединяет (
Запрос = Новый Запрос; Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Запрос.Текст = "ВЫБРАТЬ | ЗаказПокупателяТовары.ЗапрашиваемоеНаименование, | ЗаказПокупателяТовары.Номенклатура, | ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдИзм, | СУММА(ЗаказПокупателяТовары.Количество) КАК Количество, | СРЕДНЕЕ(ЗаказПокупателяТовары.ПлановаяСебестоимость) КАК ПлановаяСебестоимость, | СРЕДНЕЕ(ЗаказПокупателяТовары.ЦенаБезНДС) КАК ЦенаБезНДС, | СУММА(ЗаказПокупателяТовары.СуммаБезНДС) КАК СуммаБезНДС, | СРЕДНЕЕ(ЗаказПокупателяТовары.Цена) КАК Цена, | СУММА(ЗаказПокупателяТовары.Сумма) КАК Сумма, | СУММА(ЗаказПокупателяТовары.Транспортные) КАК Транспортные, | СУММА(ЗаказПокупателяТовары.Накладные) КАК Накладные, | СУММА(ЗаказПокупателяТовары.УслПостоянные) КАК УслПостоянные, | СУММА(ЗаказПокупателяТовары.Прибыль) КАК Прибыль, | СРЕДНЕЕ(ЗаказПокупателяТовары.Рентабельность) КАК Рентабельность, | ЗаказПокупателяТовары.НовоеНаименование, | СУММА(ЗаказПокупателяТовары.СуммаПлановойСебестоимости) КАК СуммаСебестоимости, | ЗаказПокупателяТовары.НомерЛота КАК НомерЛота, | ЗаказПокупателяТовары.КоличествоВПроизводство |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары |ГДЕ | ЗаказПокупателяТовары.Ссылка = &ТекущийДокумент | |СГРУППИРОВАТЬ ПО | ЗаказПокупателяТовары.ЗапрашиваемоеНаименование, | ЗаказПокупателяТовары.Номенклатура, | ЗаказПокупателяТовары.НовоеНаименование, | ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения, | ЗаказПокупателяТовары.НомерЛота, | ЗаказПокупателяТовары.КоличествоВПроизводство | |УПОРЯДОЧИТЬ ПО | НомерЛота |ИТОГИ ПО | НомерЛота"; РезультатЗапросаТовары = Запрос.Выполнить(); Если НЕ РезультатЗапросаТовары.Пустой() Тогда ВыборкаПоЛотам = РезультатЗапросаТовары.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); Пока ВыборкаПоЛотам.Следующий() Цикл Индекс = 0; Область = Макет.ПолучитьОбласть("Товары"); Обход = РезультатЗапросаТовары.Выбрать(); ОбходТовары = РезультатЗапросаТовары.Выбрать(); Пока Обход.Следующий() Цикл Если Обход.Количество = 0 Тогда Продолжить; КонецЕсли; Если Не ЗначениеЗаполнено(Обход.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; КонецЕсли; Область.Параметры.НомерЛота = Обход.НомерЛота; Область.Параметры.ЗапрашиваемоеНаименование = Обход.ЗапрашиваемоеНаименование; Если ЗначениеЗаполнено(Обход.НовоеНаименование) Тогда Область.Параметры.НовоеНаименование = Обход.НовоеНаименование; Иначе Область.Параметры.НовоеНаименование = Обход.Номенклатура; КонецЕсли; Область.Параметры.Номенклатура = Обход.Номенклатура; Область.Параметры.ЕдИзм = Обход.ЕдИзм; Область.Параметры.Количество = Обход.Количество; Область.Параметры.Себестоимость = Обход.ПлановаяСебестоимость; Область.Параметры.СуммаСебестоимости = Обход.СуммаСебестоимости; Область.Параметры.ЦенаБезНДС = Обход.ЦенаБезНДС; Область.Параметры.СуммаБезНДС = Обход.СуммаБезНДС; Область.Параметры.Цена = Обход.Цена; Область.Параметры.Сумма = Обход.Сумма; Область.Параметры.Транспортные = Обход.Транспортные; Область.Параметры.Накладные = Обход.Накладные; Область.Параметры.УслПостоянные = Обход.УслПостоянные; Область.Параметры.Прибыль = Обход.Прибыль; Область.Параметры.Рентабельность = Обход.Рентабельность; ТабДокумент.Вывести(Область); КонецЦикла; КонецЦикла; КонецЕсли; |
|||
1
Ly_Alena
29.10.14
✎
07:29
|
Нужно чтобы по номерулота (если повторяется) объединял, а остальные строки так же шли
|
|||
2
Sasha_Rapira
29.10.14
✎
07:30
|
ЗаказПокупателяТовары.КоличествоВПроизводство
в Сумму |
|||
3
Ly_Alena
29.10.14
✎
07:32
|
В документе так:
Номер лота Наименование Кол-во 1 таз 3 2 ковш 2 1 ведро 1 На печать надо так: Номер лота Наименование Кол-во 1 таз 3 ведро 1 2 ковш 2 |
|||
4
Sasha_Rapira
29.10.14
✎
07:37
|
в СКД схема группировка НомерСлота
|
|||
5
Sasha_Rapira
29.10.14
✎
07:38
|
(4) ой сорри тут нет скд ясн
|
|||
6
Sasha_Rapira
29.10.14
✎
07:40
|
(0) как вариант убрать ИТОГО.
В месте где Выборка явно указать от куда выбирать ВыборкаПоЛотам = РезультатЗапросаТовары.Выбрать(<ТипОбхода>, <Группировки>) |
|||
7
Ly_Alena
29.10.14
✎
07:56
|
(6) ВыборкаПоЛотам = РезультатЗапросаТовары.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); разве это не явно?
|
|||
8
Ly_Alena
29.10.14
✎
07:58
|
(6) Изначально было без ИТОГО, потом сказали добавить
|
|||
9
Ly_Alena
29.10.14
✎
09:18
|
Лююююдии, больше никаких вариантов? SOS!
|
|||
10
Cube
30.10.14
✎
06:11
|
(9) Тебе за количество строк платят что-ли?))
Берем код в (0) и: - убираем итоги из запроса. - переименовываем в запросе поле "ПлановаяСебестоимость" в "Себестоимость". - оптимизируем цикл. - добавляем код по объединению ячеек. - наслаждаемся. Примерно, так (писал на коленке, поэтому ошибки сама отладишь): Область = Макет.ПолучитьОбласть("Товары"); Запрос = Новый Запрос("ВЫБРАТЬ | ЗаказПокупателяТовары.ЗапрашиваемоеНаименование, | ЗаказПокупателяТовары.Номенклатура, | ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения КАК ЕдИзм, | СУММА(ЗаказПокупателяТовары.Количество) КАК Количество, | СРЕДНЕЕ(ЗаказПокупателяТовары.ПлановаяСебестоимость) КАК Себестоимость, | СРЕДНЕЕ(ЗаказПокупателяТовары.ЦенаБезНДС) КАК ЦенаБезНДС, | СУММА(ЗаказПокупателяТовары.СуммаБезНДС) КАК СуммаБезНДС, | СРЕДНЕЕ(ЗаказПокупателяТовары.Цена) КАК Цена, | СУММА(ЗаказПокупателяТовары.Сумма) КАК Сумма, | СУММА(ЗаказПокупателяТовары.Транспортные) КАК Транспортные, | СУММА(ЗаказПокупателяТовары.Накладные) КАК Накладные, | СУММА(ЗаказПокупателяТовары.УслПостоянные) КАК УслПостоянные, | СУММА(ЗаказПокупателяТовары.Прибыль) КАК Прибыль, | СРЕДНЕЕ(ЗаказПокупателяТовары.Рентабельность) КАК Рентабельность, | ЗаказПокупателяТовары.НовоеНаименование, | СУММА(ЗаказПокупателяТовары.СуммаПлановойСебестоимости) КАК СуммаСебестоимости, | ЗаказПокупателяТовары.НомерЛота КАК НомерЛота, | ЗаказПокупателяТовары.КоличествоВПроизводство |ИЗ | Документ.ЗаказПокупателя.Товары КАК ЗаказПокупателяТовары |ГДЕ | ЗаказПокупателяТовары.Ссылка = &ТекущийДокумент | |СГРУППИРОВАТЬ ПО | ЗаказПокупателяТовары.ЗапрашиваемоеНаименование, | ЗаказПокупателяТовары.Номенклатура, | ЗаказПокупателяТовары.НовоеНаименование, | ЗаказПокупателяТовары.Номенклатура.БазоваяЕдиницаИзмерения, | ЗаказПокупателяТовары.НомерЛота, | ЗаказПокупателяТовары.КоличествоВПроизводство | |УПОРЯДОЧИТЬ ПО | НомерЛота"); Запрос.УстановитьПараметр("ТекущийДокумент", ЭтотОбъект.Ссылка); Выборка = Запрос.Выполнить().Выбрать(); ПредыдущийНомерЛота = Неопределено; НачальнаяСтрока = 0; КонечнаяСтрока = 0; КолонкаНомерЛота = 2; //Сюда надо указать номер колонки в макете, которую будем объединять. Пока Выборка.Следующий() Цикл Если Не ЗначениеЗаполнено(Выборка.Номенклатура) Тогда Сообщить("В одной из строк не заполнено значение номенклатуры - строка при печати пропущена.", СтатусСообщения.Важное); Продолжить; ИначеЕсли ПредыдущийНомерЛота <> Неопределено И ПредыдущийНомерЛота <> Выборка.НомерЛота Тогда ТабДокумент.Область(НачальнаяСтрока, КолонкаНомерЛота, КонечнаяСтрока, КолонкаНомерЛота).Объединить(); НачальнаяСтрока = 0; КонечнаяСтрока = 0; КонецЕсли; Область.Параметры.Заполнить(Выборка); Если НЕ ЗначениеЗаполнено(Выборка.НовоеНаименование) Тогда Область.Параметры.НовоеНаименование = Выборка.Номенклатура; КонецЕсли; ТабДокумент.Вывести(Область); Если ПредыдущийНомерЛота = Неопределено ИЛИ ПредыдущийНомерЛота <> Выборка.НомерЛота Тогда НачальнаяСтрока = ТабДокумент.ВысотаТаблицы; КонецЕсли; КонечнаяСтрока = ТабДокумент.ВысотаТаблицы; ПредыдущийНомерЛота = Выборка.НомерЛота; КонецЦикла; |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |