Перейти к содержанию
bslls:CommonModuleVariables

Объявление переменных в общем модуле (CommonModuleVariables)

  • Тип: Ошибка
  • Важность: Критичный
  • Включена по умолчанию: Да
  • Теги: standard, design

Описание диагностики

В платформе 1С:Предприятие общие модули функционируют как библиотеки процедур и функций и не поддерживают сохранение состояния между вызовами. Использование оператора "Перем" на уровне общего модуля приводит к тому, что переменная инициализируется заново при каждом обращении к модулю.

Для работы с состоянием необходимо использовать передачу контекста через параметры процедур и функций, структуры данных или платформенные механизмы кэширования.

Примеры

Ошибочный код:

Перем КэшЗначений; // Переменная потеряет значение после завершения вызова

Функция ПолучитьКэш() Экспорт
    Возврат КэшЗначений;
КонецФункции
Корректный код:
Функция ПолучитьКэш(ТекущийКэш) Экспорт // Состояние передается явно через параметры
    Возврат ТекущийКэш;
КонецФункции

Источники

Источник: Какие переменные, процедуры и функции можно использовать в общих модулях?

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

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

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