Глобальные переменные
Глобальные переменные используются для хранения данных в общей для всех функций зоне видимости. В отличие от локальных переменных, глобальные переменные объявляются в зоне определений, а не в формульном разделе или тексте функции. Время жизни глобальные переменных равно времени работы программы. При старте программы глобальные переменные инициализируются заданным значением или значением по умолчанию. В процессе выполнения программы значения глобальные переменных могут быть получены и изменены в формульном разделе и в функциях. Для объявления общей переменной используется ключевое слово ПЕРЕМ. Допускаются два способа задания типа общей переменной. В первом случае тип указывается непосредственно после ПЕРЕМ, а имя переменной отделяется от имени типа двоеточием. Тип с указанным именем уже должен быть объявлен. Второй способ заключается в определении типа по инициализирующему значению. Явно указанный тип и тип инициализирующего выражения должны совпадать при одновременном использовании. Инициализирующее выражение должно быть константным, т.е. не должно содержать вызовов функций и ссылок на переменные. Допускается одновременное объявление нескольких переменных одного типа без инициализирующих выражений. В этом случае после указания типа и двоеточия следует список имен объявляемых переменных через запятую. Любое объявление общей переменной должно заканчиваться точкой с запятой.
Синтаксис:
ПЕРЕМ [ <имя типа> или *: ] <имя переменной> [ = <константное выражение> ];
или
ПЕРЕМ <имя типа> или *: <имя переменной1> [,<имя переменной2>, [,...] ];
Примеры:
ПЕРЕМ нач_пер = 01.01.2016; // правильно: переменная типа дата ПЕРЕМ СТРОКА: с1, с2; // правильно: переменные строкового типа // правильно: инициализация константным выражением, типы совпадают ПЕРЕМ ЧИСЛО: число1 = 200 * 12.5 / 3 + 123; // ошибка: инициализация неконстантным выражением, используется переменная ПЕРЕМ ЧИСЛО: число2 = число1; // ошибка: инициализация неконстантным выражением, используется функция ПЕРЕМ СТРОКА: стр = СТР(100); КОНСТ пи = 3.14; // определяем константу // правильно: константное инициализирующее выражение ПЕРЕМ пи2= пи*пи; ПЕРЕМ ДАТА: дата1 = "21.11.2016"; // ошибка: несоответствие типов ПЕРЕМ Цвет: цвет_фона; // ошибка: тип Цвет еще не объявлен ТИП Цвет [ ЧИСЛО: красный, зеленый, синий; ] // объявление типа Цвет ПЕРЕМ цвет_текста = Цвет[ синий = 255 ]; // правильно