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

Администрирование · 9 мин

Как проверить значение константы в 1С

Как проверить значение константы в 1С: через пользовательский интерфейс, консоль запросов, код и внешние обработки. Пошаговые инструкции и типичные ошибки.

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

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

Важно понимать разницу между значением, которое видит пользователь в форме, и значением, физически хранящимся в базе. Кэш, функциональные опции и переопределение значений в коде могут давать разные результаты. Ниже разберём рабочие способы проверки и ситуации, когда показания расходятся.

Что такое константа в 1С и где она хранится

Константа — это объект метаданных, предназначенный для хранения одного значения заданного типа. В отличие от регистров сведений, константа не имеет измерений и периодичности: в каждый момент времени существует ровно одно актуальное значение.

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

Способ 1. Проверка через пользовательский интерфейс

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

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

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

Способ 2. Проверка через код — ПолучитьЗначение

Самый надёжный способ — обратиться к константе через встроенный язык. Для этого используется менеджер констант:

bsl
Значение = Константы.ИмяКонстанты.Получить();
Сообщить(Значение);

Где выполнить этот код:

  • Консоль кода (входит в состав инструментов разработчика, например ИР, или поставляется отдельными обработками);
  • Внешняя обработка с кнопкой «Выполнить» — открывается через «Файл — Открыть» в режиме предприятия;
  • Желтый значок «Выполнить произвольное выражение» в отладчике конфигуратора (Shift+F9).
Порядок действий через консоль кода
  1. 1
    Откройте консоль кода или создайте внешнюю обработку с полем выполнения кода
  2. 2
    Введите: Сообщить(Константы.ИмяКонстанты.Получить())
  3. 3
    Выполните код и прочитайте результат в окне сообщений
  4. 4
    Сравните полученное значение с ожидаемым

Обратите внимание: если константа ссылочного типа, Сообщить выведет представление ссылки. Чтобы увидеть технические детали, добавьте вывод уникального идентификатора или используйте окно «Вычислить выражение» в отладчике.

Способ 3. Проверка через консоль запросов

Константы доступны в запросах через виртуальную таблицу «Константы». Это удобно, когда нужно проверить сразу несколько констант одним запросом:

bsl
ВЫБРАТЬ
	Константы.ИмяКонстанты1,
	Константы.ИмяКонстанты2
ИЗ
	Константы КАК Константы

Откройте консоль запросов (в типовых конфигурациях на базе БСП она может быть в разделе «Администрирование — Обслуживание» либо поставляться внешней обработкой), вставьте текст запроса и выполните. Результат покажет актуальные значения всех выбранных констант одной строкой.

Этот способ особенно полезен для пакетной проверки: например, при аудите настроек обмена можно вывести десяток констант и сравнить с эталонной конфигурацией.

Способ 4. Проверка через универсальные отчёты и динамический список

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

Ещё один приём — функция «Все функции» (в тонком клиенте открывается через меню, при наличии прав). В дереве объектов найдите раздел «Константы», выберите нужную — откроется форма редактирования значения. Способ работает не во всех конфигурациях: в некоторых раздел констант скрыт разработчиками.

Почему проверенное значение может отличаться от ожидаемого

Типичная ситуация: администратор изменил константу, а пользователи продолжают видеть старое значение. Причины:

  • Кэш сеанса — платформа читает константу при старте сеанса, и до перезапуска сеанса пользователь работает со старым значением;
  • Функциональные опции — значение опции может переопределяться периодическим регистром сведений, и «константа» на самом деле является записью регистра;
  • Разделение данных — в сервисе (SaaS) константа может быть разделённой, и в разных областях данных хранятся разные значения;
  • Обмен данными — значение перезаписывается при очередной синхронизации из главного узла.
Контрольные точки

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

Значение в сеансе пользователя
Норма

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

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

После перезапуска сеанса значение старое — ищите механизм, который его перезаписывает

Значение в форме настроек
Норма

Совпадает с результатом ПолучитьЗначение

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

В форме одно значение, код возвращает другое — проверьте функциональные опции и переопределение в модуле

Значение после обмена
Норма

Сохраняется после синхронизации

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

Сбрасывается — константа участвует в плане обмена и приходит из главного узла

Риски при изменении констант вручную

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

Перед записью нового значения зафиксируйте текущее — выведите его через ПолучитьЗначение и сохраните. Это позволит откатиться, если изменение даст неожиданный эффект.

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

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

Как узнать имя константы, если я вижу только её название в интерфейсе?

Откройте конфигуратор и найдите константу поиском по представлению (синониму) в дереве метаданных. Либо в режиме предприятия нажмите на поле настройки и посмотрите подсказку — в некоторых конфигурациях в ней указан путь к объекту. Также помогает глобальный поиск по конфигурации по тексту синонима.

Можно ли проверить значение константы без прав администратора?

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

Почему ПолучитьЗначение возвращает пустое значение?

Значит, константе никогда не присваивали значение — она хранит значение по умолчанию для своего типа (пустая строка, ноль, Ложь, пустая ссылка). Это нормальное состояние, а не ошибка. Проверьте в конфигураторе тип константы, чтобы правильно интерпретировать результат.

Как проверить значения всех констант сразу?

Выполните запрос «ВЫБРАТЬ * ИЗ Константы» в консоли запросов — он вернёт одну строку со всеми константами конфигурации. Либо используйте обработки сравнения конфигураций, которые выгружают значения констант в табличный документ.

Чем константа отличается от регистра сведений при проверке значения?

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

Значение константы меняется само после обмена — это нормально?

Да, если константа включена в состав плана обмена. В подчинённом узле её значение приходит из главного узла при синхронизации. Проверьте состав плана обмена в конфигураторе: если константа там есть, менять её нужно в главном узле, иначе изменение будет перезаписано.

Итог

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

Проверить значение константы проще всего через ПолучитьЗначение в консоли кода или запросом к таблице Константы. Учитывайте кэш сеанса, функциональные опции и обмен данными — они могут давать отличающиеся показания. Изменяйте служебные константы только на копии базы, зафиксировав исходное значение.