Готовишься к экзамену?
Полнофункциональный тренажер @bot_1cnik_bot с полноценным обучением, режимом экзамена и подробной статистикой.
В обычной форме 1С для элемента управления «Кнопка» какое значение можно указать в качестве обработчика события «Нажатие»?
Стандартное действие (типовая команда платформы, например «Закрыть», «Записать» и т.п.)
Неправильно: Стандартное действие действительно может быть назначено кнопке, чтобы она выполняла типовую команду без программирования. Но в вопросе требуется выбрать единственный вариант, и правильным считается комбинированный ответ, который включает также возможность привязки к процедуре модуля формы.
Процедура из модуля этой формы (пользовательский алгоритм, написанный в модуле формы)
Неправильно: Для кнопки обычной формы можно назначить обработчик «Нажатие» в виде процедуры модуля формы - это стандартный способ реализовать свою логику. Однако в тесте единственно верный вариант - тот, который одновременно учитывает и стандартное действие, и процедуру модуля формы.
Глобальная экспортная процедура из общего модуля напрямую, без промежуточного кода в форме
Неправильно: Непосредственно выбрать процедуру общего модуля как обработчик «Нажатие» для кнопки обычной формы обычно нельзя - обработчик привязывается к форме (либо к стандартному действию). Если нужно выполнить общий алгоритм, на практике делают процедуру-обертку в модуле формы, которая вызывает экспортную процедуру общего модуля.
Верны варианты 1 и 2
Правильно: Событие «Нажатие» кнопки обычной формы можно связать либо со стандартным действием, либо с собственной процедурой, расположенной в модуле формы. Это покрывает оба основных сценария: типовое поведение без кода и пользовательский алгоритм обработки нажатия.
Верны варианты 1, 2 и 3
Неправильно: Варианты 1 и 2 действительно применимы, но пункт про «глобальную процедуру общего модуля напрямую» некорректен для назначаемого обработчика события в обычной форме. Общий модуль используют опосредованно - вызывая его из процедуры формы, а не выбирая его процедуру как обработчик напрямую.
Пояснение
В обычных формах событие «Нажатие» у элемента «Кнопка» настраивается через свойства элемента. Есть два типовых подхода:
1) Назначить стандартное действие. Это удобно для типовых задач (например, закрыть форму, записать объект, провести документ и т.п.), когда вам не нужно писать код. Кнопка будет выполнять системное действие сразу при нажатии.
2) Назначить процедуру модуля формы. Тогда вы создаете (или автоматически генерируете) обработчик вроде «КнопкаИмяНажатие(Кнопка)» и пишете свой алгоритм: проверки заполнения, сообщения пользователю, формирование печатной формы, запуск подбора и т.д.
Важный практический нюанс: если общую логику хочется вынести в общий модуль (для повторного использования в разных формах), обычно делают так:
- в модуле формы пишут обработчик нажатия (обертку);
- внутри него вызывают экспортную процедуру общего модуля, передавая нужные параметры (например, текущий объект формы, реквизиты, ссылки и т.п.).
Пример (идея): обработчик «Нажатие» в форме вызывает «ОбщийМодуль.ОбработатьНажатиеКнопки(ЭтотОбъект)». Так вы соблюдаете механизм привязки события к форме и при этом переиспользуете общий код.
Не путайте с управляемыми формами: там чаще работают через «Команды» формы и обработчики команд, а в обычных формах классический путь - стандартное действие или процедура модуля формы.