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

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

Где найти константы в 1С: подробная инструкция

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

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

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

Где константы находятся в конфигураторе

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

Двойной щелчок по константе открывает палитру свойств, где видны имя, синоним, тип данных, длина строки, признак использования в функциональных опциях. Если констант много, удобнее искать через глобальный поиск: Ctrl+Shift+F, в поле поиска указать часть имени, в области поиска выбрать «Вся конфигурация».

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

Как найти константу в пользовательском режиме

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

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

Для разработчиков и администраторов есть более прямой путь — внешние обработки вида «Редактирование констант» или стандартная обработка «Инструменты разработчика». Они открывают табличный список всех констант с текущими значениями и позволяют редактировать их напрямую.

Как обратиться к константе из кода

Во встроенном языке доступ к константам выполняется через менеджер констант. Чтобы прочитать значение, используется метод Получить(), чтобы записать — Установить():

НаименованиеОрганизации = Константы.НаименованиеОрганизации.Получить();

Константы.ВалютаУчета.Установить(НоваяВалюта);

Также доступен объект «КонстантыМенеджер» для работы с набором констант одновременно и метод СоздатьНабор(), когда нужно прочитать или записать несколько констант в одной транзакции. Это актуально, если константы логически связаны и должны меняться согласованно.

Чтобы узнать, где конкретная константа используется в коде, в конфигураторе выделите её в дереве и выберите «Правый клик → Поиск ссылок в объектах». Система покажет все модули, где встречается обращение к этой константе.

bsl
Значение = Константы.ФункциональнаяОпцияИспользоватьСклады.Получить();
Если Значение Тогда
    Сообщить("Складской учет включен");
КонецЕсли;

Как изменить значение константы без ошибок

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

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

Порядок действий
  1. 1
    Откройте раздел «Администрирование» в пользовательском режиме
  2. 2
    Найдите нужную настройку через панели настроек или глобальный поиск
  3. 3
    Измените значение и нажмите «Записать» или закройте форму с сохранением
  4. 4
    Проверьте, что связанные механизмы (отчёты, документы, интерфейс) работают с новым значением

Где константы хранятся физически

На уровне СУБД все константы хранятся в одной служебной таблице базы данных — каждой константе соответствует строка с идентификатором и полем значения. Это означает, что чтение константы — быстрая операция, но при очень частом обращении в циклах лучше один раз получить значение в переменную.

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

Типичные ошибки при работе с константами

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

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

Типичные ошибки
01
Изменение константы через SQL напрямую — повреждение базы и потеря поддержки
02
Чтение константы внутри цикла вместо однократного получения в переменную — лишняя нагрузка
03
Попытка найти значение константы в конфигураторе — там хранятся только метаданные
04
Смена учётной константы задним числом без анализа — рассогласование ранее проведённых документов

FAQ

Почему в меню программы нет пункта «Константы»?

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

Можно ли посмотреть, кто и когда изменил константу?

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

Чем константа отличается от функциональной опции?

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

Как найти константу, если неизвестно её точное имя?

В конфигураторе используйте глобальный поиск (Ctrl+Shift+F) по части названия с областью поиска «Вся конфигурация». Также можно открыть ветку «Общие → Константы» и просмотреть синонимы — они обычно совпадают с названиями настроек в интерфейсе.

Можно ли создать свою константу без изменения конфигурации?

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

Почему после изменения константы ничего не поменялось в отчётах?

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

Итог

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

Описание констант ищите в конфигураторе в ветке «Общие → Константы», значения меняйте в пользовательском режиме через формы настроек или программно через Константы.Имя.Установить(). Прямое редактирование таблиц SQL запрещено, а перед сменой учётных констант делайте резервную копию.