Найти тему

Как Динозавр научился программно ставить флажок на форме в 1с 8.3

Сделал Динозавр внешнюю обработку в конфигураторе платформы 1с 8.3.

Разместил на форме разные элементы интерфейса, в том числе и "галку", то есть "флажок". И понадобилось эту галку на форме при открытии "проставлять", то есть приводить в состояние "отмечена", то есть "истина". Галка с именем "дОтбиратьПоДатеДокументов" была связана с реквизитом формы "поДатеДокументов". То есть флажок станет с отметкой тогда, когда значение реквизита формы поДатеДокументов станет истина.

Свойства поля
Свойства поля

Написал Динозавр процедуру в модуле формы:

&НаКлиенте
Процедура ПриОткрытии()
ПоДатеДокументов=1;
КонецПроцедуры

А при открытии не срабатывает и галку "не отмечает". В чем же дело?

А дело в том, что в отличие от 1с 7.7, где существует предопределенная Процедура ПриОткрытии(), в 1с 8.3 все работает по-другому.

В 1с 8.3 для формы есть предопределенные события, а не процедуры. Перечень этих событий можно посмотреть и изменить/создать нажав правой клавишей мыши на форме и выбрав в меню "События", а дальше конкретное событие.

События формы 1с 8.3
События формы 1с 8.3

Или можно открыть свойства формы и указать или создать обработчик события:

Свойства формы 1с 8
Свойства формы 1с 8

Динозавр указал для формы в событии ПриОткрытии свою процедуру ПриОткрытии() и при открытии формы флажок стал равным истина. Ура. Все заработало.

Что узнал Динозавр. В доисторической 1с 7.7 предопределенные процедуры в модулях, а в 1с 8.3 предопределенные события "с привязкой" к процедурам в модуле.

Меньше багов, больше фич!