1C-Company / v8-code-style

Расширение для 1C:EDT, которое помогает разрабатывать конфигурации/приложения по стандартам 1С для платформы "1С:Предприятие 8".
Eclipse Public License 2.0
175 stars 53 forks source link

Стандарт 639: Не рекомендуется использовать экспортные переменные модулей #1178

Closed iArtemv closed 2 years ago

iArtemv commented 2 years ago

Название проверки

Запрет экспортных глобальных переменных модуля

Английское название проверки

Export variables

Правило анализа кода/метаданных

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

Мета-информация (пожалуйста, заполните если знаете):

Параметры проверки

Текст ошибки

Пример некорректного решения


Перем КонвертацияФайлов Экспорт;

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

  Если КонвертацияФайлов Тогда 
  //...
  КонецЕсли;

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

Описание, почему так делать нельзя

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

Пример корректного решения

Для передачи параметров между обработчиками подписок на события и в обработчики событий модуля объекта из внешнего кода рекомендуется использовать свойство объекта ДополнительныеСвойства

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

  Если ДополнительныеСвойства.Свойство("КонвертацияФайлов") Тогда 
  //...
  КонецЕсли;

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

// вызывающий код
ФайлОбъект.ДополнительныеСвойства.Вставить("КонвертацияФайлов", Истина);
ФайлОбъект.Записать();

Дополнительные материалы