Главная » 1С Предприятие » КОНТЕКСТ ОБРАБОТКИ ПРОБА

0

Вторым   параметром  использованной   в   предшествующем  разделе   функции   ОткрытьФорму является   контекст   формы  обработки   Проба,  под  которым  понимается  совокупность   ее реквизитов  (переменных диалога)  й  методов  формы обработки.  Этот параметр является  выходным.

Проиллюстрируем  методы  работы  с контекстом на  примере обработки, диалог  которой  содержит два поля  (рис.  1.42):  одно  числового типа (дЧ), другое  типа  Перечисление  (пер).

Рис.    1.44.  Диалог   обработки   Проба:   а  до  обновления;   б  после  него

Структура контекста говорит о том, что  он  является  объектом  агрегированного типа, включающего  компоненты (в  нашем случае  реквизиты  формы) и  методы, употребляемые с обработкой. Приведем еще  один пример управления формой обработки Проба через  ее контекст. Так, если в процедуру перед вызовом

контОбрПроба.Форма.Обновить(); выполнить  оператор

контОбрПроба.Форма.дЧ.Видимость(0);         //     Скрываем  элемент диалога дЧ

то рис. 1.44, б примет приведенный  на рис.  1.45  вид.

Рис. 1.45. Управление формой обработки Проба через ее контекст Замечание.   Переменная  контОбрПроба,   возвращаемая   функцией   ОткрытьФорму,

имеет тип ГрупповойКонтекст. В этом  можно  убедиться, выполнив вызов Сообщить(ТипЗначенияСтр(контОбрПроба));    //  Напечатает ГрупповойКонтекст

Это   говорит о  том,  что  через   переменную  контОбрПроба  доступны  все  употребляемые  с формой методы:  методы  формы, элементов  ее диалога,  контекста модуля  формы и контекста модуля  формы отчета  (обработки).

Контекст формы  можно   передать   в  качестве  входного/выходного  параметра  процедуре  или  функции  глобального модуля.   Пусть,  например, в  глобальном  модуле  определена процедура

процедура РаботаСКонтекстом(конт) экспорт конт.Дч = 7.98;

конт.пер =

Перечисление.ТипПлатежа.ЗначениеПоНомеру(З);          //      Аванс

конт.Форма.дЧ.Видимость(0);

//

Скрываем

элемент    диалога     д     Ч

конт.Форма.Обновить();

//

Обновляем  диалог обработки Проба

конецПроцедуры // РаботаСКонтекстом

При  вызове такой  процедуры в  качестве  фактического параметра используется  переменная Контекст. Например:

процедура Выполнить()                     //             Связана с кнопкой Пуск  обработки Проба  РаботаСКонтекстом(Контекст);

конецПроцедуры // РаботаСКонтекстом

Результат  такого  вызова см.  на рис.  1.45.

Замечание.   Реально  процедура РаботаСКонтекстом  после   запуска  вышеприведенного  примера удалена  из глобального модуля.

Разумеется,  контекст обработки  можно   передать   как  входной/выходной  параметр процедуре или функции,  размещенных в  модуле  обработки.  Например,  запишем  в модуле обработки  Проба следующий  код:

процедура РаботаСКонтекстомВМодуле(конт) конт.Дч = 7.98;

конт.пер =

Перечисление.ТипПлатежа.ЗначениеПоНомеру(З);                 //          Аванс

конт.Форма.дЧ.Видимость(0);

//

Скрываем элемент диалога дЧ

конт.Форма.Обновить();

//

Обновляем  диалог обработки Проба

конецПроцедуры // РаботаСКонтекстомВМодуле

процедура Выполнить()                     //              Связана с кнопкой Пуск обработки Проба РаботаСКонтекстомВМодуле(Контекст);

конецПроцедуры // Выполнить

Исполнение кода  даст тот же эффект, что  и  вызов  процедуры  РаботаСКонтекстом глобального  модуля.   В  то  же  время  очевидна  избыточность  такого   подхода:   область  действия переменных диалога и  процедур  формы распространяется на  все программные  единицы ее модуля.

Замечание.  Все  сказанное  относительно контекста обработки  применимо  и  к  контексту произвольной  формы: документа, формы списка справочника и др.

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

По теме:

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