# Работа с переменными в редакторе загрузки данных

Переменная в Qlik Sense является контейнером, содержащим статическое значение или вычисление, например числовое или буквенно-числовое значение. При использовании переменной в приложении любое изменение, выполненное в переменной, применяется везде, где эта переменная используется. Переменные можно определить в окне обзора переменных или в скрипте с помощью редактора загрузки данных. Для установки значения переменной можно использовать операторы Let или Set в скрипте загрузки данных.

Примечание к подсказкеПри редактировании листа можно также работать с переменными Qlik Sense с помощью окна обзора переменных. [Использование переменных в выражениях](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)

## Обзор

Если первый символ в значении переменной — это знак равенства «=», то программа Qlik Sense рассчитывает значение по формуле (выражение Qlik Sense) и выводит или возвращает результат, а не визуальное написание формулы.

При использовании вместо переменной подставляется ее значение. Переменные можно использовать в скрипте для расширения со знаком доллара и в различных операторах управления. Это очень удобно, если одна и та же строка повторяется в скрипте множество раз, например путь.

В начале выполнения скрипта программа Qlik Sense устанавливает некоторые особые системные переменные независимо от их предыдущих значений.

## Определение переменной

Переменные дают возможность хранить статические значения или результат вычислений. При определении переменной используйте следующий синтаксис:

[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)[](https://help.qlik.com/en-US/sense/Subsystems/Hub/Content/Sense_Hub/Scripting/work-with-variables-in-data-load-editor.htm)set variablename = string

или

let variable = expression

Оператор Set используется для присвоения строки. Он присваивает переменной текст справа от знака равенства. Оператор Let оценивает выражение справа от знака равенства во время выполнения скрипта и присваивает результат выражения переменной.

В переменных учитывается регистр.

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

`set x =  3 + 4; //` переменная получит в качестве значения строку '3 + 4'.

`let x = 3 + 4; //` возвращает 7 в качестве значения.

`set x = Today(); //` возвращает 'Today()' в качестве значения.

`let x = Today(); //` возвращает в качестве значения сегодняшнюю дату, например ‘9/27/2021’.

### Именование переменных

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

## Дополнительные параметры при определении переменных

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

### Ограничение значений переменных

Можно использовать операторы Constrain для ограничения переменных скрипта конкретными определениями, предотвращая загрузку нежелательных значений. Ограничивающие операторы можно использовать для обеспечения качества и повышенной безопасности для аналитических приложений.

Для получения дополнительной информации см. раздел [Constrain](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Constrain.htm).

### Определение переменных только для скрипта

Можно использовать системную переменную ScriptOnlyVariables для установки переменных только для скрипта. Переменная только для скрипта доступна только в Скрипте загрузки и не отображается, например, в виде листа в приложении.

Для получения дополнительной информации см. раздел [ScriptOnlyVariables](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/ScriptOnlyVariables.htm).

### Удаление переменных

Вы можете использовать оператор Drop variable, чтобы удалить переменные в скрипте. Удаление переменной полезно, когда вы хотите использовать переменную только для выполнения расчетов или определения полей в контексте модели данных.

Для получения дополнительной информации см. раздел [Drop variable](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Drop-Variable.htm).

## Удаление переменной

Если удалить переменную из скрипта и перезагрузить данные, переменная останется в приложении. Если вы хотите полностью удалить переменную из приложения, можно выполнить любое из следующих действий:

* Удалите переменную из диалогового окна переменных.

* Удалите переменную в скрипте с помощью оператора [Drop variable](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ScriptRegularStatements/Drop-Variable.htm).

* Установите переменные, которые не нужны в диалоговом окне переменных, как переменные только для скрипта, используя системную переменную [ScriptOnlyVariables](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/ScriptOnlyVariables.htm) в скрипте.

Для получения дополнительной информации см. раздел [Удаление переменной](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/delete-variable-using-dialog.htm).

## Загрузка значения переменной в качестве значения поля

Для загрузки значения переменной в качестве значения поля в оператор LOAD и получения расширения со знаком доллара в виде текста, а не числового значения или выражения, необходимо заключить развернутую переменную в одинарные кавычки.

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

```
IF $(ScriptErrorCount) >= 1 THEN
   LOAD '$(ScriptErrorList)' AS Error AutoGenerate 1;
END IF
```

## Вычисление переменной

Существует несколько способов использования переменных с вычисляемыми значениями в программе Qlik Sense. Результат зависит от того, как это будет определено и названо в выражении.

В этом примере загружаются некоторые встроенные данные:

```
LOAD * INLINE [
    Dim, Sales
    A, 150
    A, 200
    B, 240
    B, 230
    C, 410
    C, 330
];
```

Давайте определим две переменные.

```
Let vSales  = 'Sum(Sales)' ;
```

Let vSales2 = '=Sum(Sales)' ;

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

При использовании неизмененной переменной vSales, например, в мере, результатом будет строка Sum(Sales), то есть вычисления не будут выполнены.

В случае добавления расширения со знаком доллара и вызова элемента $(vSales) в выражении переменная будет расширена, а сумма Sales отобразится.

Наконец, если будет вызван элемент $(vSales2), вычисление переменной будет выполнено до ее расширения. Это означает, что отображаемый результат — это итоговая сумма элементов Sales. Разницу использования элементов =$(vSales) и =$(vSales2) в качестве выражений мер можно увидеть в этой диаграмме с отображением результатов:

Результаты

| Dim | $(vSales) | $(vSales2) |
| --- | --- | --- |
| A | 350 | 1560 |
| B | 470 | 1560 |
| C | 740 | 1560 |

Как можно увидеть, элемент $(vSales) показывает частичную сумму для значения измерения, а элемент $(vSales2) показывает итоговую сумму.

Доступны следующие переменные скрипта:

* [Ошибка переменных](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ErrorVariables/ErrorVariables.htm)
* [Переменные интерпретации числа](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/NumberInterpretationVariables/number-interpretation-variables.htm)
* [Системные переменные](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/SystemVariables/system-variables.htm)
* [Переменные обработки значений](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/ValueHandlingVariables/value-handling-variables.htm)

* [Расширения со знаком доллара](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Scripting/dollar-sign-expansions.htm)
* [Использование переменных в выражениях](https://help.qlik.com/ru-RU/sense/May2026/Subsystems/Hub/Content/Sense_Hub/Variables/work-with-variables.htm)