Почему не работает команда Сообщить?
Проблема
При использовании команды Сообщить есть нюанс, с которым обязательно сталкиваются все ученики школы: в некоторых случаях эта команда не срабатывает.
Нет, она, конечно, срабатывает. Но мы не успеваем увидеть результаты её работы, так как она выводится не в главном окне.
А дело вот в чём. Если в нашей программе вызывается одна из следующих команд ВвестиЧисло, ВвестиДату, ВвестиСтроку, то следующие команды Сообщить мы просто не успеваем увидеть.
Вызов перечисленных команд приводит к тому, что перед пользователем появляется отдельное окно (для ввода информации), которое ломает стандартный механизм вывода сообщений через команду Сообщить. В этом случае результаты команды Сообщить выводятся не в главное, а в диалоговое окно, которое закрывается сразу после ввода значения.
Простой способ решения
Поэтому я всем ученикам рекомендую следующее: если в вашем коде встречается одна из команд ВвестиЧисло, ВвестиДату, ВвестиСтроку, вместо сообщить используйте команду ОткрытьЗначение:
Число = 0; ВвестиЧисло(Число); ОткрытьЗначение(Число); |
Если такие команды у вас не встречаются, то смело используйте более привычную и удобную команду Сообщить:
Число = 123; Сообщить(Число); |
Правильный способ решения
Либо поместите в модуль управляемого приложения событие ПриНачалеРаботыСистемы и пишите весь наш учебный код в нём. Это событие вызывается уже после того как создано главное окно 1С.
Вот пример:
Процедура ПриНачалеРаботыСистемы() Число = 0; ВвестиЧисло(Число, "Пожалуйста, введите число"); Сообщить(Число); КонецПроцедуры |
Если вам непонятна форма написания события ПриНачалеРаботыСистемы, то вероятно вы ещё не дошли до уроков на процедуры и функции. Почему эта процедура называется событием? Потому что её вызывает сама платформа при наступлении определенного момента, в данном случае после создания главного окна приложения.
С уважением,
Владимир Милькин