ПолучитьМодульПоКлючу (GetModuleByKey)

<< Click to Display Table of Contents >>

Navigation:  Раздел 6 Язык программирования L9 > Встроенные процедуры и функции > Работа с модулями >

ПолучитьМодульПоКлючу (GetModuleByKey)

 

Описание:

Функция ищет в памяти ранее загруженный модуль. Если модуль есть в памяти, то возвращается найденный модуль. В противном случае возвращается Неопределено.

Модуль ищется по переданному в параметре значению ключа загруженного модуля – см. Ключ().

 

Синтаксис:

ПолучитьМодульПоКлючу(<Строка>)

GetModuleByKey(<String>)

Параметры:

Строка (String) – ключ модуля, полученный вызовом метода Ключ(). Строковое значение. Если значение другого типа, то метод вернет Неопределено.

Возвращаемые значения:

Объект "Модуль" или Неопределено.

 

 

Примечание

Пример кода ниже учитывает сразу 2 требования Платформы:

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

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

 

Пример:

 

// Пример загрузки модуля по ключу

Перем МодульВВодаКоличестваКлюч; // глобальная пременная, хранит ключ модуля

 

// Функция загружает модуль в память только если его нет в памяти.
Функция ЗапроситьКоличество() Экспорт
  МодульВВодаКоличества = ПолучитьМодульПоКлючу(МодульВВодаКоличестваКлюч);

 Если МодульВВодаКоличества = Неопределено Тогда

         МодульВВодаКоличества = ОткрытьМодуль(ИменаМодулей.ФормыДиалогов.ФормаВводаКоличества);

         МодульВВодаКоличестваКлюч = МодульВВодаКоличества.Ключ();

         МодульВВодаКоличества.УстановитьОбработкуВыбора(ОбработчикВводаКоличества);

 Иначе

         ОтладочноеСообщение("Модуль 'ФормаВводаКоличества' не выгружался из памяти, новая загрузка не требуется.");

 КонецЕсли;

 
  Возврат МодульВВодаКоличества;

 
КонецФункции