К статье
Практический материал

Разработка и Конфигурация · 10 мин

Как получить имя конфигурации в 1С

Как узнать имя конфигурации 1С: через конфигуратор, встроенный язык (Метаданные.Имя), функциональные опции и запросы. Примеры кода для 8.2 и 8.3.

Имя конфигурации в 1С — это внутренний идентификатор, который задаёт разработчик в конфигураторе и который платформа хранит в метаданных. Оно нужно при написании универсальных обработок, обменов, обновлений и диагностике: например, чтобы код понял, работает он в «Бухгалтерии предприятия» или в «Управлении торговлей», и выбрал правильную ветку логики.

Получить имя можно несколькими способами: визуально в конфигураторе, программно через объект Метаданные, через функциональные опции и стандартные подсистемы БСП, а также через внешние инструменты вроде окна «О программе». Выбор зависит от того, где вы находитесь — в режиме разработки или в пользовательском сеансе — и что именно нужно: имя для кода, для отчёта или для техподдержки.

Ниже разобраны все рабочие методы с примерами кода для платформы 8.3, типичные ошибки и способы проверить результат. Материал применим как к типовым конфигурациям, так и к самописным решениям.

Что такое имя конфигурации и чем оно отличается от синонима

В метаданных конфигурации есть два ключевых строковых свойства: Имя и Синоним. Имя — это технический идентификатор без пробелов (например, БухгалтерияПредприятия), который используется в коде, в путях метаданных и при программной идентификации. Синоним — человекочитаемое представление («Бухгалтерия предприятия»), которое видит пользователь в заголовках и меню.

Кроме того, у конфигурации есть свойства Версия, Поставщик и КраткаяИнформация. Вместе они образуют «паспорт» прикладного решения. Для обменов и интеграций чаще всего требуется связка «имя + версия», потому что одно имя не гарантирует совместимость форматов данных.

Как узнать имя конфигурации в конфигураторе без кода

Если у вас есть доступ к конфигуратору, имя видно сразу. Откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию» — в корне дерева метаданных отображается узел с именем конфигурации. Для просмотра и изменения свойств выделите корневой узел, нажмите правую кнопку мыши и выберите «Свойства»: в палитре свойств будут поля «Имя», «Синоним», «Версия», «Поставщик».

В пользовательском режиме (1С:Предприятие) имя и версию можно посмотреть через меню «Справка → О программе» (в интерфейсе Такси — кнопка с изображением «i» или через главное меню). Там отображается синоним и версия конфигурации, а также версия платформы. Учтите: в этом окне показывается именно синоним, а не внутреннее имя, поэтому для кода берите значение из конфигуратора или программным способом.

Как получить имя конфигурации программно через Метаданные.Имя

Основной способ — обращение к свойству Метаданные.Имя. Оно доступно и на сервере, и на клиенте (в толстом клиенте без ограничений, в тонком и веб-клиенте — с учётом того, что часть объектов метаданных недоступна, но свойства корня конфигурации читаются). Минимальный пример:

ИмяКонф = Метаданные.Имя;

Сообщить("Текущая конфигурация: " + ИмяКонф);

Часто вместе с именем требуется версия и синоним — их удобно собрать в одну строку для журнала регистрации или служебного отчёта:

Описание = СтрШаблон("%1 (%2), версия %3",

Метаданные.Синоним,

Метаданные.Имя,

Метаданные.Версия);

ЗаписьЖурналаРегистрации("Диагностика", , , , Описание);

Такой подход безопасен: чтение свойств метаданных не изменяет данные и не требует дополнительных прав, кроме права запуска самого кода. Он работает одинаково во внешних обработках, расширениях и внутри основной конфигурации.

bsl
ИмяКонфигурации = Метаданные.Имя;
ВерсияКонфигурации = Метаданные.Версия;
Синоним = Метаданные.Синоним;
Сообщить(СтрШаблон("%1 (%2) v%3", Синоним, ИмяКонфигурации, ВерсияКонфигурации));

Как определить типовую конфигурацию через БСП и функциональные опции

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

// Для конфигураций на базе БСП

Версия = ОбновлениеИнформационнойБазы.ВерсияИБ(Метаданные.Имя);

Для проверки «какая это конфигурация» в универсальных обработках часто используют не само имя, а наличие конкретных объектов метаданных — так код устойчивее к переименованиям и форкам:

ЭтоУТ = Метаданные.Документы.Найти("РеализацияТоваровУслуг") <> Неопределено

И Метаданные.Справочники.Найти("Партнеры") <> Неопределено;

Проверка по наличию объектов предпочтительнее сравнения строки имени, когда обработка должна работать в нескольких отраслевых решениях на одной базе: имя могло быть изменено внедренцем, а состав метаданных — нет.

Сравнение вариантов

Метаданные.Имя

Универсальный способ, работает везде. Ограничение: возвращает только строку имени, без гарантий типовости.

Окно «О программе»

Быстро и без доступа к конфигуратору. Показывает синоним, а не внутреннее имя — для кода не подходит.

Проверка наличия объектов метаданных

Надёжно определяет функциональность решения. Требует знания состава конкретных конфигураций.

Механизмы БСП

Даёт актуальную версию из данных ИБ. Работает только в конфигурациях на базе БСП.

Как получить имя конфигурации во внешней обработке и расширении

