Перейти к содержимому

6.11 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»)

Telegram → Просто о платформе 1С

❓ 6.11 Имя общего модуля может совпадать с именем свойства глобального контекста (например «Отчеты»):


Имена объектов и переменных должны быть понятными и однозначными.

Стандарты 1С отдельно описывают:

  • общие правила именования объектов;
  • правила именования общих модулей;
  • способы предотвращения конфликтов имён.

Имя объекта рекомендуется строить на основе его синонима:

Синоним: Наборы дополнительных реквизитов и сведений
Имя: НаборыДополнительныхРеквизитовИСведений

При этом:

  • пробелы и недопустимые символы удаляются;
  • союзы и предлоги можно опускать;
  • длина имени — не более 80 символов;
  • рекомендуется избегать имён, создающих неоднозначность.

Например, не рекомендуется использовать имена:

Документ
Справочник
РегистрСведений

В имени общего модуля обычно отражается контекст его использования:

ОбщегоНазначения
ОбщегоНазначенияСервер
ОбщегоНазначенияВызовСервера
ОбщегоНазначенияКлиент
ОбщегоНазначенияКлиентСервер

Также применяются постфиксы:

Глобальный
ПолныеПрава
ПовтИсп
Переопределяемый

Для серверных модулей постфикс Сервер в отдельных случаях используется для предотвращения конфликта со свойствами глобального контекста.
Пример: ОтчетыСервер


Для неглобального общего модуля экспортные методы вызываются через имя модуля:

ОбщегоНазначения.Выполнить();

То есть:

имя общего модуля(ОбщегоНазначения)
Выполнить()

Имя общего модуля участвует в глобальном контексте.

Если такое имя уже занято платформой, возникает конфликт имён.

Например:

Отчеты
Документы

— уже являеются свойством глобального контекста.


Если у общего модуля установлено:

Глобальный = Истина

его экспортные процедуры и функции становятся непосредственно частью глобального контекста.

Неглобальный общий модуль

МойМодуль.Выполнить();

Глобальный общий модуль

Выполнить();

У глобального общего модуля имя самого модуля при обращении к экспортному методу не используется.


Нужно различать два механизма.

Неглобальный модуль

ИмяМодуля.Метод();

Глобальный модуль

Метод();

Поэтому при совпадении имени общего модуля с именем свойства глобального контекста важно учитывать свойство Глобальный.