Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
09 ноя 2024, 04:26

Условие для входа в цикл

Автор ДенисЕвгеньев, 29 авг 2024, 14:29

0 Пользователей и 1 гость просматривают эту тему.

ДенисЕвгеньев

Подскажите пожалуйста, есть цикл

 Для каждого строкаТЧ ИЗ проверкаТЧ Цикл
             значение = строкаТЧ.Номенклатура;
             значение1 = строкаТЧ.Количество;
             значение2 = строкаТЧ.Цена;
             табНаправления = НаправленияНазначенные.Добавить();
             табНаправления.Процедура = значение;
             табНаправления.Количество = значение1;
             табНаправления.Цена = значение2;
             ТабНаправления.ДатаВнесения = ТекущаяДата();
             табНаправления.ПрефиксАкции = префикс;
             КонецЦикла;


Все работает и переносит в табличную часть , но когда пытаюсь добавить условие

 Если датаКонцаАкции > НачалоДня(ТекущаяДата()) Или датаНачалаАкции < НачалоДня(ТекущаяДата()) Тогда
             Для каждого строкаТЧ ИЗ проверкаТЧ Цикл
             значение = строкаТЧ.Номенклатура;
             значение1 = строкаТЧ.Количество;
             значение2 = строкаТЧ.Цена;
             табНаправления = НаправленияНазначенные.Добавить();
             табНаправления.Процедура = значение;
             табНаправления.Количество = значение1;
             табНаправления.Цена = значение2;
             ТабНаправления.ДатаВнесения = ТекущаяДата();
             табНаправления.ПрефиксАкции = префикс;
             КонецЦикла;
        Иначе
            Сообщить("Сегодня данная акция не доступна");
        КонецЕсли;


Тогда уже срабатывает только Иначе,а сам цикл перестает работать, просто ничего не происходит , не понимаю что я пропустил

Максим75

ДенисЕвгеньев, что там делает КонецЦикла?
что Вы хотите получить? чтобы цикл прерывался при определенном условии или что?

ДенисЕвгеньев

Максим75, В общем есть реквизиты Начало акции и окончание акции , и мне нужно сделать так, чтобы нельзя было выбрать акцию , если она по дате не подходит, тогда вывожу сообщение что "Сегодня акции не доступна" , а если подходит по времени, то просто цикл работает и заполняет табличную часть данными , надеюсь понятно объяснил..

wise

(0) значит у Вас "датаКонцаАкции > НачалоДня(ТекущаяДата()) ИЛИ датаНачалаАкции < НачалоДня(ТекущаяДата())" оба ЭТИ условия ЛОЖЬ.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

ДенисЕвгеньев

wise, Но разве, если оба условия ложь он не будет выводить "Сегодня акция недоступна" в любом случае?

LexaK

ДенисЕвгеньев, так условие такое
Если датаКонцаАкции > НачалоДня(ТекущаяДата())
    Или датаНачалаАкции < НачалоДня(ТекущаяДата()) Тогда
проверяйте значения Дат!

даты Акции какие?
если помогло нажмите: Спасибо!

Максим75

ДенисЕвгеньев, так условие И надо, ну чтобы между двумя датами, то условие И.
еще и посмотрите строго больше,меньше или надо больше или равно, меньше или равно.
и еще разберитесь с понятием НачалоДня, может быть ситуация, что ДатаКонцаАкции всегда будет больше, чем НачалоДня(), поэтому для конца акции скорее всего надо использовать КонецДня().

wise

(4) если акция начинается СЕГОДНЯ, то почему "датаНачалаАкции < НачалоДня(ТекущаяДата()" даты будут РАВНЫ если Ваш реквизит БЕЗ времени.
Представьте себе, какая была бы тишина, если бы люди говорили только то, что знают

ДенисЕвгеньев

Все я понял,проблема именно в условии а не в синтаксисе в общем, спасибо всем

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск