Переменные 1С

Переменные 1С могут быть объявлены внутри функции или процедуры, а также в начале модуля (кроме общих модулей). Если переменная 1С объявлена в начале модуля — то ее можно назвать глобальной переменной 1С — для этого модуля.

Чтобы иметь к глобальной переменной 1С из другого модуля — необходимо объявить ее экспортной (слово ЭКСПОРТ после имени переменной 1С). Чтобы обратиться к такой переменной 1С необходимо написать имя модуля, точка, имя экспортной переменной 1С.

Далее — подробнее про переменные 1С, с примерами.

Создание переменной 1С в модуле, например:

ПЕРЕМ Переменная1;

Начальное значение у такой переменной 1С будет Неопределено (см. далее), пока далее в коде не будет присвоено явно другое значение.

ПЕРЕМ можно использовать только в начале модуля или в начале процедуры/функции. Нельзя использовать в общих модулях.

Так как переменную 1С гораздо проще создать, когда она нужна, просто назначив ей значение, например:
Переменная1 = 22;
, то ПЕРЕМ обычно используют для создания глобальных (экспортных) переменных 1С.

Простая переменная 1С доступна («видна») в том модуле (в той процедуре/функции), где она создана. Если же переменная 1С глобальная, то она будет видна из других модулей.

Особенностью является то, что переменные 1С объявленные внутри цикла, условия Если — видны во всей функции/процедуре, а не только в объявленной части модуля. Если при выполнении в данное «Если» захода не было, то значение переменной НЕОПРЕДЕЛЕНО.

Пример создания экспортной переменной 1С:
[VIP_CONTENT]

ПЕРЕМ Переменная1 ЭКСПОРТ; //в самом начале модуля
Переменная1 = 22; //в самом конце модуля, первоначальное значение

[/VIP_CONTENT]

Пример доступа к экспортной переменной 1С, созданной в модуле объекта справочника Номенклатура:
[VIP_CONTENT]

НоменклатураОбъект = Справочники.Номенклатура.СоздатьНовыйЭлемент();
Сообщить(НоменклатураОбъект.Переменная1); //сообщит 22

[/VIP_CONTENT]

Пример доступа к экспортной переменной 1С, созданной в модуле формы элемента справочника Номенклатура:
[VIP_CONTENT]

НоменклатураОбъект = Справочники.Номенклатура.СоздатьНовыйЭлемент();
НоменклатураФормаЭлемента = НоменклатураОбъект.ПолучитьФорму("ФормаЭлемента");
Сообщить(НоменклатураФормаЭлемента.Переменная1); //сообщит 22

[/VIP_CONTENT]