Skip to content

Latest commit

 

History

History
105 lines (66 loc) · 3.07 KB

variable-value-type.md

File metadata and controls

105 lines (66 loc) · 3.07 KB

Переменная имеет тип значения

Система строгой типизации кода проверяет что каждая переменная имеет тип значения

Неправильно

Объявляемая локальная переменная в методе:

// @strict-types

Процедура Тест() Экспорт
	Перем ТестПеременная;
	
	// здесь код
КонецПроцедуры

Объявляемая переменная в модуле объекта и скрытая инициализация в каком-то методе:

// @strict-types

Перем ПараметрыОбъекта;

Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	ПараметрыОбъекта = НовыеПараметрыОбъекта();
	
	Если ЗначениеЗаполнено(ПараметрыОбъекта.Парам1) Тогда
		// здесь код
	КонецЕсли;
	
КонецПроцедуры

// Возвращаемое значение:
//  Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()
	
	Параметры = Новый Структура();
	Параметры.Вставить("Парам1", "Строковое значение");
	
	Возврат Параметры;
	
КонецФункции

Правильно

Инициализируйте локальную переменную с пустым значением по умолчанию:

// @strict-types

Процедура Тест() Экспорт
	ТестПеременная = 0;
	
	// здесь код
КонецПроцедуры

Инициализируйте переменную модуля значением по умолчанию в коде модуля и типизируйте строчным типизирующим комментарием в месте определения переменной.

// @strict-types

Перем ПараметрыОбъекта; // См. НовыеПараметрыОбъекта


Процедура ПередЗаписью(Отказ)
	
	Если ОбменДанными.Загрузка Тогда
		Возврат;
	КонецЕсли;
	
	Если ЗначениеЗаполнено(ПараметрыОбъекта.Парам1) Тогда
		// здесь код
	КонецЕсли;
	
КонецПроцедуры


// Возвращаемое значение:
//  Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()
	
	Параметры = Новый Структура();
	Параметры.Вставить("Парам1", "String value");
	
	Возврат Параметры;
	
КонецФункции

// Обязательная инициализация значения в коде модуля
ПараметрыОбъекта = НовыеПараметрыОбъекта();

См.