Имя: Пароль:
1C
 
Преобразование выражения к типу "Булево" не может быть выполнено
0 Fidel Ramirez
 
19.03.06
14:10
Конфигурация УТ 10.2.6.4.
Вылазит такая вот ошибка. Код:

   Если ((ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем) ИЛИ (ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером))


Это кусок из ДоговорыКонтрагентов.МодульОбъекта.
Код мной не менялся.

Если поставить бряк перед проверкой условия, то ВидДоговора = С покупателем.

Да и вообще, в последнее время начали часто ошибки с преобразованем типов выскакивать.
1 Волшебник
 
модератор
19.03.06
14:11
разве на этой строке выскакивает ошибка?
2 Fidel Ramirez
 
19.03.06
14:11
Именно на этой.
3 Fidel Ramirez
 
19.03.06
14:12
Описание ошибки скинуть?

{Обработка.РегистрацияДоговоровСвоихОрганизаций.Форма.Форма(38)}: Ошибка при вызове метода контекста (Записать): Ошибка при выполнении обработчика - '{Справочник.ДоговорыКонтрагентов(198)}: Преобразование значения к типу Булево не может быть выполнено'
   ДоговорПоставщикаСПокупателем.Записать();
{Справочник.ДоговорыКонтрагентов(198)}: Преобразование значения к типу Булево не может быть выполнено
               Если ((ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СПокупателем) ИЛИ (ВидДоговора = Перечисления.ВидыДоговоровКонтрагентов.СКомиссионером))
4 Волшебник
 
модератор
19.03.06
14:17
(3) Ошибка выдалась на строке ДоговорПоставщикаСПокупателем.Записать();
5 Fidel Ramirez
 
19.03.06
14:20
Да, при этом вызывается обработчик Справочник.ДоговорыКонтрагентов.ПередЗаписью().

И вылетает он из этой обработки именно на указанной мной строчке.
6 Fidel Ramirez
 
19.03.06
15:10
Ошибка найдена.
Заключалась она вовсе не в приведении типов.

ПС: А приведение типов все-таки глючит.
7 Волшебник
 
модератор
19.03.06
15:12
(6) в чем заключалась ошибка?
8 Fidel Ramirez
 
19.03.06
15:16
Там владелец договора не находился правильно, как следствие - у него не было пометки "Покупатель".
Правда, истинную ошибку нашел только после того, как убрал скобочки в логическом выражении из (0). До тех пор он ругался на приведение типов.
9 Волшебник
 
модератор
19.03.06
15:18
(8) Представляешь, у меня была мысль посоветовать тебе убрать скобки. Но я счёл этот вариант фантастическим и промолчал. Я в шоке.
10 Fidel Ramirez
 
19.03.06
15:24
(9)
Кстати, недавно эти глюки с приведением начались только.
Код-то 1С-ный. Может в одном из обновлений такое напороли?

Выражения типа:

Сообщить(ЧислоА + " --- " + ЧислоБ);

тоже теперь ругаются на невозможность приведения к типу "Число".
Раньше у меня mfrjuj не было.
11 Fidel Ramirez
 
19.03.06
15:25
+(10)
Такого
12 Волшебник
 
модератор
19.03.06
15:26
(10) Это было всегда. Пользуйся функцией "Строка"
13 Fidel Ramirez
 
19.03.06
15:28
(12)
Пользуюсь.
Но раньше он нормально выводил и так.
14 Волшебник
 
модератор
19.03.06
15:28
(13) В 7.7
15 Fidel Ramirez
 
19.03.06
15:45
(14)
...
Может быть. Мне приходится тов одной, то в другой работать, так что мог и спутать.

Как насчет такого глюка:

Преобразование значения к типу Булево не может быть выполнено
"Если ДоговорПоставщикаСПокупателем.Владелец.Покупатель Тогда"

Причем ДоговорПоставщикаСПокупателем - это тип СправочникОбъект.ДоговорыКонтрагента; Владелец - соответственно, СправочникСсылка.Контрагенты; поле Покупатель, естественно, Булево.
16 DES
 
19.03.06
16:14
(15) да элементарно!
Если ДоговорПоставщикаСПокупателем - не определено , то шут знает что это TRUE или False!
17 Fidel Ramirez
 
19.03.06
16:40
Так вроде же есть правила приведения типа Неопределено к основным типам, в ттом числе и к логическому... :аншуэ:
18 Волшебник
 
модератор
19.03.06
16:42
(17) Выражение
Булево(Неопределено)
выдает ошибку
"Преобразование значения к типу Булево не может быть выполнено"
Закон Брукера: Даже маленькая практика стоит большой теории.