Добрый день!
Подскажите, как решаются подобного вида задачи: есть отчет, на форме есть реквизит Контрагент. Как сделать, чтобы если контрагент выбран, то уловие по нему в запрос попадало, а если не выбран, то чтобы отчет формировался по всем?
Контрагента указываю как условие в виртуальной таблице:
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Контрагент = &Контрагент)
16.
Aleksandr_prof
20015.02.21 20:48 Сейчас в теме
(2) Делаю по вашему методу, но выдаёт ошибку. Если убрать ваш текст - то работает, но не совсем корректно. Мне нужно, чтобы когда не выбрана организация, выбирались документы по всем организациям.
Ещё можно указать условие виртуальной таблицы не на вкладке "Таблицы и поля" а на вкладке "построитель" тогда проверку на контрагента писать не нужно будет, постоитель при незаполненном контрагенте просто отбросит условие по нему и выведет весь список.
(7) Вкладка не отображается потому что, для начального создания ты выбрал вариант "конструктор запроса с обработкой результата".
С использованием вкладки "построитель" вместо "Пользователь = &Пользователь" условие будет выглядит так {(Пользователь = &Пользователь) КАК Пользователь}. Например если параметр пользователь не будет задан, ошибки не буден, запрос сделает выборку по всем пользователям. В запросе в СКД вкладка называется "компоновка данных"
Я обычно пишу так: НЕ &ОтборПоКонтрагенту ИЛИ (Таблица.Контрагент = &Контрагент)
И в запрос передаю 2 параметра:
Запрос.УстановитьПараметр("ОтборПоКонтрагенту", ЗначениеЗаполнено(Контрагент));
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Так читабельнее. А так конечно можно и просто в запросе:
... (Таблица.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) ИЛИ (Таблица.Контрагент = &Контрагент)
Контрагент В(&Контрагент)
вроде должно работать, хотя честно говоря не пробовал.
Ну и соответственно всегда устанавливать параметр, даже если пустая ссылка.
(11) все зависит от уровня сложности отчета, но конечно же в идеале надо все делать в СКД, там огромное количество настроек, можно научить клиента копатся в этих настройках и он будет настраивать его по своим потребностям. Но если же клиенту надо "карту мира" вывести в отчет, тогда увы, вот вам печатные формы, запросы, циклы и прочее=)