Как сделать параметр не обязательным к заполнению

1. Airat116 15.06.21 16:39 Сейчас в теме
Здравствуйте, помогите пожалуйста настроить параметр период
ДатаНачалаДоговора и конец берутся из бизнес процесса,
Я в запросе поставил условие, (СогласованиеДоговоров.НачалоДействияДоговора >= &НачалоДействияДоговора
И СогласованиеДоговоров.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора)

Далее Скрин

Если параметр заполнить то работает, а если например не заполнить Период, тогда пустой отчет собирается
Можно ли как то собрать отчет не заполняя параметр?
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. lefthander 15.06.21 16:42 Сейчас в теме
(1)
берутся из бизнес процесса,
А в Бизнес Процессе эти величины обязательные?
(1)
Можно ли как то собрать отчет не заполняя параметр?
Можно, надо в запросе это сделать необязательным
3. Airat116 15.06.21 16:47 Сейчас в теме
4. lefthander 15.06.21 16:48 Сейчас в теме
(3) А зачем тогда переживать о не заполненности дат?
7. Airat116 15.06.21 16:49 Сейчас в теме
(4) ну такой вариант нужен, например за все дату собрать отчет
25. konsta2006 29.10.23 10:53 Сейчас в теме
5. Airat116 15.06.21 16:48 Сейчас в теме
(2) У вас нет примера как это можно сделать?
8. lefthander 15.06.21 16:50 Сейчас в теме
(5)Запрос покажите... Обычно я подставляю через СтрЗаменить... нужные значения параметров.
13. bmk74 239 15.06.21 16:59 Сейчас в теме
(1) Заполнить данные поля в Функции ПриКомпоновкеДанных, в модуле отчета
Получаете настройки отчета, и смотрите если у вас период.ДатаОкончания = ПустаяДата() тогда заполняете текущим днем
Хотя странно все это, почему просто данный период не вывести на форму, пускай пользователи его сами настраивают
6. burstmashine 15.06.21 16:49 Сейчас в теме
Период всегда должен заполняться.
9. Airat116 15.06.21 16:50 Сейчас в теме
Например если так же делать по регистрам и там не поставить галку на период то отчет собирается за весь период
Вот так же хотелось бы сделать
10. lefthander 15.06.21 16:51 Сейчас в теме
(9)Может запрос тогда в студию? ;)
ЗЫ странное желание... за пределами действия договора Вам собирать нечего... За весь период вы можете просто все договоры выбрать. ;) Но все равно надо смотреть как вы задаете интервал
11. Airat116 15.06.21 16:53 Сейчас в теме
ВЫБРАТЬ
	СогласованиеДоговоровССамозанятымСотрудником.Контрагент,
	СогласованиеДоговоровССамозанятымСотрудником.Контрагент.ИНН КАК КонтрагентИНН,
	СогласованиеДоговоров.ВнутреннийНомер КАК ВнутреннийНомер,
	СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора,
	СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора,
	СогласованиеДоговоровССамозанятымСотрудником.ТипСамозанятости,
	СогласованиеДоговоров.Организация,
	СогласованиеДоговоровССамозанятымСотрудником.ПредметДоговора,
	ВЫБОР
		КОГДА СогласованиеДоговоровССамозанятымСотрудником.ТипСамозанятости = ЗНАЧЕНИЕ(Перечисление.ТипыСамозанятости.СтороннийСамозанятый)
			ТОГДА СогласованиеДоговоровССамозанятымСотрудником.Руководитель
		ИНАЧЕ "ТЕСТ"
	КОНЕЦ КАК Руководитель,
	СогласованиеДоговоровССамозанятымСотрудником.ПропорцияОплаты,
	НАЧАЛОПЕРИОДА(СогласованиеДоговоровССамозанятымСотрудником.Дата, МЕСЯЦ) КАК Месяца,
	СогласованиеДоговоровССамозанятымСотрудником.СрокОплаты,
	СогласованиеДоговоров.ВнутреннийНомер КАК ВнутреннийНомерДоговора,
	СогласованиеДоговоров.Дата КАК ДатаДоговора
