Содержание:
1. Ошибка при использовании функции «Вопрос» и ее решение в системе конфигурации 1С
2. Особенности работы функции «ПоказатьВопрос» в конфигурации программы 1С
1. Ошибка при использовании функции «Вопрос» и ее решение в системе конфигурации 1С
В последнее время разработчики прикладных решений сталкиваются с ошибкой, которая возникает при попытке вывода окна вопроса пользователю. Разработчик пишет код, как это он делал обычно, используя функцию «Вопрос» для реализации прикладных задач начиная работу с конфигурацией платформы 1С версией 8.0. Например, разработчику нужно обработать событие, когда пользователь решил повторно выполнить загрузку данных из файла в табличную часть обработки (Рис. 1). Для дальнейшего автоматического формирования документов.
Обработка загрузки данных из файла
Пользователь нажимает команду «Загрузить данные из файла» и в момент выполнения функции «Вопрос» система выводит на экран ошибку.
Ошибка. При использовании функции «Вопрос»
Причина из-за которой возникла ошибка связана со свойством (конфигурации) «Режим использования модальности».
Свойство конфигурации «Режим использования модальности»
В данном случае установлено значение «Не использовать», для свойства (конфигурации) «Режим использования модальности».
Изменим значение свойства (конфигурации) «Режим использования модальности» на «Использовать».
Свойство конфигурации «Режим использования модальности».
Нажимаем команду «Загрузить данные из файла» и в момент выполнения функции «Вопрос» система успешно выводит на экран окно с вопросом (Рис. 6).
Вывод на экран с вопросом
Для того чтобы вывести на экран окно с вопросом пользователю, когда в свойстве конфигурации 1С «Режим использования модальности» установлено значение «Не использовать» следует использовать функция «ПоказатьВопрос».
2. Особенности работы функции «ПоказатьВопрос» в конфигурации программы 1С
Функция ПоказатьВопрос служит для интерактивной работы пользователя с окном вопроса. Используя функцию ПоказатьВопрос разработчику потребуется затратить чуть больше времени чем на функцию «Вопрос». Потребуется написать дополнительную экспортную процедуру. При выполнении кода в отличии от функции «Вопрос» система не дожидается ответа пользователя и выполняет код дальше.
У функции «ПоказатьВопрос» есть три обязательных параметра. Первый параметр нужен для описания вызова экспортной процедуры, которая будет вызываться после нажатия кнопок окна вопроса. Второй параметр — это содержание вопроса. Третий параметр определяет какие будут кнопки окна вопроса. Подробно обо всех параметрах можно прочитать в синтаксис-помощнике.
Модуль формы
Перед тем как показать работу функции «ПоказатьВопрос» воспользуемся отладчиком. Поставим точку останова в конец процедуры ЗагрузкаИзФайла и поставим точку останова в начале условия «Если» в экспортной процедуре ПослеЗакрытияВопросаНаКлиенте.
Модуль формы. Точки останова
Нажимаем команду «Загрузить данные из файла». Код процедуры ЗагрузкаИзФайла() выполняется полностью и останавливается на точке останова строки КонецПроцедуры (Рис. 8). Как выше было упомянуто код программы 1С, не дожидаясь ответа пользователя выполняется дальше. Эту особенность нужно обязательно учесть при описании логики работы процедур и функций.
Модуль формы. Точка останова. Процедура ЗагрузкаИзФайла
На экран выводится окно с вопросом пользователю (Рис. 6). Нажимаем любую кнопку. Система начинает выполнять экспортную процедуру ПослеЗакрытияВопросаНаКлиенте и останавливается на точке останова (Рис. 9).
Модуль формы. Точка останова. Процедура ПослеЗакрытияВопросаНаКлиенте
Дальше система завершает процедуру ПослеЗакрытияВопросаНаКлиенте. Жизненный цикл работы команды «Загрузить данные из файла» с использованием функции «ПоказатьВопрос» завершен.
Специалист компании "Кодерлайн"
Владимир Быков