Имя: Пароль:
1C
 
Что не так с параметрами СКД?
0 mikecool
 
20.10.19
21:35
Есть условие в запросе
Где Дата Между &Дата1 и &Дата2

Есть параметр Период(СтандартныйПериод)
Дата1 = &Период.ДатаНачала
Дата2 = Выбор когда ЗначениеЗаполнено(&Период.ДатаОкончания) Тогда &Период.ДатаОкончания Иначе ТекущаяДатаСеанса() Конец

но если очистить период, то в результат запроса ничего не выбирается.
Варум?
Как период засунуть в отборы, чтобы не компоновать условие И в списке отборов?
1 mikecool
 
20.10.19
21:39
перенес свою дату в отбор, настроил условие И
Дата Больше или равно ПараметрыДанных.НачалоПериода
Дата Меньше или равно ПараметрыДанных.ОкончаниеПериода
поведение не изменилось
чешу репу
2 mikecool
 
20.10.19
21:40
отчего сабж не работает?
3 mikecool
 
20.10.19
21:56
вернее - получил Не задано значение параметра "ОкончаниеПериода"
пробовал формулу Выбор когда &Период.ДатаОкончания = ДатаВремя(1,1,1)  Тогда ТекущаяДатаСеанса() Иначе &Период.ДатаОкончания Конец
аналогичное поведение с ошибкой
4 mikecool
 
20.10.19
21:59
ошибку локализовал - возникала из-за не установленного флажка ограничения использования...
5 mikecool
 
20.10.19
22:01
что же не так с расчетом параметра?
6 PR
 
20.10.19
22:01

{ГДЕ
    Дата >= &Дата1}
{ГДЕ
    Дата <= &Дата2}
7 mikecool
 
20.10.19
22:09
(6) я просто оставил в запросе {Где Дата}
и настроил группу отборов И
но - если не указываю период, то в результате запроса пусто, как будто не вычисляется &ОкончаниеПериода
8 mikecool
 
20.10.19
22:10
если период указываю, то все работает как положено
9 PR
 
20.10.19
22:11
(7) Вот странно, заметил, что некоторым говоришь работающее решение под ключ, а они вместо "Спасибо", "Круто, работает" или хотя бы "Угу" начинают писать всякую пургу
Не подскажешь, почему так происходит?
10 PR
 
20.10.19
22:12
(8) Продолжай наблюдения
11 mikecool
 
20.10.19
22:12
(9) Спасибо, Рома
я знал, что тебе не помочь надо, а потешить ЧСВ, но все равно спасибо
12 PR
 
20.10.19
22:15
(11) Кушай, не обляпайся :))
Я как бы два в одном, и помочь и потешить
Я же лев, куле https://fishki.net/15432-znaki-zodiaka-12-znakov-nenormotivnaja-leksika.html
13 PR
 
20.10.19
22:16
+(12) За помощь без потешить я обычно по 3000 в час беру, сейчас уже обычно по 3500
14 mikecool
 
20.10.19
22:16
{(Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода) КАК Дата}
результат аналогичен сабжу
15 mikecool
 
20.10.19
22:21
так понимаю, что пока не указано значение Периода - отборы не должны применяться
а по ощущениям - применяются без вычисления выражения
16 PR
 
20.10.19
22:23
(14) А будет работать, если я, например, Дату1 задам, а Дату2 нет?
17 PR
 
20.10.19
22:23
(15) В (6) так и работает
18 mikecool
 
20.10.19
22:35
конструктор запроса конструкцию из (6) свернул в
{Дата >= &НачалоПериода,
Дата <= &ОкончаниеПериода}
и все равно не работает
19 mikecool
 
20.10.19
22:37
вообще отборы ведут себя еще непредсказуемее для меня, чем параметры
оставим отборы, пес с ними, почему не вычисляется значение параметра ОкончаниеПериода?
ответ на этот вопрос решит мою проблему
20 PR
 
20.10.19
22:37
(18) Это да, поэтому после конструктора запроса нужно вручную заново разносить на две конструкции
21 PR
 
20.10.19
22:38
(19) Не в курсе, но посрать, потому что так делать не надо, надо (6)
22 mikecool
 
20.10.19
22:42
(21) способ из (6) у меня постоянно выдает пустой результат
надо искать консоль СКД с просмотром текста запроса перед выполнением...
23 PR
 
20.10.19
22:45
(14) Кстати, да, даже это работает, даже с учетом (16)
И даже без КАК
{(Дата МЕЖДУ &НачалоПериода И &ОкончаниеПериода) КАК Дата}
24 PR
 
20.10.19
22:47
(23) А, не, без КАК не работает как раз
25 PR
 
20.10.19
22:53
(0) Хех, у меня (0) работает, хотя это и бредовый неправильный вариант
26 mikecool
 
20.10.19
22:56
(25) в смысле (0) работает? рассчитывается параметр окончания периода?
27 PR
 
20.10.19
23:20
(26) Да
28 toypaul
 
гуру
21.10.19
09:11
тут как мне кажется проблема в следующем. когда не задан ПериодОтчета или один из его "концов", то соответ-щий параметр, который этот "конец" использует тупо не вычисляется. что подтверждает ККД.

бился я как-то с подобной проблемой, когда в дату окончания надо было передать текущую дату - в основном в этом проблема. решал насколько помню установкой напрямую КонецПериода в модуле в ПриКомпоновкеРезультата через УстановитьЗначениеПараметра и анализ заполненности даты из периода
29 mikecool
 
21.10.19
11:53
(28) вот и я проснулся с той же мыслью ))
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший