Имя: Пароль:
1C
1С v8
Ошибка "Преобразование значения к типу Булево не может быть выполнено"?
0 manking
 
22.09.15
20:35
Добрый день.
Почему пишет ошибку? ЕСЛИ КодВозвратаДиалога.ОК ТОГДА

Вот текст ошибки:
{Обработка.Модальная.Форма.ПараметрыЗаполнения.Форма(9)}: Преобразование значения к типу Булево не может быть выполнено
    ЕСЛИ КодВозвратаДиалога.ОК ТОГДА


Вот сам код:
Результат = ОткрытьФормуМодально("Обработка.Модальная.Форма.ПараметрыЗаполнения");
    
    ЕСЛИ КодВозвратаДиалога.ОК ТОГДА
...
Иначе
КонецЕсли


1С:Предприятие 8.3
1 PR третий
 
22.09.15
20:38
Потому что преобразование значения к типу Булево не может быть выполнено
2 asady
 
22.09.15
20:38
(0) Какая из букв в сообщении 1С тебя не догоняет?
3 фобка
 
22.09.15
20:40
Если [логическое выражение] Тогда ...
4 Ненавижу 1С
 
гуру
22.09.15
20:43
а какое отношение строка

ЕСЛИ КодВозвратаДиалога.ОК ТОГДА

имеет к переменной Результат?
5 фобка
 
22.09.15
20:47
(4) почти на блюде выложил, он так ничему не научится
6 Ненавижу 1С
 
гуру
22.09.15
20:51
(5) сам сегодня копал 7.7 (без доп. плюшек, типовая), "забыл" это мягко сказано - как мы на ЭТОМ работали?

Постоянно в инете и СП сидел, пока писал
7 manking
 
22.09.15
21:00
Листинг 8.15 стр 293 книги проф разработка в 1С 8.2
Там пример кода.

КодВозвратаДиалога это вроде глобальная переменная куда попадает значение после вызова ОткрытьФормуМодально? Или нет?
8 фобка
 
22.09.15
21:01
(6) практикуюсь на семерке периодически.. Раз в месяц-два. Стало неудобно (больше всего напрягает отладчик), названия некоторых методов подзабыты, ну и косяки платформы всплывают..
9 фобка
 
22.09.15
21:02
(7) это не переменная
10 фобка
 
22.09.15
21:02
В примере кода этого не могло быть, что-то упущено
11 Ненавижу 1С
 
гуру
22.09.15
21:03
КодВозвратаДиалога это системное перечисление
12 manking
 
22.09.15
21:05
(10) Вот весь листинг: Скопировал из pdf. А как тогда понять, какая кнопка была нажата при вызове функции ОткрытьФормуМодально?

Результат = ОткрытьФормуМодально("Обработка.ЗаполнениеДанных.Форма.ПараметрыЗаполнения");
Сообщение = Новый СообщениеПользователю;
Если Результат = КодВозвратаДиалога.ОК Тогда
Сообщение.Текст = "В форме нажата стандартная кнопка ОК";
ИначеЕсли Результат = КодВозвратаДиалога.Пропустить Тогда
Сообщение.Текст = "В форме нажата стандартная кнопка Пропустить";
ИначеЕсли Результат = КодВозвратаДиалога.Отмена Тогда
Сообщение.Текст = "В форме нажата стандартная кнопка Отмена";
Иначе
Сообщение.Текст = "Обработка этой команды в форме не предусмотрена";
КонецЕсли;
Сообщение.Сообщить();
13 фобка
 
22.09.15
21:18
(12) внимательно посмотри условие и сравни с (0)
14 manking
 
22.09.15
21:26
(13) Теперь понял. Там идет сравнение Результат = КодВозвратаДиалога.ОК.

А тип КодВозвратаДиалога возвращается функцией Вопрос().