Руководство разработчика

Глобальные переменные

Глобальные переменные используются для хранения данных в общей для всех функций зоне видимости. В отличие от локальных переменных, глобальные переменные объявляются в зоне определений, а не в формульном разделе или тексте функции. Время жизни глобальные переменных равно времени работы программы. При старте программы глобальные переменные инициализируются заданным значением или значением по умолчанию. В процессе выполнения программы значения глобальные переменных могут быть получены и изменены в формульном разделе и в функциях. Для объявления общей переменной используется ключевое слово ПЕРЕМ. Допускаются два способа задания типа общей переменной. В первом случае тип указывается непосредственно после ПЕРЕМ, а имя переменной отделяется от имени типа двоеточием. Тип с указанным именем уже должен быть объявлен. Второй способ заключается в определении типа по инициализирующему значению. Явно указанный тип и тип инициализирующего выражения должны совпадать при одновременном использовании. Инициализирующее выражение должно быть константным, т.е. не должно содержать вызовов функций и ссылок на переменные. Допускается одновременное объявление нескольких переменных одного типа без инициализирующих выражений. В этом случае после указания типа и двоеточия следует список имен объявляемых переменных через запятую. Любое объявление общей переменной должно заканчиваться точкой с запятой.

Синтаксис:

ПЕРЕМ [ <имя типа> или *: ] <имя переменной> [ = <константное выражение> ];

или

ПЕРЕМ <имя типа> или *: <имя переменной1> [,<имя переменной2>, [,...] ];

Примеры:

ПЕРЕМ нач_пер = 01.01.2016; // правильно: переменная типа дата
ПЕРЕМ СТРОКА: с1, с2; // правильно: переменные строкового типа

// правильно: инициализация константным выражением, типы совпадают 
ПЕРЕМ ЧИСЛО: число1 = 200 * 12.5 / 3 + 123; 

// ошибка: инициализация неконстантным выражением, используется переменная
ПЕРЕМ ЧИСЛО: число2 = число1; 
// ошибка: инициализация неконстантным выражением, используется функция
ПЕРЕМ СТРОКА: стр = СТР(100); 

КОНСТ пи = 3.14; // определяем константу 
// правильно: константное инициализирующее выражение
ПЕРЕМ пи2= пи*пи;

ПЕРЕМ ДАТА: дата1 = "21.11.2016"; // ошибка: несоответствие типов

ПЕРЕМ Цвет: цвет_фона; // ошибка: тип Цвет еще не объявлен
ТИП Цвет [ ЧИСЛО: красный, зеленый, синий; ] // объявление типа Цвет
ПЕРЕМ цвет_текста = Цвет[ синий = 255 ]; // правильно

См. также: