-
Notifications
You must be signed in to change notification settings - Fork 121
Description
Описание проблемы, ошибки, которую надо диагностировать
В общих модулях 1С нельзя объявлять переменные модуля оператором Перем. Общий модуль может содержать только процедуры и функции. Значения переменных модуля между вызовами в общем модуле не сохраняются (платформа их не поддерживает). Объявление Перем ИмяПеременной; в общем модуле является ошибочной конструкцией. Главная проблема это когда мы начинаем писать код в VSCode, где узнаем о том, что ошибаемся гораздо позже.
Диагностика должна срабатывать на любое объявление переменной модуля (Перем ...) в модуле, который является модулем объекта метаданных «Общий модуль» (CommonModule).
А лучше расширить эту диагностику на другие особенности объясления переменных в разных объектах метаданных.
Ссылка на источник, подтверждающее нарушение либо обоснование наличия проблемы
- Какие переменные, процедуры и функции можно использовать в общих модулях? (ИТС, методическая поддержка 1С:Предприятия 8) - в общих модулях допускаются только процедуры и функции, переменные модуля не поддерживаются.
- Ограничение платформы: общие модули работают как подключаемые библиотеки; состояние между вызовами в них не хранится через
Перем.
Параметры диагностики
Тип Статья на русском
- 🐜 Ошибка
- 👮 Уязвимость
- 💂♂️ Потенциальная уязвимость
- 💩 Качество кода
-
Другое
Важность Статья на русском
- 💔 Блокирующая / Blocker
- ❤️ Критическая / Critical
- 💛 Важная / Major
- 💙 Незначительная / Minor
- 💚 Информационная / Info
- 💞 Другое
Тэги Статья на русском
-
STANDARD- "Нарушение стандартов 1С" -
LOCKINOS- "Не будет работать в другой ОС" -
SQL- "Проблема с запросом" -
PERFORMANCE- "Проблема производительности" -
BRAINOVERLOAD- "Непонятный код" -
BADPRACTICE- "Плохая практика программирования" -
CLUMSY- "Излишние действия" -
DESIGN- "Ошибка в проектировании" -
SUSPICIOUS- "Подозрительный код" -
UNPREDICTABLE- "Непредсказуемо работающий код" -
DEPRECATED- "Устаревшая функциональность" -
ERROR- "Ошибочная конструкция" -
LOCALIZE- "Проблемы локализации"
Время на исправление (минут)
5–15 (удалить объявление Перем, вынести состояние в параметры, кэш в структуре/одноразовую инициализацию и т.п.).
Дополнительная информация
- Область срабатывания: только модули метаданных с типом «Общий модуль». В модулях объектов, форм, менеджеров и т.д.
Перемдопустим - диагностика не должна срабатывать.