|
Ошибка "Преобразование значения к типу Булево не может быть выполнено"? |
☑ |
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) Теперь понял. Там идет сравнение Результат = КодВозвратаДиалога.ОК.
А тип КодВозвратаДиалога возвращается функцией Вопрос().
|
|
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший