---
metadata:
  - name: generator
    content: Diplodoc Platform v5.62.0
style:
  - _assets/styles/custom.css
  - _assets/fonts-golos-text.css
  - _assets/styles/hero-gradient.css
  - _assets/styles/hero-decoration.css
script:
  - _assets/scripts/latex-trust.js
description: Руководство пользователя (новая версия) - Операции над переменными
title: Операции над переменными
vcsPath: sintaksis-shablonov/upravliaiushchie-struktury/operatsii-nad-peremennymi.md
alternate:
  - href: >-
      sintaksis-shablonov/upravliaiushchie-struktury/operatsii-nad-peremennymi.md
    type: text/markdown
    title: Markdown version
  - href: ../../llms.txt
    rel: describedby
theme: _assets/style/theme.css
---

# Операции над переменными

Значение переменной внутри документа задается командой «set».
## Простая установка значения

```jinja
{{ string_example }}
{% set string_example = "Привет, мир!" %}
{{ string_example }}
```


**Результат:**
Hello, world!
Привет, мир!

«set» работает только внутри документа. Если переменной с таким названием в проекте нет, она появится лишь в этом документе: в данных проекта и в других документах ее не будет. Если переменная в проекте есть, «set» меняет ее значение тоже только в этом документе — в данных проекта значение остается прежним.

```jinja
{% set parrot_number = 38 %}
{{ parrot_number }}
```


**Результат:**
38

Значение в кавычках ("") становится текстом, без кавычек — числом.
## Установка значения через переменные

```jinja
{% set noahs_ark_capacity = species_number * 2 %}
{% set counter = counter + 1 %}
{% set full_title = document_type + document_name %}
```


## Установка многострочного значения
Многострочное значение записывается между командами «set» и «endset» (такое значение всегда текстовое):

```jinja
{% set variable_examples %}
{{ string_example }}     - пример строки
{{ number_example }}     - пример числа
{{ date_example }}       - пример даты
{{ boolean_example }}    - пример логического значения
Пример таблицы:
{{ table_example }}
{% endset %}
```


Теперь переменную можно вывести:

```jinja
{{ variable_examples }}
```


**Результат:**
Привет, мир!     - пример строки
-3.14159     - пример числа
16.04.2077       - пример даты
false    - пример логического значения
Пример таблицы:
| Эта | Таблица |
|---|---|
| отображается | через |
| переменную | ! |



## Использование фильтров
К устанавливаемому значению можно применить фильтры:

```jinja
{% set shout = string_example | upper %}
{{ shout }}
```


**Результат:**
ПРИВЕТ, МИР!


```jinja
{{ filter_ex1 }}
{% set filter_ex1 = filter_ex1 | upper_first %}
{{ filter_ex1 }}
```


**Результат:**
текст
Текст

## Область действия
Значение, заданное через «set», действует до конца документа. Но если «set» стоит внутри цикла (подробнее см. [«Циклы»](https://docs.gost-on.ru/guide/sintaksis-shablonov/upravliaiushchie-struktury/tsikly.html)), значение действует только внутри этого цикла.

```jinja
{% set parrot_number = 38 %}
{% for n in list_1 %}
{% set parrot_number = parrot_number + 1 %}
{{ parrot_number }} - отображение в цикле
{% endfor %}
{{ parrot_number }} - отображение вне цикла
```


**Результат:**
39 - отображение в цикле
38 - отображение вне цикла
