Перейти к содержанию
v8cs:variable-value-type

Переменная имеет тип значения (variable-value-type)

  • Категория: bsl

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

Неправильно

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

// @strict-types

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

    // здесь код
КонецПроцедуры

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

// @strict-types

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

Процедура ПередЗаписью(Отказ)

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

    ПараметрыОбъекта = НовыеПараметрыОбъекта();

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

КонецПроцедуры

// Возвращаемое значение:
//  Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()

    Параметры = Новый Структура();
    Параметры.Вставить("Парам1", "Строковое значение");

    Возврат Параметры;

КонецФункции

Правильно

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

// @strict-types

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

    // здесь код
КонецПроцедуры

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

// @strict-types

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


Процедура ПередЗаписью(Отказ)

    Если ОбменДанными.Загрузка Тогда
        Возврат;
    КонецЕсли;

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

КонецПроцедуры


// Возвращаемое значение:
//  Структура:
// * Парам1 - Строка -
Функция НовыеПараметрыОбъекта()

    Параметры = Новый Структура();
    Параметры.Вставить("Парам1", "String value");

    Возврат Параметры;

КонецФункции

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

См.

Соответствие стандартам

Нет подтверждённых связей со стандартами.

Источник диагностики