|
построение отчета с параметрами | ☑ | ||
---|---|---|---|---|
0
Константин536
25.04.16
✎
17:32
|
Добрый день.
Создал отчет с параметром "склад". Теперь при выборе склада можно получать данные только по выбранному складу. А как сделать, чтобы если не задано значение параметра склада, то выводить по всем складам. Написал код: "&НаСервере Процедура Показать(ТабДок) Макет = Отчеты.Отчет1.ПолучитьМакет("Макет1"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриемТовары.Ссылка.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Ссылка.Склад), | ПриемТовары.Товар, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Товар) |ИЗ | Документ.Прием.Товары КАК ПриемТовары |УПОРЯДОЧИТЬ ПО | Склад"; Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; Если Склад = ЭтаФорма.Склад тогда Макет = Отчеты.Отчет1.ПолучитьМакет("Макет"); Запрос = Новый Запрос; Запрос.Текст = "ВЫБРАТЬ | ПриемТовары.Ссылка.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Ссылка.Склад), | ПриемТовары.Товар, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Товар) |ИЗ | Документ.Прием.Товары КАК ПриемТовары |ГДЕ | ПриемТовары.Ссылка.Склад = &Склад | |УПОРЯДОЧИТЬ ПО | Склад"; Запрос.УстановитьПараметр("Склад", Склад); Результат = Запрос.Выполнить(); ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок"); ОбластьШапкаТаблицы = Макет.ПолучитьОбласть("ШапкаТаблицы"); ОбластьДетальныхЗаписей = Макет.ПолучитьОбласть("Детали"); ТабДок.Очистить(); ТабДок.Вывести(ОбластьЗаголовок); ТабДок.Вывести(ОбластьШапкаТаблицы); ВыборкаДетальныеЗаписи = Результат.Выбрать(); Пока ВыборкаДетальныеЗаписи.Следующий() Цикл ОбластьДетальныхЗаписей.Параметры.Заполнить(ВыборкаДетальныеЗаписи); ТабДок.Вывести(ОбластьДетальныхЗаписей, ВыборкаДетальныеЗаписи.Уровень()); КонецЦикла; КонецЕсли; КонецПроцедуры" Но результата нет: при невыбранном складе отчет пустой. |
|||
1
timurhv
25.04.16
✎
17:36
|
(0)
проверка на заполнение "Склад" и если не заполнено - заменить текст запроса "ПриемТовары.Ссылка.Склад = &Склад" на "ИСТИНА" |
|||
2
Elatiell
25.04.16
✎
17:37
|
|ГДЕ
| ПриемТовары.Ссылка.Склад = &Склад ИЛИ &Склад =ЗНАЧЕНИЕ(Справочник.Склады.ПустаяСсылка) Примерно так. |
|||
3
Sabbath
25.04.16
✎
17:41
|
откройте для себя фигурные скобочки
"ВЫБРАТЬ | ПриемТовары.Ссылка.Склад КАК Склад, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Ссылка.Склад), | ПриемТовары.Товар, | ПРЕДСТАВЛЕНИЕ(ПриемТовары.Товар) |ИЗ | Документ.Прием.Товары КАК ПриемТовары |{ГДЕ | (ПриемТовары.Ссылка.Склад = &Склад)} | |УПОРЯДОЧИТЬ ПО | Склад"; |
|||
4
Elatiell
25.04.16
✎
17:44
|
(3) Там судя по всему не СКД. ;)
|
|||
5
aleks_default
25.04.16
✎
17:47
|
(4) фу, какая древность...
|
|||
6
aleks_default
25.04.16
✎
17:49
|
(0)Вы, небось, еще 4 айфоном пользуйтесь, когда все уже на 6 перешли.
|
|||
7
Chameleon1980
25.04.16
✎
17:59
|
давно еще типа такого использовал:
Процедура КнопкаВыполнитьНажатие(Кнопка) Запрос=Новый Запрос; ТекстЗапроса="ВЫБРАТЬ | ТоварыНаСкладахОстатки.Склад, | ТоварыНаСкладахОстатки.Номенклатура, | ТоварыНаСкладахОстатки.ХарактеристикаНоменклатуры, | ТоварыНаСкладахОстатки.КоличествоОстаток |ИЗ | РегистрНакопления.ТоварыНаСкладах.Остатки( | &ДатаВыборки, | ВЫБОР | КОГДА &ЕстьУсловиеПоСкладу | ТОГДА Склад = &ВыбСклад | ИНАЧЕ ИСТИНА | КОНЕЦ) КАК ТоварыНаСкладахОстатки"; Запрос.Текст=ТекстЗапроса; Запрос.УстановитьПараметр("ВыбСклад", ПоСкладу); Если НЕ ПоСкладу.Пустая() Тогда Запрос.УстановитьПараметр("ЕстьУсловиеПоСкладу", Истина); Иначе Запрос.УстановитьПараметр("ЕстьУсловиеПоСкладу", Ложь); КонецЕсли; КонецПроцедуры |
|||
8
Константин536
25.04.16
✎
18:53
|
(4) (5) (6) Что же Вы, уважаемые, думаете, что все сразу сели и научились грамотные запросы писать? (6) До 6-го айфона был 5-тый и 4-тый.
|
|||
9
Константин536
25.04.16
✎
21:15
|
(2) огромное СПАСИБО!!!!! Помогло!!!!!!!!!!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |