|
Убрать Null и заполнить параметры в макете | ☑ | ||
---|---|---|---|---|
0
Artemistrator
23.05.13
✎
12:00
|
Всем добрый день. Делаю отчет, заполняю параметры в макете из запроса. Всё заполняется, кроме <ТорговаяТочка>. В макете так и называется параметр ТорговаяТочка. И ещё одна проблема. В табличную часть при заполнении постоянно попадает строка null. Как от неё избавиться? Вроде нужно использовать "Есть null", вот только не знаю, куда и как его использовать?
&НаСервере Процедура ПечатьТабДок() Экспорт ТабДок = Новый ТабличныйДокумент; ТабДок.ТолькоПросмотр = Истина; ТабДок.Защита = Истина; Макет = Отчеты.ВзаиморасчетыСРеализатором.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ТорговыеТочки.Ссылка КАК ТорговаяТочка, | ТорговыеТочки.КассаККМ, | ТорговыеТочки.Склад |ПОМЕСТИТЬ ТТ |ИЗ | Справочник.ТорговыеТочки КАК ТорговыеТочки |ГДЕ | ТорговыеТочки.Ссылка = &ТорговаяТочка |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТТ.ТорговаяТочка, | ТоварыНТТОстаткиИОбороты.СуммаНачальныйОстаток КАК НачальныйОстатокПоТовары, | ТоварыНТТОстаткиИОбороты.СуммаПриход КАК ПриходПоТовару, | ТоварыНТТОстаткиИОбороты.СуммаРасход КАК РасходПоТовару, | ТоварыНТТОстаткиИОбороты.СуммаКонечныйОстаток КАК КонечныйОстатокПоТовару, | ТоварыНТТОстаткиИОбороты.Регистратор, | ТоварыНТТОстаткиИОбороты.ПериодСекунда, | ТоварыНТТОстаткиИОбороты.ПериодДень, | ТоварыНТТОстаткиИОбороты.ПериодНеделя, | ТоварыНТТОстаткиИОбороты.ПериодДекада, | ТоварыНТТОстаткиИОбороты.ПериодМесяц, | ТоварыНТТОстаткиИОбороты.ПериодКвартал, | ТоварыНТТОстаткиИОбороты.ПериодПолугодие, | ТоварыНТТОстаткиИОбороты.ПериодГод |ПОМЕСТИТЬ Товар |ИЗ | ТТ КАК ТТ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ТоварыНТТ.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Авто, | ДвиженияИГраницыПериода, | Склад В | (ВЫБРАТЬ | ТТ.Склад | ИЗ | ТТ КАК ТТ)) КАК ТоварыНТТОстаткиИОбороты | ПО ТТ.Склад = ТоварыНТТОстаткиИОбороты.Склад |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | ТТ.ТорговаяТочка, | ДенежныеСредстваВКассахККМОстаткиИОбороты.СуммаНачальныйОстаток КАК НачальныйОстатокПоКассе, | ДенежныеСредстваВКассахККМОстаткиИОбороты.СуммаПриход КАК ПриходПоКассе, | ДенежныеСредстваВКассахККМОстаткиИОбороты.СуммаРасход КАК РасходПоКассе, | ДенежныеСредстваВКассахККМОстаткиИОбороты.СуммаКонечныйОстаток КАК КонечныйОстатокПоКассе, | ДенежныеСредстваВКассахККМОстаткиИОбороты.Регистратор, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодСекунда, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодДень, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодНеделя, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодДекада, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодМесяц, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодКвартал, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодПолугодие, | ДенежныеСредстваВКассахККМОстаткиИОбороты.ПериодГод |ПОМЕСТИТЬ Касса |ИЗ | ТТ КАК ТТ | ЛЕВОЕ СОЕДИНЕНИЕ РегистрНакопления.ДенежныеСредстваВКассахККМ.ОстаткиИОбороты( | &НачалоПериода, | &КонецПериода, | Авто, | ДвиженияИГраницыПериода, | КассаККМ В | (ВЫБРАТЬ | ТТ.КассаККМ | ИЗ | ТТ КАК ТТ)) КАК ДенежныеСредстваВКассахККМОстаткиИОбороты | ПО ТТ.КассаККМ = ДенежныеСредстваВКассахККМОстаткиИОбороты.КассаККМ |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | Товар.ТорговаяТочка, | Товар.НачальныйОстатокПоТовары, | Товар.ПриходПоТовару, | Товар.РасходПоТовару, | Товар.КонечныйОстатокПоТовару, | Товар.Регистратор, | 0 КАК НачальныйОстатокПоКассе, | 0 КАК ПриходПоКассе, | 0 КАК РасходПоКассе, | 0 КАК КонечныйОстатокПоКассе, | Товар.ПериодСекунда, | Товар.ПериодДень, | Товар.ПериодНеделя, | Товар.ПериодДекада, | Товар.ПериодМесяц, | Товар.ПериодКвартал, | Товар.ПериодПолугодие, | Товар.ПериодГод |ПОМЕСТИТЬ НаГруппировку |ИЗ | Товар КАК Товар | |ОБЪЕДИНИТЬ ВСЕ | |ВЫБРАТЬ | Касса.ТорговаяТочка, | 0, | 0, | 0, | 0, | Касса.Регистратор, | Касса.НачальныйОстатокПоКассе, | Касса.ПриходПоКассе, | Касса.РасходПоКассе, | Касса.КонечныйОстатокПоКассе, | Касса.ПериодСекунда, | Касса.ПериодДень, | Касса.ПериодНеделя, | Касса.ПериодДекада, | Касса.ПериодМесяц, | Касса.ПериодКвартал, | Касса.ПериодПолугодие, | Касса.ПериодГод |ИЗ | Касса КАК Касса |; | |//////////////////////////////////////////////////////////////////////////////// |ВЫБРАТЬ | НаГруппировку.ТорговаяТочка, | СУММА(НаГруппировку.НачальныйОстатокПоТовары) КАК НачальныйОстатокПоТовары, | СУММА(НаГруппировку.ПриходПоТовару) КАК ПриходПоТовару, | СУММА(НаГруппировку.РасходПоТовару) КАК РасходПоТовару, | СУММА(НаГруппировку.КонечныйОстатокПоТовару) КАК КонечныйОстатокПоТовару, | НаГруппировку.Регистратор, | СУММА(НаГруппировку.НачальныйОстатокПоКассе) КАК НачальныйОстатокПоКассе, | СУММА(НаГруппировку.ПриходПоКассе) КАК ПриходПоКассе, | СУММА(НаГруппировку.РасходПоКассе) КАК РасходПоКассе, | СУММА(НаГруппировку.КонечныйОстатокПоКассе) КАК КонечныйОстатокПоКассе, | НаГруппировку.ПериодСекунда, | НаГруппировку.ПериодДень, | НаГруппировку.ПериодНеделя, | НаГруппировку.ПериодДекада, | НаГруппировку.ПериодМесяц, | НаГруппировку.ПериодКвартал, | НаГруппировку.ПериодПолугодие, | НаГруппировку.ПериодГод, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ОтчетОРозничныхПродажах) | ТОГДА НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ КАК Продано, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.УстановкаПрайса) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.УстановкаЦенНоменклатуры) | ТОГДА НаГруппировку.ПриходПоТовару - НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ КАК Переоценка, | ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) КАК ТипДокумента, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПеремещениеТоваров) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг) | ТОГДА НаГруппировку.ПриходПоТовару | ИНАЧЕ 0 | КОНЕЦ КАК Приход, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПеремещениеТоваров) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ВнутреннееПотреблениеТоваров) | ТОГДА НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ КАК Списано |ИЗ | НаГруппировку КАК НаГруппировку | |СГРУППИРОВАТЬ ПО | НаГруппировку.Регистратор, | НаГруппировку.ТорговаяТочка, | НаГруппировку.ПериодСекунда, | НаГруппировку.ПериодДень, | НаГруппировку.ПериодНеделя, | НаГруппировку.ПериодДекада, | НаГруппировку.ПериодМесяц, | НаГруппировку.ПериодКвартал, | НаГруппировку.ПериодПолугодие, | НаГруппировку.ПериодГод, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.УстановкаПрайса) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.УстановкаЦенНоменклатуры) | ТОГДА НаГруппировку.ПриходПоТовару - НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ОтчетОРозничныхПродажах) | ТОГДА НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПеремещениеТоваров) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПоступлениеТоваровУслуг) | ТОГДА НаГруппировку.ПриходПоТовару | ИНАЧЕ 0 | КОНЕЦ, | ВЫБОР | КОГДА ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ПеремещениеТоваров) | ИЛИ ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) = ТИП(Документ.ВнутреннееПотреблениеТоваров) | ТОГДА НаГруппировку.РасходПоТовару | ИНАЧЕ 0 | КОНЕЦ |ИТОГИ | СУММА(НачальныйОстатокПоТовары), | СУММА(КонечныйОстатокПоТовару), | СУММА(НачальныйОстатокПоКассе), | СУММА(КонечныйОстатокПоКассе), | СУММА(Продано), | СУММА(Переоценка), | СУММА(Приход), | СУММА(Списано) |ПО | ОБЩИЕ"; Запрос.Параметры.Вставить("НачалоПериода",НачалоПериода); Запрос.Параметры.Вставить("КонецПериода",КонецПериода); Запрос.Параметры.Вставить("ТорговаяТочка",ТорговаяТочка); // ВыборкаИтог = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам); ВыборкаИтог.Следующий(); Выборка = ВыборкаИтог.Выбрать(); ОбластьШапка = Макет.ПолучитьОбласть("Шапка"); ОбластьТаблЧасть = Макет.ПолучитьОбласть("ТаблЧасть"); ОбластьПодвал = Макет.ПолучитьОбласть("Подвал"); ТабДок.Очистить(); ВставлятьРазделительСтраниц = Ложь; ТабДок.ОтображатьСетку = Ложь; ОбластьШапка.Параметры.НачалоПериода = НачалоПериода; ОбластьШапка.Параметры.КонецПериода = КонецПериода; ОбластьШапка.Параметры.ТорговаяТочка = ТорговаяТочка; // ОбластьШапка.Параметры.Заполнить(ВыборкаИтог); ТабДок.Вывести(ОбластьШапка); Пока Выборка.Следующий() Цикл ОбластьТаблЧасть.Параметры.Заполнить(Выборка); ТабДок.Вывести(ОбластьТаблЧасть); КонецЦикла; ОбластьПодвал.Параметры.Заполнить(ВыборкаИтог); ТабДок.Вывести(ОбластьПодвал); ТабДок.Показать(); КонецПроцедуры |
|||
1
Artemistrator
23.05.13
✎
12:02
|
ТИПЗНАЧЕНИЯ(НаГруппировку.Регистратор) КАК ТипДокумента,
вот эта часть даёт null и подставляется в макет |
|||
2
Defender aka LINN
23.05.13
✎
12:03
|
(1) А ты от этого кушать не можешь и кошмары мучают?
|
|||
3
Artemistrator
23.05.13
✎
12:53
|
с заполнением параметра немного разобрался. Если делать ОбластьШапка.Параметры.Заполнить(ВыборкаИтог), то ТорговаяТочка не подставляется, а если ОбластьШапка.Параметры.Заполнить(Выборка) - подставляется, но другие параметры в шапке не заполняются. Не могу понять как сделать чтоб всё и сразу заполнялось.
|
|||
4
Любопытная
23.05.13
✎
12:54
|
Торговую точку в группировку вставить. В смысле в итоги
|
|||
5
Artemistrator
23.05.13
✎
13:06
|
так ведь если я в итоги засуну, он мне количество выдаст, а мне нужно наименование. То есть на форме выбрал "Магазин", и чтоб в макет тоже заполнялся, как "Магазин".
|
|||
6
Artemistrator
24.05.13
✎
15:20
|
Проблему так и не решил( помогите, пожалуйста, новичку.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |