﻿# Глобальные константы в скриптах

> [HTML Version](global-constants.html)

Глобальные константы \[OBJECT\], \[OBJECT\] и \[OBJECT\] можно использовать в скриптах виджетов, бизнес‑процессов и модулей. Они позволяют получить доступ:

- \[OBJECT\] — ко всем разделам, а также к [глобальным параметрам](360009207779.md#parameter-types);

- \[OBJECT\] — ко всем приложениям, бизнес-процессам и другим компонентам на уровне раздела;

- \[OBJECT\] — к выбранным разделам или модулям, с которыми в настройках скрипта установлена [опциональная зависимость](optional-dependencies.md). Использование константы \[OBJECT\]** **в скрипте компонента не ограничивает его экспорт и импорт в другую компанию. Поэтому обращение к разделам или модулям через \[OBJECT\] подходит для разработки решений.

Для компонентов, созданных на уровне компании, в скриптах всегда доступна константа \[OBJECT\]. В компонентах, созданных на уровне раздела или приложения, и в модулях доступ к константам \[OBJECT\], \[OBJECT\]** **и** **\[OBJECT\]** **нужно разрешить в настройках скрипта.

Использование глобальных констант можно включить:

- для виджетов — на вкладке [Настройки](designer-tabs.md#access-settings) дизайнера интерфейсов;

- для бизнес-процессов — на вкладке [Скрипты](360028476691.md#settings) дизайнера бизнес-процессов;

- в модулях — в управлении модулем, в настройках следующих объектов:

	- действие типа **Скрипт** — на вкладке [Скрипты](script-activity.md#scripts-tab) (доступны константы  \[OBJECT\]** **и \[OBJECT\]);

	- методы API — на вкладке [Скрипты](extention-api.md#access-to-global-constants) (доступны константы \[OBJECT\]** **и \[OBJECT\]);

	- обработчик событий типа **Запуск скрипта** — на вкладке [Скрипты](events_processing.md#access-to-global-constants) (доступна только константа \[OBJECT\]).

Об использовании констант \[OBJECT\] и \[OBJECT\] читайте в справке ELMA365 TS SDK в статье [«Глобальный контекст и изоляция»](https://tssdk.elma365.com/ru/latest/pages/quick-start/intro_globals.html). Использование константы \[OBJECT\] описано в статье [«Опциональные зависимости»](optional-dependencies.md#use-imports).

## Особенности экспорта при использовании глобальных констант

Обратите внимание, использование глобальных констант влияет на экспорт компонентов системы, а именно:

1. Если скрипт содержит константу \[OBJECT\], выгрузка скрипта невозможна. Поэтому недоступен экспорт любого компонента системы (раздела, приложения, модуля), в котором этот скрипт применяется.

2. Если скрипт содержит константу \[OBJECT\] и используется на уровне приложения, то:

	- экспорт этого приложения недоступен;

	- экспорт раздела, в котором находится такое приложение, доступен. Исключением является [экспорт системного раздела](system-workspaces.md#part-of-solution) в составе решения. Такой экспорт выполняется на уровне приложений и поэтому недоступен.

3. Если скрипт содержит константу \[OBJECT\], при экспорте компонента, в котором он находится, отобразится некритичное предупреждение о наличии [опциональной зависимости](optional-dependencies.md). Это означает, что для компонента установлена связь с определённым разделом или пользовательским модулем, но выгрузку можно успешно завершить.

**(global-constants-1.png)**

При импорте отобразится аналогичное предупреждение. Импорт можно завершить, даже если в компании отсутствует компонент, от которого установлена опциональная зависимость. Однако скрипты, в которых используется константа \[OBJECT\], могут работать некорректно, если зависимость не найдена. 

При разработке в скрипте рекомендуется добавить блок, который выполняется, если обратиться к выбранному разделу или модулю невозможно. Например, чтобы выводить понятную для пользователя ошибку.

Кроме того, вы можете [создать решение](create-solution.md) и включить в него компонент, в котором написан скрипт с константой \[OBJECT\], и раздел или модуль, с которым создана опциональная зависимость.

**Важно**: в версиях системы ниже 2023.11 константа **Imports** недоступна. О том, как сделать решение совместимым с более ранними версиями, читайте в статье [«Опциональные зависимости»](optional-dependencies.md#compatible-with-older-versions).