Из-чего в условие приходят не верные данные?

1. Terabaytus 19.08.24 09:02 Сейчас в теме
Добры день, из выпадающего списка получаю подтверждение
Да\Нет
но почему то приходит постоянно
"Да"
даже если выбрал "Нет" в оладчике всё показывает правильно в выводимом сообщение тоже видно
"Нет"
в чём причина, формы обычные?

Процедура ПокупкаПриИзменении(Элемент)
            
        
        Если Товар.Код = "у45544" 
             
             И Строка(Продажа) = "Да" Тогда
             
             Сообщить(Строка(Продажа));
             
        
         ИначеЕсли Товар.Код = "f364457" 
             
             И Строка(Продажа) = "Нет" Тогда
             
             Сообщить(Строка(Продажа));
            
        КонецЕсли;

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

Показать
Прикрепленные файлы:
Найденные решения
2. yispepotri 19.08.24 09:14 Сейчас в теме
(1) а зачем проверять перечеслиние в виде строки, а не

Если Продажа = Перечисления.ДаНет.Да Тогда
...
Terabaytus; user1671936; +2 Ответить
17. yispepotri 19.08.24 16:41 Сейчас в теме
(16) объедините условия в скобки и посмотрите результат. А лучше более подробно показать как просили выше, что есть Товар, что есть Продажа, почему при изменении покупки


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


P.S. если скобочки не ставить, то ИЛИ выполнит условие или 1 или 2 или 3 или 4
Terabaytus; +1 Ответить
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. yispepotri 19.08.24 09:14 Сейчас в теме
(1) а зачем проверять перечеслиние в виде строки, а не

Если Продажа = Перечисления.ДаНет.Да Тогда
...
Terabaytus; user1671936; +2 Ответить
6. Terabaytus 19.08.24 12:13 Сейчас в теме
(2) при такой конструкции всё так же "да" видит "нет" не видит
5. Pavel Rodinchenko 19.08.24 09:16 Сейчас в теме
(1) и Товар.Код обернуть в СокрЛП тоже не лишним будет
Terabaytus; user1671936; +2 Ответить
8. Terabaytus 19.08.24 12:24 Сейчас в теме
(5) С этой конструкцией теперь на ДА не реагирует сразу на НЕТ переходит.
3. usershmuser 19.08.24 09:15 Сейчас в теме
не
Строка(Продажа) = "Да" Тогда

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


Только какой смысл изобретать такую замену булеву, если есть булево и его можно внешне отформатировать в "Да/Нет"?
Terabaytus; +1 Ответить
4. yispepotri 19.08.24 09:16 Сейчас в теме
(3)
Строка(Продажа)
строка тут лишняя
Terabaytus; user1671936; +2 Ответить
7. Terabaytus 19.08.24 12:14 Сейчас в теме
(4) выглядит красиво и правильно, но всё так же
9. yispepotri 19.08.24 12:51 Сейчас в теме
(7) в отладке сравните два значения Продажи и Перечисления, равны ли они. И какой тип у Продаж, точно ли перечесление
10. Terabaytus 19.08.24 14:50 Сейчас в теме
(9) На скрине видно что у продаж тип значения перечисления значит точно. В отладчике когда останавливаюсь на продаже навожу стрелку показыват ДА навожу стрелку мышки на Перечесления.ДаНет.Да то же показывает да вроде вот оно условие, а дальше перепрыгивает на НЕТ блин пародокс какой то. А там ДА = НЕТ и условие выполняется по не понятной причине пробовал на другой машине так же и там.
11. yispepotri 19.08.24 14:52 Сейчас в теме
(10) а условие по коду тоже выполняется?
Товар.Код = "у45544"
12. Terabaytus 19.08.24 14:54 Сейчас в теме
(11) да, если код не ставить то работать условие не начинает
13. yispepotri 19.08.24 14:56 Сейчас в теме
(12) не совсем понял, как условие может не выполняется, если убрать часть этого условия? или наоборот условие начинает работать, перечитайте свой ответ)
16. Terabaytus 19.08.24 16:37 Сейчас в теме
(13) вот и я это не понимаю вообще. Я не сразу написал что условие у меня выглядит так
   Если Товар.Код = "у45544" Или Товар.Код = "у45644" 
          Или  Товар.Код = "у45744" 
             И Строка(Продажа) = "Да" Тогда
             

И если у брать часть с ИЛИ и оставить как в первоначальном примере то тогда отрабатывает правильно.
17. yispepotri 19.08.24 16:41 Сейчас в теме
(16) объедините условия в скобки и посмотрите результат. А лучше более подробно показать как просили выше, что есть Товар, что есть Продажа, почему при изменении покупки


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


P.S. если скобочки не ставить, то ИЛИ выполнит условие или 1 или 2 или 3 или 4
Terabaytus; +1 Ответить
18. Terabaytus 19.08.24 16:48 Сейчас в теме
20. yispepotri 19.08.24 16:51 Сейчас в теме
(18) пожалуйста, на будущее когда задаете вопрос на форуме, предоставляйте более подробную информацию, чтобы другим было проще разобраться и дать ответ.
Terabaytus; +1 Ответить
19. WasiliyMay 8 19.08.24 16:50 Сейчас в теме
(16) В школе уроки по булевой алгебре прогуливали?
Terabaytus; +1 Ответить
14. usershmuser 19.08.24 15:59 Сейчас в теме
(12)
ПокупкаПриИзменении(Элемент)

Что это за элемент. Он в табличной части?
Строка(Продажа)

Это я так понимаю элемент табличной части?
15. Jontao 19.08.24 16:20 Сейчас в теме
Процедура ПокупкаПриИзменении(Элемент)
 
        Если Товар.Код = "у45544"  И Продажа = Перечисления.ДаНет.Да Тогда
        
             Сообщить(Продажа);
               
         ИначеЕсли Товар.Код = "f364457"  И Продажа = Перечисления.ДаНет.Нет Тогда
             
             Сообщить(Продажа);
            
        КонецЕсли;

КонецПроцедуры
Показать
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот