Перекрытие зарезервированных имен
Переопределение зарезервированных имен — плохая практика программирования. Такие проблемы усложняют сопровождаемость кода. В дальнейшем может потребоваться рефакторинг кода.
Например, дана форма с реквизитом формы Задачи
. Теперь из любого метода модуля формы, где доступен контекст формы, нельзя напрямую вызвать тип глобального менеджера объекта метаданных Задачи
.
К зарезервированным имена относятся:
- имена системных типов платформы (все, кроме группы "Свойства объектов метаданных"). Например,
ТипЗаписиЗапроса
илиWebЦвета
; - имена свойств глобального контекста. Например,
Документы
илиВнешниеОбработки
; - имена общих модулей, с учетом доступности на клиенте и/или на сервере. Например, имя
ОбщегоНазначенияКлиент
нельзя использовать на клиенте, но на сервере таких ограничений нет.
Способы переопределения (перекрытия доступности) зарезервированных имен:
- модуль объекта — с помощью реквизитов и/или табличных частей объекта;
- модуль формы — с помощью реквизитов формы;
- любой модуль — с помощью аргументов метода. Например:
Процедура ОбработатьЗадачи(Задачи)
...
КонецПроцедуры
Экранирование кода
// sonar:OverlappingReservedNames:off
// sonar:OverlappingReservedNames:on