Имя: Пароль:
1C
1С v8
Сокращенная логика в условии и 8.3.8.1964 - WTF ?
,
0 Ёпрст
 
12.09.16
12:01
Проверьте, работает ли логика в обычном условии по сокращенному варианту, или проверяются все операнды в выражении ?

Например, обычные формы,при записи Группы справочника

Процедура ПриЗаписи(Отказ)
     Если НЕ ЭтоГруппа И БулевоРеквизитНеГруппы И БулевоРеквизитНеГруппы2 Тогда
....

Выдаёт в 8.3.8.1964 ошибку: "Преобразование значения к типу Булево не может быть выполнено"
Т.е проверяется второе условие, хотя не должно вообще.

У всех так ?
Проверьте на других релизах, если не лень.
1 MrStomak
 
12.09.16
12:12
Всё работает как надо.
2 Ёпрст
 
12.09.16
12:31
(1)Именно в ПриЗаписи в модуле объекта ?
В остальных местах проверил (в обработке, например).
Именно в ПриЗаписи такая ерунда.
3 MrStomak
 
12.09.16
13:50
(2) Нет причин думать, что компиляция процедуры ПриЗаписи отличается от компиляции других участков.
Завел ПриЗаписи - всё нормально.
Твоя проблема скорее всего в логике конфигурации
4 Жан Пердежон
 
12.09.16
13:56
(0)
ЭтоГруппа = Истина?)
5 Ёпрст
 
12.09.16
14:05
(4) нет
6 Ёпрст
 
12.09.16
14:06
(3) в какой логике ?
7 RomanYS
 
12.09.16
14:10
(0) не верю, давай скрин с табло отладчика
НЕ ЭтоГруппа
БулевоРеквизитНеГруппы
БулевоРеквизитНеГруппы2
НЕ ЭтоГруппа И БулевоРеквизитНеГруппы И БулевоРеквизитНеГруппы2
8 Жан Пердежон
 
12.09.16
14:11
(5) ну значит правильно работает
9 Cyberhawk
 
12.09.16
14:16
Сделай вот так:
Если Истина
И НЕ ЭтоГруппа
И БулевоРеквизитНеГруппы
И БулевоРеквизитНеГруппы2
Тогда
10 Жан Пердежон
 
12.09.16
14:17
+к(8)
для конъюнкции предикаты проверяются пока ЛОЖЬ не найдена, для дизъюнкции - пока истина...
11 Ёпрст
 
12.09.16
14:18
(9) как обойти, я и так знаю: тупо 2 условия.
12 Ёпрст
 
12.09.16
14:26
13 Ёпрст
 
12.09.16
14:27
О!

Еще подробности:
в файловой нормально отрабатывает, а вот в SQL-версии - ошибка то, что на скриншоте. Полный ПЭ.
14 Ёпрст
 
12.09.16
14:27
Могу кинуть cf-ник демо-базы с одним справочником.
15 Жан Пердежон
 
12.09.16
14:30
в (0) - И на скрине - ИЛИ
в (5) одно, на скрине - другое

подозреваемый путается в показаниях,
понять и простить?)
16 RomanYS
 
12.09.16
14:31
(15) точно!!! ИЛИ!!!
17 Ёпрст
 
12.09.16
14:34
(16) это понедельник
18 Ёпрст
 
12.09.16
14:34
:)
Понять и простить
19 Ёпрст
 
12.09.16
14:40
Просто скобочки в реальном условии потерялись между "и"
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой