Перейти к основному содержимому

Переменные

В Python переменная появляется в момент присваивания: достаточно записать a = 5, и имя a сразу связывается со значением. У этого подхода есть обратная сторона. Тип определяется во время выполнения программы, и одна и та же переменная в разные моменты времени может хранить число, строку или список. Если в имени переменной окажется опечатка или будет передано значение не того типа, программа не сообщит об этом заранее — ошибка проявит себя только в момент работы, нередко уже у пользователя.

В языке «1С:Элемент» тип каждой переменной известен заранее. Поэтому переменную принято объявлять явно — указывать специальный модификатор и при необходимости тип. Это позволяет обнаружить ошибки несоответствия типов на этапе компиляции, а не во время работы программы. Такой подход называют статической типизацией.

В языке «1С:Элемент» существует несколько видов переменных в зависимости от их назначения. Обычные переменные объявляются внутри тела метода, а константы — на уровне скрипта, вне какого-либо метода. У каждой переменной есть модификатор, который указывается перед именем и определяет, можно ли ее изменять:

  • Модификатор пер — переменная, доступная для записи и чтения.
  • Модификатор знч — переменная, доступная только для чтения: ее значение нельзя перезаписать в дальнейшем коде. Объявляйте переменную с помощью данного модификатора, если ее значение не должно меняться.
  • Модификатор исп — переменная, содержащая используемый ресурс (например, открытый файл), который должен быть автоматически закрыт при выходе из области видимости. При этом у переменной вызывается метод Закрыть().

Константу можно объявить с помощью модификатора конст. Значение константы нельзя изменить.

Тип переменной в языке «1С:Элемент» обычно определяется автоматически — по значению, которое присваивается ей при объявлении. Указывать тип явно через двоеточие иногда требуется и при наличии начального значения — например, когда нужно, чтобы переменная могла хранить значения более общего типа, чем тот, что выводится автоматически.

В Python переменная может в любой момент хранить значение любого типа. В языке «1С:Элемент» тип фиксируется при объявлении. Если требуется, чтобы переменная могла принимать значения нескольких типов, используют составной тип — типы перечисляют через вертикальную черту (например, Число|Строка). При объявлении переменной составного типа нужно либо явно задать начальное значение, либо включить в состав типов Неопределено. Тип Неопределено в списке типов явно не указывается, вместо него используют сокращение ?.

Python
PI = 3.14

def define_variables():
a: int
a = 5

b = 10

c = None
c = "Привет"
c = 100
«1С:Элемент»
конст ПИ = 3.14

метод ОпределитьПеременные()
пер А: Число
А = 5

знч Б = 10 // Нельзя изменить

пер С: Число|Строка|? // Начальное значение — Неопределено
С = "Привет"
С = 100
;