Во внешней обработке или отчёте код Метаданные.Имя возвращает имя той информационной базы, в которой обработка запущена, — а не имя самой обработки. Это частый источник путаницы: разработчик ожидает увидеть имя файла .epf, а получает «БухгалтерияПредприятия». Имя внешней обработки получают иначе — через ЭтотОбъект.ПолучитьФорму(...) не требуется, достаточно свойства ЭтотОбъект.Метаданные().Имя в модуле объекта обработки.

В расширении конфигурации Метаданные.Имя по-прежнему возвращает имя основной конфигурации, поскольку расширение работает в её контексте. Если нужно идентифицировать само расширение, используйте менеджер расширений: РасширенияКонфигурации.Получить() и перебор свойств Имя и Версия у каждого подключённого расширения.

Порядок действий для проверки в чужой базе
  1. 1
    Откройте внешнюю обработку или консоль кода в режиме 1С:Предприятие
  2. 2
    Выполните: Сообщить(Метаданные.Имя + " / " + Метаданные.Версия)
  3. 3
    Сверьте результат с окном «О программе» — синоним и версия должны совпадать
  4. 4
    Если имена различаются с ожидаемыми — проверьте, не запущены ли вы в копии базы или в другой публикации

Типичные ошибки и ограничения

Первая ошибка — сравнение имени с учётом регистра и лишних пробелов. Строковое сравнение в 1С по умолчанию нечувствительно к регистру, но пробелы и опечатки ломают логику. Надёжнее завести функцию-определитель с константами вместо разбросанных по коду строковых литералов.

Вторая ошибка — использование имени конфигурации как единственного критерия совместимости. Одно и то же имя может скрывать сильно доработанную конфигурацию, где переименованы или удалены объекты. Для обменов проверяйте не только имя, но и версию, а критичные объекты — их фактическое наличие через Метаданные.НайтиПоПолномуИмени().

Третья ошибка — попытка получить имя конфигурации поставщика из информационной базы, где конфигурация находится на поддержке с закрытым хранилищем. Само свойство Метаданные.Имя доступно всегда, но вот получить имя конфигурации поставщика программно штатными средствами нельзя — только через сравнение версий в конфигураторе.

Типичные ошибки
01
Использовать синоним из заголовка окна как идентификатор в коде — синоним может меняться локализацией и настройками
02
Путать Метаданные.Имя базы и имя внешней обработки — это разные объекты
03
Жёстко сравнивать строку имени без проверки версии — обмен сломается после обновления
04
Ожидать в расширении имя расширения через Метаданные.Имя — вернётся имя основной конфигурации

Как проверить результат и в каких случаях обратиться к администратору

Проверка проста: значение, полученное кодом, должно совпадать с именем корневого узла в конфигураторе, а синоним и версия — с данными окна «О программе». Если код выполняется на сервере, а вы смотрите клиентский сеанс другой базы (например, тестовой), значения разойдутся — убедитесь, что сравниваете одну и ту же информационную базу.

Если у вас нет прав на запуск внешних обработок или доступа к конфигуратору, а имя нужно для заявки в поддержку — достаточно окна «О программе»: сделайте снимок экрана, там есть синоним, версия конфигурации и версия платформы. Для большинства обращений этого набора достаточно.

Контрольные точки

Как проверить результат

Значение Метаданные.Имя
Норма

Совпадает с именем корневого узла в конфигураторе

Тревожный признак

Другое имя — вы в другой базе или в копии

Версия из кода и из окна «О программе»
Норма

Значения совпадают

Тревожный признак

Версии различаются — код выполняется не в той ИБ

Доступность метаданных на клиенте
Норма

Свойство читается без ошибки

Тревожный признак

Ошибка доступа — код требует серверного контекста или прав

Итог

Что важно запомнить

Имя конфигурации программно возвращает Метаданные.Имя, визуально оно видно в корне дерева конфигуратора. Окно «О программе» показывает синоним, а не имя. Для универсального кода проверяйте наличие объектов метаданных, а не только строку имени.

Частые вопросы

Можно ли получить имя конфигурации запросом?

Нет, язык запросов 1С работает с данными таблиц, а не со свойствами метаданных. Имя конфигурации получают только через объект Метаданные во встроенном языке. Если имя нужно в отчёте на СКД, передайте его параметром из модуля, где доступен объект Метаданные.

Чем имя отличается от синонима конфигурации?

Имя — технический идентификатор без пробелов, используется в коде и путях метаданных. Синоним — человекочитаемое название для интерфейса. В коде для идентификации используйте только имя, синоним может меняться без последствий для логики.

Работает ли Метаданные.Имя в тонком и веб-клиенте?

Да, свойства корня конфигурации (Имя, Синоним, Версия) доступны на клиенте. Ограничения касаются детального обхода отдельных веток метаданных в веб-клиенте, но само имя читается без проблем.

Как узнать имя конфигурации поставщика, если база на поддержке?

Штатного программного способа нет. Имя конфигурации поставщика видно в конфигураторе через «Поддержка → Настройка поддержки», а также в диалоге сравнения и объединения конфигураций.

Почему во внешней обработке Метаданные.Имя возвращает не имя обработки?

Объект Метаданные всегда относится к конфигурации информационной базы. Имя самой обработки получают в её модуле объекта через ЭтотОбъект.Метаданные().Имя — это метаданные внешнего объекта, а не конфигурации.

Безопасно ли менять имя конфигурации в свойствах?

Технически платформа позволяет, но на рабочей базе это рискованно: по имени могут ссылаться расширения, планы обмена и внешние интеграции. Меняйте имя только на копии и после проверки всех зависимых механизмов.