Главная » 1С Предприятие » ПЕРЕМЕННЫЕ ДИАЛОГА

0

Переменные модуля и локальные переменные его программных компонентов объявлялись и  определялись, то есть  получали  значения, в  самом  модуле.  Переменные модуля  доступны во  всех его  программных компонентах,  локальные только  в  том компоненте, где они были объявлены явно или неявно, появившись  в левой части оператора  присваивания. Кроме таких переменных, в модуле можно  оперировать и переменными диалога, которые объявляются в диалоге как идентификаторы его элементов.  Область  действия переменных диалога распространяется на все программные компоненты  модуля, то есть они имеют такой же статус, как и переменные модуля.

Замечание. У переменных диалога  есть  другие названия  реквизиты  формы

и идентификаторы элементов диалога.

Рассмотрим  пример использования переменных диалога. Приведем диалог, отображенный на рис. 1.14, б, к виду,  представленному на рис. 1.20, добавив   в  него  два элемента текст и числовое  поле для ввода и редактирования данных.

а                                                                                  б Рис. 1.24. Поле дЧ диалога обработки Проба:

а после открытия диалога; б после двукратного нажатия на кнопку Пуск

Замечание.  Имеющаяся в коде процедура ПриОткрытии является  предопределенной и выполняется, как  это следует из ее названия, в момент  открытия диалога. При необходимости процедуру  можно  вызвать и из иного программного компонента модуля, например из процедуры Выполнить. Для этого, однако, потребуется либо добавить перед процедурой Выполнить оператор предварительного описания

процедура ПриОткрытии() далее

либо разместить процедуру  ПриОткрытии перед  процедурой Выполнить.  С диалогом обработки  связаны  и  другие предопределенные процедуры, например  ПриЗакрытии или ПриВыбореЗакладки.

Переменная диалога дЧ станет  недоступной во  всех программных компонентах модуля, если в модуле обработки объявить переменную модуля дЧ:

перем  дЧ;                        //              Объявляем  переменную модуля

Если же такое  объявление сделать  в каком-нибудь программном компоненте модуля, например  в  процедуре Выполнить, то переменная диалога дЧ станет  недоступной  в этом  программном компоненте. В таких случаях говорят: "Локальная переменная закрывает глобальную переменную". Таким же образом можно  закрыть  в процедуре или функции модуля его любую переменную. Каких-либо предупреждений о закрытии переменных компилятором не выдается.

Избежать непредвиденных  закрытий  переменных будет легче, если  придумывать имена переменным, опираясь на некоторую систему, например  начинать переменные диалога с буквы д или использовать так называемую  венгерскую нотацию.  В соответствии с ней  имя объекта  снабжается префиксом  из строчных букв, указывающих его тип.  Последующая часть  имени раскрывает  его смысл.  Причем  каждая  часть  имени, отражающая отдельный смысловой  компонент, начинается  с прописной  буквы. Например, имя переменной сНазваниеПодразделения говорит нам не только  о том, что в ней хранится, но и о том, что тип переменной является символьным.

Источник: Бартеньев О. В. 1С:Предприятие:  программирование для  всех.  Базовые объекты и расчеты на одной дискете. М.: Диалог-МИФИ, 2005. 464 с.

По теме:

  • Комментарии