Имя: Пароль:
1C
 
Как сделать, чтобы не зашло в Если?
,
0 NIGHTHUNTER
 
14.09.22
11:36
Как правильно сделать условие что бы не зашло в Если?
Значения реквизитов такие, -

ЭтотОбъект.ХХХ_Товары.Количество() = 0
ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров

    Если ЭтотОбъект.ХХХ_Товары.Количество() = 0
        И
        (НЕ ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ЗаказКлиента_ЗаказДавальца_2
        И
        НЕ ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров)        
        Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не заполнена табличная часть товары !";
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;
1 Фрэнки
 
14.09.22
11:37
для отладки?
2 Bigbro
 
14.09.22
11:37
поставить перед Если Возврат.
не зайдет.
3 Фрэнки
 
14.09.22
11:39
припиши в самом начале в Если
ЛОЖЬ И (... дальше все, что там уже написано)
4 zenik
 
14.09.22
11:39
Вместо второго "И" надо "ИЛИ"
5 kittystark
 
14.09.22
11:40
Если НЕ(
        ЭтотОбъект.ХХХ_Товары.Количество() = 0
        И
        (ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ЗаказКлиента_ЗаказДавальца_2
        ИЛИ
        ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров)        
      )
        Тогда
6 lodger
 
14.09.22
11:44
(0) а ты наоборот сделай.
зайди в если под отладкой по точке останова по шагам.
выйди из если по шагам.
вычисли Отказ. установи значение Ложь.
7 Bigbro
 
14.09.22
11:45
GOTO еще не предложили
8 NIGHTHUNTER
 
14.09.22
11:47
Так сработало, правильно ли?

    Если ЭтотОбъект.ХХХ_Товары.Количество() = 0
        И
        (НЕ ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ЗаказКлиента_ЗаказДавальца_2
        И
        НЕ ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров)        
        Тогда
        Сообщение = Новый СообщениеПользователю;
        Сообщение.Текст = "Не заполнена табличная часть товары !";
        Сообщение.Сообщить();
        Отказ = Истина;
    КонецЕсли;
9 NIGHTHUNTER
 
14.09.22
11:48
(1) Да нет, нужно что бы не заходило в условие.
10 Spieluhr
 
14.09.22
11:48
(9) Создать расширение, далее (3)
12 Фрэнки
 
14.09.22
11:50
(9) В случае небольших блоков, которые нужно отключать - можно просто закомментить блок на время отладки, затем снять комменты блока.
13 Мимохожий Однако
 
14.09.22
11:51
(11) Группа студентов
14 NIGHTHUNTER
 
14.09.22
11:52
(12) Да дело в том что я делаю доработку, и это условие вообще не нужно.
Можно удалить. но я хотел сделать что бы в него не заходило.

добавил эту строку.

НЕ ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров)

но все равно заходило, я так понял что то с логикой не то, вот и спросил.
15 NIGHTHUNTER
 
14.09.22
11:52
(8) сработало.
16 kittystark
 
14.09.22
11:54
(8) + (15) = или (11), или крыша едет
17 Фрэнки
 
14.09.22
11:54
(14) логика очень простая - текущее условие с двух сторон закрываешь скобками (лишние скобки не помеха никогда)
И в начало если подпихиваешь ЛОЖЬ И ... и все будет всегда ЛОЖЬ и в тело блока не пройдет.
18 Bigbro
 
14.09.22
12:01
но ты уже внутри "если"
надо туда не заходить
значит до Если надо свернуть или уйти
например написать
если 1=0 тогда
... тут старый код
КонецЕсли;
19 ads55
 
14.09.22
12:45
(8) вторую И замени на ИЛИ
не может быть, чтобы документ сразу (не) был  двух типов
20 Ryzeman
 
14.09.22
12:50
(14) Выделить строки  и [ctrl] + /
уже не вариант? Или ты не знаешь что такое закомментировать код?
Если уж так хочется приделывать уродливые костыли, то Если Ложь И [твоё условие]
21 Курцвейл
 
14.09.22
14:05
Надо зайти в первую если. А если в первую не зашел работает старый код.

Если ЭтотОбъект.ХХХ_Товары.Количество() = 0
И ЭтотОбъект.ХХХ_ВидДокумента = Перечисления.ХХХ_ВидДокументаВнутреннегоПеремещения.ПеремещениеТоваров Тогда
//ничего не делаем
ИначеЕсли
//тут что-то делаем другое