Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Условие в условии
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Nervosa
Здравствуйте!

Хочу в запросе сделать условие вида "Условие(?(ФизЛицо=0, Cостояние = "Закрыт", ВРемонт = 0))", но не знаю как правильно.
Подробнее - в случае если документ оформлен на организацию, то в условие подставляется "Состояние = "Закрыт"", иначе - ВРемонт = 0.

Подскажите, пожалуйста.
Заранее благодарю.
Vofka
|...
|Условие("+?(ФизЛицо=0, "Состояние=""Закрыт""", "ВРемонт=0")+")
|...
Nervosa
Цитата(Vofka @ 30.11.10, 11:48) необходимо зарегистрироваться для просмотра ссылки
|...
|Условие("+?(ФизЛицо=0, "Состояние=""Закрыт""", "ВРемонт=0")+")
|...


Хмм... Наверное Вы не совсем правильно поняли. Имеется запрос -

"//{{ЗАПРОС(Сформировать)
|Период с ВыбНачПериода по ВыбКонПериода;
|Обрабатывать НеПомеченныеНаУдаление;
|ОбрабатыватьДокументы Все;
|ДатаДок = Документ.ю19_ЗаказНаряд.ДатаДок;
|НомерДок = Документ.ю19_ЗаказНаряд.НомерДок;
|ВРемонте = Документ.ю19_ЗаказНаряд.ВРем;
|МестоХранения = Документ.ю19_ЗаказНаряд.МестоХранения;
|Состояние = Документ.ю19_ЗаказНаряд.СостояниеЗаказНаряда;
|ТекущийДокумент = Документ.ю19_ЗаказНаряд.ТекущийДокумент;
|Контрагент = Документ.ю19_ЗаказНаряд.Контрагент;
|Автор = Документ.ю19_ЗаказНаряд.Автор;
|ФизЛицо= Документ.ю19_ЗаказНаряд.ФизЛицо;
|СтоимостьРаботСУчетомСкидки = Документ.ю19_ЗаказНаряд.СтоимостьРаботСУчетомСкидки;
|СуммаСНДСиНУ = Документ.ю19_ЗаказНаряд.СуммаСНДСиНУ;
|СтоимостьТМЦ = Документ.ю19_ЗаказНаряд.СтоимостьТМЦ;
|Функция СтоимостьРаботСУчетомСкидкиСумма = Сумма(СтоимостьРаботСУчетомСкидки);
|Функция СуммаСНДСиНУСумма = Сумма(СуммаСНДСиНУ);
|Функция СтоимостьТМЦСумма = Сумма(СтоимостьТМЦ);
|Группировка ДатаДок;
|Группировка НомерДок;
|Группировка Контрагент без групп;
|Группировка Автор ;
|"//}}ЗАПРОС

далее код такой -

Если (Лица=1) Тогда //по организациям
ТекстЗапроса=ТекстЗапроса+"Условие(ФизЛицо=0);
|Условие(Состояние = Перечисление.ю19_СостоянияЗаказНаряда.Закрыт);";
КонецЕсли;
Если (Лица=2) Тогда //по физ.лицам
ТекстЗапроса=ТекстЗапроса+"Условие(ФизЛицо=1);
|Условие(ВРемонте = 0);";

и вот потом надо рассматривать случай отбора по физ. лицам и организациям вместе. Т.е. ФизЛицо - переменная в запросе.
Ardi
Функция Просрочено(Док)
    Если Док.Выбран()=0 Тогда
        Возврат 0
    КонецЕсли;

    Если ДатаОплатыДок(Док) + ДнПросроченногоДолга < Дата2 Тогда
        Возврат 1;
    КонецЕсли;
    Возврат 0;
КонецФункции



|Функция ПросроченныйДолг         = Просрочено(КредДокумент);
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.