Разработка и Конфигурация · 10 мин
Как получить имя конфигурации в 1С
Как узнать имя конфигурации 1С: через конфигуратор, встроенный язык (Метаданные.Имя), функциональные опции и запросы. Примеры кода для 8.2 и 8.3.
Имя конфигурации в 1С — это внутренний идентификатор, который задаёт разработчик в конфигураторе и который платформа хранит в метаданных. Оно нужно при написании универсальных обработок, обменов, обновлений и диагностике: например, чтобы код понял, работает он в «Бухгалтерии предприятия» или в «Управлении торговлей», и выбрал правильную ветку логики.
Получить имя можно несколькими способами: визуально в конфигураторе, программно через объект Метаданные, через функциональные опции и стандартные подсистемы БСП, а также через внешние инструменты вроде окна «О программе». Выбор зависит от того, где вы находитесь — в режиме разработки или в пользовательском сеансе — и что именно нужно: имя для кода, для отчёта или для техподдержки.
Ниже разобраны все рабочие методы с примерами кода для платформы 8.3, типичные ошибки и способы проверить результат. Материал применим как к типовым конфигурациям, так и к самописным решениям.
Что такое имя конфигурации и чем оно отличается от синонима
В метаданных конфигурации есть два ключевых строковых свойства: Имя и Синоним. Имя — это технический идентификатор без пробелов (например, БухгалтерияПредприятия), который используется в коде, в путях метаданных и при программной идентификации. Синоним — человекочитаемое представление («Бухгалтерия предприятия»), которое видит пользователь в заголовках и меню.
Кроме того, у конфигурации есть свойства Версия, Поставщик и КраткаяИнформация. Вместе они образуют «паспорт» прикладного решения. Для обменов и интеграций чаще всего требуется связка «имя + версия», потому что одно имя не гарантирует совместимость форматов данных.
Как узнать имя конфигурации в конфигураторе без кода
Если у вас есть доступ к конфигуратору, имя видно сразу. Откройте конфигурацию через меню «Конфигурация → Открыть конфигурацию» — в корне дерева метаданных отображается узел с именем конфигурации. Для просмотра и изменения свойств выделите корневой узел, нажмите правую кнопку мыши и выберите «Свойства»: в палитре свойств будут поля «Имя», «Синоним», «Версия», «Поставщик».
В пользовательском режиме (1С:Предприятие) имя и версию можно посмотреть через меню «Справка → О программе» (в интерфейсе Такси — кнопка с изображением «i» или через главное меню). Там отображается синоним и версия конфигурации, а также версия платформы. Учтите: в этом окне показывается именно синоним, а не внутреннее имя, поэтому для кода берите значение из конфигуратора или программным способом.
Как получить имя конфигурации программно через Метаданные.Имя
Основной способ — обращение к свойству Метаданные.Имя. Оно доступно и на сервере, и на клиенте (в толстом клиенте без ограничений, в тонком и веб-клиенте — с учётом того, что часть объектов метаданных недоступна, но свойства корня конфигурации читаются). Минимальный пример:
ИмяКонф = Метаданные.Имя;
Сообщить("Текущая конфигурация: " + ИмяКонф);
Часто вместе с именем требуется версия и синоним — их удобно собрать в одну строку для журнала регистрации или служебного отчёта:
Описание = СтрШаблон("%1 (%2), версия %3",
Метаданные.Синоним,
Метаданные.Имя,
Метаданные.Версия);
ЗаписьЖурналаРегистрации("Диагностика", , , , Описание);
Такой подход безопасен: чтение свойств метаданных не изменяет данные и не требует дополнительных прав, кроме права запуска самого кода. Он работает одинаково во внешних обработках, расширениях и внутри основной конфигурации.
ИмяКонфигурации = Метаданные.Имя;
ВерсияКонфигурации = Метаданные.Версия;
Синоним = Метаданные.Синоним;
Сообщить(СтрШаблон("%1 (%2) v%3", Синоним, ИмяКонфигурации, ВерсияКонфигурации));Как определить типовую конфигурацию через БСП и функциональные опции
Если конфигурация построена на Библиотеке стандартных подсистем (БСП), имя и версию корректнее получать через её программный интерфейс, а не напрямую из метаданных. Это даёт единообразие: в типовых решениях версия иногда хранится и обновляется механизмами обновления, и БСП возвращает актуальное значение.
// Для конфигураций на базе БСП
Версия = ОбновлениеИнформационнойБазы.ВерсияИБ(Метаданные.Имя);
Для проверки «какая это конфигурация» в универсальных обработках часто используют не само имя, а наличие конкретных объектов метаданных — так код устойчивее к переименованиям и форкам:
ЭтоУТ = Метаданные.Документы.Найти("РеализацияТоваровУслуг") <> Неопределено
И Метаданные.Справочники.Найти("Партнеры") <> Неопределено;
Проверка по наличию объектов предпочтительнее сравнения строки имени, когда обработка должна работать в нескольких отраслевых решениях на одной базе: имя могло быть изменено внедренцем, а состав метаданных — нет.
Сравнение вариантов
Универсальный способ, работает везде. Ограничение: возвращает только строку имени, без гарантий типовости.
Быстро и без доступа к конфигуратору. Показывает синоним, а не внутреннее имя — для кода не подходит.
Надёжно определяет функциональность решения. Требует знания состава конкретных конфигураций.
Даёт актуальную версию из данных ИБ. Работает только в конфигурациях на базе БСП.
Как получить имя конфигурации во внешней обработке и расширении
Во внешней обработке или отчёте код Метаданные.Имя возвращает имя той информационной базы, в которой обработка запущена, — а не имя самой обработки. Это частый источник путаницы: разработчик ожидает увидеть имя файла .epf, а получает «БухгалтерияПредприятия». Имя внешней обработки получают иначе — через ЭтотОбъект.ПолучитьФорму(...) не требуется, достаточно свойства ЭтотОбъект.Метаданные().Имя в модуле объекта обработки.
В расширении конфигурации Метаданные.Имя по-прежнему возвращает имя основной конфигурации, поскольку расширение работает в её контексте. Если нужно идентифицировать само расширение, используйте менеджер расширений: РасширенияКонфигурации.Получить() и перебор свойств Имя и Версия у каждого подключённого расширения.
- 1Откройте внешнюю обработку или консоль кода в режиме 1С:Предприятие
- 2Выполните: Сообщить(Метаданные.Имя + " / " + Метаданные.Версия)
- 3Сверьте результат с окном «О программе» — синоним и версия должны совпадать
- 4Если имена различаются с ожидаемыми — проверьте, не запущены ли вы в копии базы или в другой публикации
Типичные ошибки и ограничения
Первая ошибка — сравнение имени с учётом регистра и лишних пробелов. Строковое сравнение в 1С по умолчанию нечувствительно к регистру, но пробелы и опечатки ломают логику. Надёжнее завести функцию-определитель с константами вместо разбросанных по коду строковых литералов.
Вторая ошибка — использование имени конфигурации как единственного критерия совместимости. Одно и то же имя может скрывать сильно доработанную конфигурацию, где переименованы или удалены объекты. Для обменов проверяйте не только имя, но и версию, а критичные объекты — их фактическое наличие через Метаданные.НайтиПоПолномуИмени().
Третья ошибка — попытка получить имя конфигурации поставщика из информационной базы, где конфигурация находится на поддержке с закрытым хранилищем. Само свойство Метаданные.Имя доступно всегда, но вот получить имя конфигурации поставщика программно штатными средствами нельзя — только через сравнение версий в конфигураторе.
Как проверить результат и в каких случаях обратиться к администратору
Проверка проста: значение, полученное кодом, должно совпадать с именем корневого узла в конфигураторе, а синоним и версия — с данными окна «О программе». Если код выполняется на сервере, а вы смотрите клиентский сеанс другой базы (например, тестовой), значения разойдутся — убедитесь, что сравниваете одну и ту же информационную базу.
Если у вас нет прав на запуск внешних обработок или доступа к конфигуратору, а имя нужно для заявки в поддержку — достаточно окна «О программе»: сделайте снимок экрана, там есть синоним, версия конфигурации и версия платформы. Для большинства обращений этого набора достаточно.
Как проверить результат
Совпадает с именем корневого узла в конфигураторе
Другое имя — вы в другой базе или в копии
Значения совпадают
Версии различаются — код выполняется не в той ИБ
Свойство читается без ошибки
Ошибка доступа — код требует серверного контекста или прав
Что важно запомнить
Имя конфигурации программно возвращает Метаданные.Имя, визуально оно видно в корне дерева конфигуратора. Окно «О программе» показывает синоним, а не имя. Для универсального кода проверяйте наличие объектов метаданных, а не только строку имени.
Частые вопросы
Можно ли получить имя конфигурации запросом?
Нет, язык запросов 1С работает с данными таблиц, а не со свойствами метаданных. Имя конфигурации получают только через объект Метаданные во встроенном языке. Если имя нужно в отчёте на СКД, передайте его параметром из модуля, где доступен объект Метаданные.
Чем имя отличается от синонима конфигурации?
Имя — технический идентификатор без пробелов, используется в коде и путях метаданных. Синоним — человекочитаемое название для интерфейса. В коде для идентификации используйте только имя, синоним может меняться без последствий для логики.
Работает ли Метаданные.Имя в тонком и веб-клиенте?
Да, свойства корня конфигурации (Имя, Синоним, Версия) доступны на клиенте. Ограничения касаются детального обхода отдельных веток метаданных в веб-клиенте, но само имя читается без проблем.
Как узнать имя конфигурации поставщика, если база на поддержке?
Штатного программного способа нет. Имя конфигурации поставщика видно в конфигураторе через «Поддержка → Настройка поддержки», а также в диалоге сравнения и объединения конфигураций.
Почему во внешней обработке Метаданные.Имя возвращает не имя обработки?
Объект Метаданные всегда относится к конфигурации информационной базы. Имя самой обработки получают в её модуле объекта через ЭтотОбъект.Метаданные().Имя — это метаданные внешнего объекта, а не конфигурации.
Безопасно ли менять имя конфигурации в свойствах?
Технически платформа позволяет, но на рабочей базе это рискованно: по имени могут ссылаться расширения, планы обмена и внешние интеграции. Меняйте имя только на копии и после проверки всех зависимых механизмов.