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

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

Переопределение зарезервированных имен — плохая практика программирования. Такие проблемы усложняют сопровождаемость кода. В дальнейшем может потребоваться рефакторинг кода.

Например, дана форма с реквизитом формы Задачи. Теперь из любого метода модуля формы, где доступен контекст формы, нельзя напрямую вызвать тип глобального менеджера объекта метаданных Задачи.

К зарезервированным имена относятся:

  • имена системных типов платформы (все, кроме группы "Свойства объектов метаданных"). Например, ТипЗаписиЗапроса или WebЦвета;
  • имена свойств глобального контекста. Например, Документы или ВнешниеОбработки;
  • имена общих модулей, с учетом доступности на клиенте и/или на сервере. Например, имя ОбщегоНазначенияКлиент нельзя использовать на клиенте, но на сервере таких ограничений нет.

Способы переопределения (перекрытия доступности) зарезервированных имен:

  • модуль объекта — с помощью реквизитов и/или табличных частей объекта;
  • модуль формы — с помощью реквизитов формы;
  • любой модуль — с помощью аргументов метода. Например:
Процедура ОбработатьЗадачи(Задачи)
    ...
КонецПроцедуры

Экранирование кода

// sonar:OverlappingReservedNames:off
// sonar:OverlappingReservedNames:on