6.11 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»)
❓ 6.11 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):
📚 Документация
Заголовок раздела «📚 Документация»-
ИТС: Имена объектов метаданных в конфигурациях https://its.1c.ru/db/v8std/content/550/hdoc
-
ИТС: Имя, синоним, комментарий https://its.1c.ru/db/v8std/content/474/hdoc
-
ИТС: Правила создания общих модулей https://its.1c.ru/db/v8std/content/469/hdoc
🧠 Краткая теория
Заголовок раздела «🧠 Краткая теория»Имена объектов и переменных должны быть понятными и однозначными.
Стандарты 1С отдельно описывают:
- общие правила именования объектов;
- правила именования общих модулей;
- способы предотвращения конфликтов имён.
Общие правила именования
Заголовок раздела «Общие правила именования»Имя объекта рекомендуется строить на основе его синонима:
Синоним: Наборы дополнительных реквизитов и сведений ↓Имя: НаборыДополнительныхРеквизитовИСведенийПри этом:
- пробелы и недопустимые символы удаляются;
- союзы и предлоги можно опускать;
- длина имени — не более 80 символов;
- рекомендуется избегать имён, создающих неоднозначность.
Например, не рекомендуется использовать имена:
ДокументСправочникРегистрСведенийИмена общих модулей
Заголовок раздела «Имена общих модулей»В имени общего модуля обычно отражается контекст его использования:
ОбщегоНазначенияОбщегоНазначенияСерверОбщегоНазначенияВызовСервераОбщегоНазначенияКлиентОбщегоНазначенияКлиентСерверТакже применяются постфиксы:
ГлобальныйПолныеПраваПовтИспПереопределяемыйДля серверных модулей постфикс Сервер в отдельных случаях используется для предотвращения конфликта со свойствами глобального контекста.
Пример: ОтчетыСервер
Откуда возникает конфликт
Заголовок раздела «Откуда возникает конфликт»Для неглобального общего модуля экспортные методы вызываются через имя модуля:
ОбщегоНазначения.Выполнить();То есть:
имя общего модуля(ОбщегоНазначения) ↓Выполнить()Имя общего модуля участвует в глобальном контексте.
Если такое имя уже занято платформой, возникает конфликт имён.
Например:
ОтчетыДокументы— уже являеются свойством глобального контекста.
Что меняет свойство Глобальный
Заголовок раздела «Что меняет свойство Глобальный»Если у общего модуля установлено:
Глобальный = Истинаего экспортные процедуры и функции становятся непосредственно частью глобального контекста.
Неглобальный общий модуль
МойМодуль.Выполнить();Глобальный общий модуль
Выполнить();У глобального общего модуля имя самого модуля при обращении к экспортному методу не используется.
🧠 Ключевая мысль
Заголовок раздела «🧠 Ключевая мысль»Нужно различать два механизма.
Неглобальный модуль
ИмяМодуля.Метод();Глобальный модуль
Метод();Поэтому при совпадении имени общего модуля с именем свойства глобального контекста важно учитывать свойство Глобальный.