ИЗ
	БизнесПроцесс.СогласованиеДоговоровССамозанятымСотрудником КАК СогласованиеДоговоровССамозанятымСотрудником
		ЛЕВОЕ СОЕДИНЕНИЕ БизнесПроцесс.СогласованиеДоговоров КАК СогласованиеДоговоров
		ПО СогласованиеДоговоровССамозанятымСотрудником.Контрагент = СогласованиеДоговоров.Контрагент
ГДЕ
	СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора >= &НачалоДействияДоговора
	И СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора
Показать
12. lefthander 15.06.21 16:58 Сейчас в теме
(11)
ГДЕ
СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора >= &НачалоДействияДоговора
И СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора

Через СтрЗаменить этой строке присвойте "" - если одна из дат пустая

Что то типа Запрос.Текст = СтрЗаменить(Запрос.Текст, "ГДЕ
СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора >= &НачалоДействияДоговора
И СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора", "")
После этой строки в запросе не будет секции ГДЕ

ЗЫ написал с листа без проверки в конструкторе
14. bmk74 239 15.06.21 17:02 Сейчас в теме
(12)Интересно, вы на СКД это как себе представляете :) ?
Если уж такой костыль ставить тогда писать нужно как то так
ГДЕ
ВЫБОР КОГДА &ОкончаниеДействияДоговора  <> ДАТАВРЕМЯ(1,1,1) Тогда
(СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора >= &НачалоДействияДоговора
И СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора)
ИНАЧЕ ИСТИНА
КОНЕЦ
serg-lom89; +1 Ответить
16. serg-lom89 76 15.06.21 17:07 Сейчас в теме
(14)
автор наверное хотел приКомпновке получить текст запроса(исходный) и уже изменить его и "подсунуть" обратно
17. bmk74 239 15.06.21 17:09 Сейчас в теме
(16)Тогда уж лучше значения параметров менять, чем сам запрос, это как то правильнее
18. lefthander 15.06.21 17:15 Сейчас в теме
(14)
Интересно, вы на СКД это как себе представляете :) ?
А вы подумайте? Я и не такие вещи могу на СКД...
19. bmk74 239 15.06.21 17:17 Сейчас в теме
(18)А как вы думаете ТС, знает как менять тест запроса в СКД, и да если вы умеете это делать, то правильнее в такой ситуации было заполнить параметры те же, вместо изменения текста запроса...
20. lefthander 15.06.21 17:26 Сейчас в теме
(19)Возникает холивар ни о чем. ТС спросил как это сделать... Хоть в СКД, хоть в обычном запросе это легко реализуется. ;) тем более сборка идет на основе бизнес процесса, где даты заполнены безусловно.... ;) и ситуации с пустой датой не возникает ;)
15. serg-lom89 76 15.06.21 17:04 Сейчас в теме
(12)
Можно написать
ГДЕ 


ВЫБОР КОГДА  &НачалоДействияДоговора = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) И &ОкончаниеДействияДоговора = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)  Тогда
Истина///не налаживаем отбор по периоду
ИНАЧЕ
СогласованиеДоговоровССамозанятымСотрудником.НачалоДействияДоговора >= &НачалоДействияДоговора
И СогласованиеДоговоровССамозанятымСотрудником.ОкончаниеДействияДоговора <= &ОкончаниеДействияДоговора
КОНЕЦ
Показать
21. Airat116 15.06.21 17:34 Сейчас в теме
Попробовал вкладке Компоновка данных - условия
туда положить и вроде работает
22. Airat116 15.06.21 17:37 Сейчас в теме
Последний вопрос) кто нибудь делал отчет по месяцам с отбором по месяцу?
23. konsta2006 29.10.23 10:52 Сейчас в теме
Сделайте как у меня - все будет ок)
Прикрепленные файлы:
24. konsta2006 29.10.23 10:53 Сейчас в теме
в условии запроса и в параметрах виртуальных таблиц период в СКД не используйте)
Оставьте свое сообщение

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