Условие в запросе, если параметр заполнен

1. nick_krsk 19 12.08.12 11:22 Сейчас в теме
Добрый день!
Подскажите, как решаются подобного вида задачи: есть отчет, на форме есть реквизит Контрагент. Как сделать, чтобы если контрагент выбран, то уловие по нему в запрос попадало, а если не выбран, то чтобы отчет формировался по всем?

Контрагента указываю как условие в виртуальной таблице:
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор, , Контрагент = &Контрагент)
kashafeev; grand.pers; +2 Ответить
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. famnam 21 12.08.12 11:28 Сейчас в теме
ВЫБОР
КОГДА &Контрагент <> Значение(Справочник.контрагенты.ПустаяСсылка)
ТОГДА Контрагент = &Контрагент
ИНАЧЕ Истина
КОНЕЦ
irina_dolos; Antoska; NicolasCage; Bessondo; AndreySchel; jan-pechka; Yan_Malyakov; __MaxImuS__; user1397605; Maxanamoon; user1216454; Henistaromin; Bespechnii_kot; Aleksandr_prof; kaps22; surr; rpgshnik; AndrewVik; user640247; payta; jusin; user873205; by_1Cnik; idiked; user605292_mrradic; freeek; windsurf; kozlovvp; kazann; grand.pers; smit1c; Gendelf; Светлый ум; CepeLLlka; fzt; Dansur; nick_krsk; +37 Ответить
5. nick_krsk 19 13.08.12 15:42 Сейчас в теме
(2) Ниче как сложно :)
(3) Попробую так.
(4) Этот вариант я хотел реализовать, но подумал, мож в восьмерке по хитрому как-то делается.
16. Aleksandr_prof 200 15.02.21 20:48 Сейчас в теме
(2) Делаю по вашему методу, но выдаёт ошибку. Если убрать ваш текст - то работает, но не совсем корректно. Мне нужно, чтобы когда не выбрана организация, выбирались документы по всем организациям.
Прикрепленные файлы:
17. famnam 21 16.02.21 06:58 Сейчас в теме
(16) Пишите в блоке условия
3. u_dev 12.08.12 13:12 Сейчас в теме
Ещё можно указать условие виртуальной таблицы не на вкладке "Таблицы и поля" а на вкладке "построитель" тогда проверку на контрагента писать не нужно будет, постоитель при незаполненном контрагенте просто отбросит условие по нему и выведет весь список.
user734199; kazann; nick_krsk; famnam; +4 Ответить
7. nick_krsk 19 13.08.12 16:03 Сейчас в теме
(3)А где вкладка "Построитель"? Не могу найти.

http://s019.radikal.ru/i620/1208/4f/c6d3ea0a1612.jpg
12. u_dev 13.08.12 20:45 Сейчас в теме
(7) Вкладка не отображается потому что, для начального создания ты выбрал вариант "конструктор запроса с обработкой результата".

С использованием вкладки "построитель" вместо "Пользователь = &Пользователь" условие будет выглядит так {(Пользователь = &Пользователь) КАК Пользователь}. Например если параметр пользователь не будет задан, ошибки не буден, запрос сделает выборку по всем пользователям. В запросе в СКД вкладка называется "компоновка данных"
odinsmot; nick_krsk; +2 Ответить
14. nick_krsk 19 14.08.12 14:30 Сейчас в теме
(12) Спасибо за разъяснение!
(13) Да у нас пользователи такие, вроде сперва простой отчет нужен, потом начинают его накручивать.
FB_1366680793497233; +1 Ответить
4. Ольга_tmp 72 12.08.12 14:35 Сейчас в теме
РегистрНакопления.ВзаиморасчетыСКонтрагентами.ОстаткиИОбороты(&НачалоПериода, &КонецПериода, Регистратор,"+условие+")

перед текстом запроса прописывается
условие = ?(контрагент=неопределено,""," Контрагент = &Контрагент")
Bespechnii_kot; Dansur; nick_krsk; +3 Ответить
6. trand 13.08.12 15:56 Сейчас в теме
Я обычно пишу так: НЕ &ОтборПоКонтрагенту ИЛИ (Таблица.Контрагент = &Контрагент)
И в запрос передаю 2 параметра:
Запрос.УстановитьПараметр("ОтборПоКонтрагенту", ЗначениеЗаполнено(Контрагент));
Запрос.УстановитьПараметр("Контрагент", Контрагент);
Так читабельнее. А так конечно можно и просто в запросе:
... (Таблица.Контрагент = ЗНАЧЕНИЕ(Справочник.Контрагенты.ПустаяСсылка)) ИЛИ (Таблица.Контрагент = &Контрагент)
SeTIrk; AnPet; nekit_rdx; Dinchic; LowDzu; Наг; user734199; kasenka; vsnazarov; Asadoff; Dimkasan; Dansur; nick_krsk; +13 Ответить
8. nick_krsk 19 13.08.12 16:04 Сейчас в теме
9. Valet 56 13.08.12 16:07 Сейчас в теме
Попробуй вместо Контрагент = &Контрагент

Контрагент В(&Контрагент)
вроде должно работать, хотя честно говоря не пробовал.
Ну и соответственно всегда устанавливать параметр, даже если пустая ссылка.
1CEnterprise; +1 Ответить
10. nick_krsk 19 13.08.12 16:14 Сейчас в теме
(9) Не, такой вариант не рабит
11. nick_krsk 19 13.08.12 16:21 Сейчас в теме
Расскажите, сейчас люди отчеты вручную еще делают, или все с помощью СКД?
А то я только после семерки. :)
13. u_dev 13.08.12 21:23 Сейчас в теме
(11) все зависит от уровня сложности отчета, но конечно же в идеале надо все делать в СКД, там огромное количество настроек, можно научить клиента копатся в этих настройках и он будет настраивать его по своим потребностям. Но если же клиенту надо "карту мира" вывести в отчет, тогда увы, вот вам печатные формы, запросы, циклы и прочее=)
15. grand.pers 23.04.15 12:46 Сейчас в теме
Вот ссылка на официальную ветку. http://devtrainingforum.v8.1c.ru/forum/thread.jsp?id=623599
По-моему то, что надо. Мне помогло.
korzhishe; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот