Имя: Пароль:
1C
1С v8
Как правильно добавить условие в динамический список?
0 Очень Любознательная
 
16.09.19
21:21
Добрый вечер!
У клиента есть в одном месте программы вызов формы выбора договора (конфа УТ), он хочет, чтобы в неё подтягивались только договоры, у которых дата окончания действия либо больше равна 1 января этого года, либо не заполнена.
Я добавила к стандартному запросу списка условие
{ГДЕ СправочникДоговорыКонтрагентов.ДатаОкончанияДействия >= &Дата}

Дату ставлю в параметрах равной 1 января
Подскажите, пожалуйста, как доработать это условие, чтобы и договоры с незаполненной датой окончания подтягивались?
1 palsergeich
 
16.09.19
21:29
Или
СправочникДоговорыКонтрагентов.ДатаОкончанияДействия = ДатаВремя(0001,01,01)
2 Zhuravlik
 
17.09.19
00:08
А еще лучше не трогать запрос в дин. списке, а использовать событие списка ПриПолученииДанных, если режим совместимости позволяет..
3 craxx
 
17.09.19
07:56
(2) Ага, и включить тормоза и невозможность отбора.
4 Очень Любознательная
 
21.09.19
01:51
(1) Можете подсказать ещё, пожалуйста?
У меня есть форма, на которой для работы 3 поля - организация, контрагент, договор
Нужно, чтобы если заполнена организация, контрагент, то выводились договоры с данными отборами,
где дата окончания больше или равна 1 января этого года или не заполнена, а статус действующий.

Я открываю форму выбора договора, но в динамическом списке нет отборов.Я добавила их так
{ГДЕ СправочникДоговорыКонтрагентов.Контрагент = &Контрагент}
{ГДЕ СправочникДоговорыКонтрагентов.Организация = &Организация}
{ГДЕ СправочникДоговорыКонтрагентов.ДатаОкончанияДействия >= &Дата ИЛИ СправочникДоговорыКонтрагентов.ДатаОкончанияДействия = ДатаВремя(0001,01,01)}
{ГДЕ СправочникДоговорыКонтрагентов.Статус = &Статус}

Потом при создании формы на сервере я передаю отборы в параметры открытия:
    СобытияФорм.ПриСозданииНаСервере(ЭтаФорма, Отказ, СтандартнаяОбработка);
    Если ЗначениеЗаполнено(Параметры.Организация) Тогда
     Список.Параметры.УстановитьЗначениеПараметра("Организация", Параметры.Организация);
КонецЕсли;
Если ЗначениеЗаполнено(Параметры.Контрагент) Тогда
     Список.Параметры.УстановитьЗначениеПараметра("Контрагент", Параметры.Контрагент);
КонецЕсли;
     Список.Параметры.УстановитьЗначениеПараметра("Дата", Параметры.Дата);
     Список.Параметры.УстановитьЗначениеПараметра("Статус", Параметры.Статус);

Но проблема возникает, когда, скажем, в актах сверки они просто выбирают договор, там параметров этих нет, поэтом ошибка выскакивает. Подскажите, пожалуйста, что я делаю не так? Как это должно делаться правильно?
5 runoff_runoff
 
21.09.19
02:05
не надо менять запрос..
нужно всего лишь добавить элемент отбора в ФиксированныеНастройки
6 Очень Любознательная
 
21.09.19
02:49
(5) можно где-нибудь пример увидеть?
нагуглила только фиксированные настройки отчётов
7 runoff_runoff
 
21.09.19
05:05
ОбщегоНазначенияКлиентСервер.УстановитьЭлементОтбораДинамическогоСписка()

не надо ничего гуглить.. достаточно в УТ 11 посмотреть.. по Ctrl+Shift+F примеры использование метода..
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн