.. Автор: Артур Аюханов aka artbear, mailto: artbear@inbox.ru

.. include:: commonchm.txt


#####################################################################
УправлениеНастройками
#####################################################################
..	<chminfo>
		<insert nodes="//common/maininfo/*"/>
		<alinks>_1cpp_settings_manager</alinks>
		<klinks>
			УправлениеНастройками
			SettingsManager
		</klinks>
	</chminfo>

.. contents:: Содержание
	:backlinks: none

**Класс "УправлениеНастройками" / "SettingsManager".**

Удобный сервисный класс, управляющий настройками ВК 1С++.

**Версия: релиз 2.5 и выше.**

.. _Список настроек:

Список настроек:

1. Существует несколько вариантов настроек.
У каждой настройки есть два имени - русское и английское.
Можно управлять соответствующей настройкой с помощью любого имени, как
английского, так и русского.

2. Все настройки:

-	**Оптимизация / EnableOptimizate**
		Оптимизация представляет собой метод отложенных вычислений,
		который реализован в следующем виде:
		если в системе не разу не инстанцировался (создавался экземпляр КОП) класс,
		то его реализация (модуль КОП) не считывается с диска и не компилируется в P-код.
		При первом создании объекта КОП происходит считывание с диска модуля и его компиляция,
		далее откомпилированный модуль сохраняется в репозитории модулей КОП
		и в последующих созданиях объектов, этапы по считыванию с диска и компиляции не производятся.
		Данная оптимизация позволяет существенно уменьшить время создания объектов КОП
		за счет увеличения используемой памяти компьютера, что не существенно для данного вида оптимизации.
		Это режим рекомендуется включать в финальной версии продукта.
		При отключенной оптимизации при каждом создании объекта происходит считывание с диска
		и компиляция модуля КОП, что позволяет вносить изменения в модуль без закрытия\открытия 1С
		в режиме 1С:Предприятие. По аналогии с #LoadFromFile для модулей 1С."

-	**Проверка типов / EnabledCheckType**
		Проверка типов включает, строгую проверку типов во время выполнения кода,
		при этом несколько увеличивается время вызова метода,
		в финальной версии программного продукта рекомендуется отключать;

-	**Отладчик / Отладка / EnableDebugging**
		Позволяет отлаживать пользовательские классы 1С++ с помощью
		отладчика 1С. Подробнее см. общее описание 1С++.

**Эти 3 настройки ВК настраиваются в параметрах 1С на закладке Настройки 1С++**
Остальные настройки управляются только программно.

-	**ТаблицаИсходнаяТаблица / Таблица.ИсходнаяТаблица / EnableTableSourceTable**
		Отвечает за расширенный функционал типового метода
		"ИсходнаяТаблица" для любых объектов типа "Таблица".

-	**EnableTurboBL / TurboBL**
		Отвечает за работу  TurboBL.

-	**ПерехватитьСобытияГК / EnableHookEventsGroupContext**
        При    включенной    настройке    возможно    использовать     перехват
        предопределенных событий 1С и FormEx открытых форм и глобального модуля.

3. При изменении настройки данные об этом сохраняются в реестре Windows.
[HKEY_CURRENT_USER\\Software\\1C\\1Cv7\\7.7\\Options\\1C++ Components & Class\\НаименованиеИБ\\V7\\Default]

При следующей загрузке 1С++ все настройки будут автоматически загружены.

.. _Действие настроек:

4. Отключение настроек "ТаблицаИсходнаяТаблица", "EnableTurboBL",
"ПерехватитьСобытияГК" будет выполнено только после перезагрузки 1С, хотя
изменения в реестр будут записаны сразу же.

5. Все настройки автоматически загружаются и соответственно
выполняются все необходимые действия при загрузке 1С++.
Например, при включенной настройке "EnableTurboBL" будет включена
поддержка TurboBL в 1С++.

=====================================================================
Методы
=====================================================================
..	<chminfo split="0" splitchild="1">
		<insert nodes="//common/propsmethods/*"/>
	</chminfo>

.. _Получить:

Получить / Get
------------------------------------------------
	**Синтаксис:** Получить(ИмяНастройки)

	**Параметры:**
		- **ИмяНастройки** - тип: Строка. См. `Список настроек`_

    **Возвращает:** тип: Число. Состояние настройки - 0 (выключена) или 1 (включена).

	**Описание:** Получает состояние настройки.

    В случае, если настройки с таким именем не существует, выдается исключение.
    В случае, если переданный параметр не является строкой, выдается исключение.

.. _Установить:

Установить / Set
------------------------------------------------
	**Синтаксис:** Установить(ИмяНастройки, ФлагВключенияНастройки)

	**Параметры:**
		- **ИмяНастройки** - тип: Строка. См. `Список настроек`_
		- **ФлагВключенияНастройки** - тип: Число. 0 (выключить) или 1 (включить).

	**Описание:** Устанавливает новое значение настройки, если новое
	значение не совпадает с существующим значением.

    В случае, если настройки с таким именем не существует, выдается исключение.
    В случае, если переданный параметр не является строкой, выдается исключение.

.. _Включить:

Включить / Setup
------------------------------------------------
	**Синтаксис:** Включить(ИмяНастройки)

	**Параметры:**
		- **ИмяНастройки** - тип: Строка. См. `Список настроек`_

	**Описание:** Включает настройку, если она была выключена. Действует
	сразу не для всех настроек. См. `Действие настроек`_

    В случае, если настройки с таким именем не существует, выдается исключение.
    В случае, если переданный параметр не является строкой, выдается исключение.

.. _Сбросить:

Сбросить / Clear
------------------------------------------------
	**Синтаксис:** Сбросить(ИмяНастройки)

	**Параметры:**
		- **ИмяНастройки** - тип: Строка. См. `Список настроек`_

	**Описание:** Выключает настройку, если она была включена.

    В случае, если настройки с таким именем не существует, выдается исключение.
    В случае, если переданный параметр не является строкой, выдается исключение.
