Добры день, из выпадающего списка получаю подтверждение
Да\Нет
но почему то приходит постоянно
"Да"
даже если выбрал "Нет" в оладчике всё показывает правильно в выводимом сообщение тоже видно
"Нет"
в чём причина, формы обычные?

```1c
    Процедура ПокупкаПриИзменении(Элемент)

    Если Товар.Код = "у45544"

    И Строка(Продажа) = "Да" Тогда

    Сообщить(Строка(Продажа));

    ИначеЕсли Товар.Код = "f364457"

    И Строка(Продажа) = "Нет" Тогда

    Сообщить(Строка(Продажа));

    КонецЕсли;

    КонецПроцедуры
```
---
а зачем проверять перечеслиние в виде строки, а не

```1c
    Если Продажа = Перечисления.ДаНет.Да Тогда
    ...
```
---
объедините условия в скобки и посмотрите результат. А лучше более подробно показать как просили выше, что есть Товар, что есть Продажа, почему при изменении покупки

```1c
    Если (Товар.Код = "у45544" Или Товар.Код = "у45644"
    Или Товар.Код = "у45744" )
    И Продажа = Перечисления.ДаНет.Да Тогда
```

P.S. если скобочки не ставить, то ИЛИ выполнит условие или 1 или 2 или 3 или 4
---
а зачем проверять перечеслиние в виде строки, а не

```1c
    Если Продажа = Перечисления.ДаНет.Да Тогда
    ...
```
---
при такой конструкции всё так же "да" видит "нет" не видит
---
и Товар.Код обернуть в СокрЛП тоже не лишним будет
---
С этой конструкцией теперь на ДА не реагирует сразу на НЕТ переходит.
---
не

```1c
    Строка(Продажа) = "Да" Тогда
```

а

```1c
    Строка(Продажа) = Перечисления.ДаНет.Да Тогда
```

Только какой смысл изобретать такую замену булеву, если есть булево и его можно внешне отформатировать в "Да/Нет"?
---
Строка(Продажа) строка тут лишняя
---
выглядит красиво и правильно, но всё так же
---
в отладке сравните два значения Продажи и Перечисления, равны ли они. И какой тип у Продаж, точно ли перечесление
---
На скрине видно что у продаж тип значения перечисления значит точно. В отладчике когда останавливаюсь на продаже навожу стрелку показыват ДА навожу стрелку мышки на Перечесления.ДаНет.Да то же показывает да вроде вот оно условие, а дальше перепрыгивает на НЕТ блин пародокс какой то. А там ДА = НЕТ и условие выполняется по не понятной причине пробовал на другой машине так же и там.
---
а условие по коду тоже выполняется?

```1c
    Товар.Код = "у45544"
```
---
да, если код не ставить то работать условие не начинает
---
не совсем понял, как условие может не выполняется, если убрать часть этого условия? или наоборот условие начинает работать, перечитайте свой ответ)
---
вот и я это не понимаю вообще. Я не сразу написал что условие у меня выглядит так
```1c
    Если Товар.Код = "у45544" Или Товар.Код = "у45644"
    Или Товар.Код = "у45744"
    И Строка(Продажа) = "Да" Тогда
```

И если у брать часть с ИЛИ и оставить как в первоначальном примере то тогда отрабатывает правильно.
---
объедините условия в скобки и посмотрите результат. А лучше более подробно показать как просили выше, что есть Товар, что есть Продажа, почему при изменении покупки

```1c
    Если (Товар.Код = "у45544" Или Товар.Код = "у45644"
    Или Товар.Код = "у45744" )
    И Продажа = Перечисления.ДаНет.Да Тогда
```

P.S. если скобочки не ставить, то ИЛИ выполнит условие или 1 или 2 или 3 или 4
---
Спасибо заработало)
---
пожалуйста, на будущее когда задаете вопрос на форуме, предоставляйте более подробную информацию, чтобы другим было проще разобраться и дать ответ.
---
В школе уроки по булевой алгебре прогуливали?
---
```1c
    ПокупкаПриИзменении(Элемент)
```

Что это за элемент. Он в табличной части?

```1c
    Строка(Продажа)
```

Это я так понимаю элемент табличной части?
---
```1c
    Процедура ПокупкаПриИзменении(Элемент)

    Если Товар.Код = "у45544" И Продажа = Перечисления.ДаНет.Да Тогда

    Сообщить(Продажа);

    ИначеЕсли Товар.Код = "f364457" И Продажа = Перечисления.ДаНет.Нет Тогда

    Сообщить(Продажа);

    КонецЕсли;

    КонецПроцедуры
```