Работа с константами в 1С:Предприятие — одна из базовых задач, с которой сталкиваются и бухгалтеры, и программисты, и администраторы систем. Константы хранят неизменяемые (или редко изменяемые) параметры, такие как название организации, ставки налогов, пути к файлам обмена и другие критичные данные. Однако их расположение и способы просмотра зависят от версии платформы, режима работы (1С:Предприятие или Конфигуратор) и даже от конкретной конфигурации (Бухгалтерия 3.0, УТ 11, ЗУП 3.1).

В этой статье мы разберём все актуальные методы просмотра констант — от визуальных инструментов для новичков до программных запросов для разработчиков. Вы узнаете, как найти скрытые константы, какие есть подводные камни при их редактировании, и почему иногда значения в базе не совпадают с тем, что видно в интерфейсе. Материал актуален для 1С 8.3 (включая последние релизы 2026 года) и частично применим к 1С 8.2.

1. Где хранятся константы в 1С: структура и назначение

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

  • 📁 В дереве метаданных конфигурации (раздел Общие → Константы). Здесь определяется их структура — имя, тип значения (строка, число, дата и т.д.), и описание.
  • 💾 В базе данных — фактические значения констант записываются в таблицу _Const (для SQL-версий) или в соответствующие файлы (для файловых баз).
  • 🔄 В кэше — при запуске сеанса 1С загружает значения констант в оперативную память для быстрого доступа.

Важно понимать, что константы делятся на два типа:

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

Если в конфигурации много констант, используйте фильтр в дереве метаданных (Ctrl+F) — это сэкономит время при поиске нужного параметра.

2. Способ 1: Просмотр констант через Конфигуратор (для администраторов)

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

  1. Откройте базу в режиме Конфигуратор (для этого при запуске 1С удерживайте Shift или выберите пункт в меню запуска).
  2. В дереве метаданных разверните ветку Общие → Константы.
  3. Дважды кликните на нужную константу — откроется окно её свойств, где можно увидеть:
    • 📌 Имя (идентификатор для программного доступа).
    • 📌 Тип значения (строка, число, ссылка и т.д.).
    • 📌 Значение по умолчанию (задаётся при создании константы).
  • Чтобы увидеть текущее значение, перейдите в меню Операции → Константы (или нажмите Ctrl+Shift+K). Здесь отобразятся все константы с их актуальными данными.
  • ⚠️ Внимание: В окне Операции → Константы отображаются только те константы, которые уже имеют значения в базе. Если константа новая и никогда не редактировалась, она может не появиться в этом списке.

    Как открыть Конфигуратор, если он скрыт в меню запуска?

    Если при запуске 1С нет возможности выбрать Конфигуратор, попробуйте:

    1. Зажмите Shift при запуске ярлыка 1С.

    2. В окне аутентификации нажмите кнопку Дополнительно и выберите Конфигуратор.

    3. Если база запускается через веб-клиент, используйте тонкий клиент или толстый клиент для доступа к Конфигуратору.

    3. Способ 2: Просмотр констант в режиме 1С:Предприятие (для пользователей)

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

    • 🔧 Через меню "Все функции":
      1. Откройте главное меню 1С и выберите Все функции (или нажмите Ctrl+Shift+F).
      2. В списке найдите пункт Константы и откройте его.
      3. Перед вами откроется форма со всеми доступными константами и их значениями.
  • 📊 Через отчёты (если конфигурация поддерживает):

    Некоторые типовье конфигурации (например, Бухгалтерия 3.0) имеют отчёт "Анализ констант", который выводит значения в удобном виде. Найдите его в разделе Отчёты → Стандартные.

  • 🔍 Через глобальный поиск:

    В современных версиях 1С (8.3.20+) есть функция поиска по интерфейсу. Введите в поисковой строке слово "константа" — система подскажет, где можно их просмотреть.

  • ⚠️ Внимание: В некоторых конфигурациях (например, УТ 11 или КА 2.4) доступ к константам может быть ограничен ролями. Если пункта Константы нет в меню Все функции, обратитесь к администратору за правами.

    📊 Какой способ просмотра констант вы используете чаще?
    Через Конфигуратор
    В режиме 1С:Предприятие (Все функции)
    Через отчёты
    Программно (запросы/код)
    Не знаю, как смотреть

    4. Способ 3: Программный просмотр констант (для разработчиков)

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

    4.1. Получение значения одной константы

    // Получаем значение константы "ОсновнаяОрганизация"
    

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

    Сообщить(ЗначениеКонстанты);

    4.2. Вывод всех констант и их значений

    Для Каждого Константа Из Метаданные.Константы Цикл
    

    Попытка

    Значение = Константы[Константа.Имя].Получить();

    Сообщить(Константа.Имя + ": " + Значение);

    Исключение

    Сообщить(Константа.Имя + ": [не установлено]");

    КонецПопытки;

    КонецЦикла;

    4.3. Просмотр констант через запрос

    Запрос = Новый Запрос;
    

    Запрос.Текст =

    "ВЫБРАТЬ

    | Константы.Ссылка КАК Константа,

    | Константы.Значение КАК Значение

    |ИЗ

    | РегистрСведений.Константы КАК Константы";

    Результат = Запрос.Выполнить();

    Выборка = Результат.Выбрать();

    Пока Выборка.Следующий() Цикл

    Сообщить(Выборка.Константа + " = " + Выборка.Значение);

    КонецЦикла;

    🔹 Примечание: В последних версиях 1С (8.3.21+) для работы с константами рекомендуется использовать менеджер значения Константы.ИмяКонстанты.Получить(), а не прямой доступ через точку (Константы.ИмяКонстанты), так как это гарантирует корректную работу в распределённых базах.

    💡

    Используйте метод .Получить() для чтения констант в коде — это защищает от ошибок при работе с распределёнными информационными базами.

    5. Способ 4: Просмотр констант через отладчик (для диагностики)

    Если константа не отображается в интерфейсе или её значение "невидимо" при программном чтении, поможет отладчик 1С. Этот метод полезен для диагностики проблем, когда:

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

      1. Откройте Конфигуратор и установите точку останова в модуле, где предполагается работа с константой (например, в обработчике события ПриНачалеРаботыСистемы).
      2. Запустите 1С в режиме отладки (F5 или кнопка Отладка).
      3. Когда выполнение остановится на точке останова, откройте окно Вычислить выражение (Ctrl+Alt+F8).
      4. Введите имя константы (например, Константы.СтавкаНДС) и нажмите Вычислить. Система покажет текущее значение, даже если оно не видно в интерфейсе.

      🔹 Совет: Если константа является ссылкой на справочник (например, ОсновнойБанковскийСчет), в отладчике можно развернуть её значение, чтобы увидеть все реквизиты связанного объекта.

      6. Способ 5: Просмотр констант напрямую в базе данных (для опытных)

      В редких случаях (например, при восстановлении данных после сбоя) может потребоваться просмотреть константы напрямую в базе данных. Этот метод требует знаний SQL и доступа к серверу базы данных. Рассмотрим варианты для разных СУБД:

      6.1. Для файловых баз (1Cv8.1CD)

      Файловые базы хранят константы в бинарном формате. Чтобы их прочитать, можно использовать утилиты вроде 1Cv8dt или Chdbfl (из состава платформы). Пример команды для экспорта констант:

      chdbfl.exe "C:\Базы\MyBase\1Cv8.1CD" /DumpConst "C:\temp\constants.txt"

      6.2. Для SQL-баз (Microsoft SQL Server, PostgreSQL)

      В SQL-версиях константы хранятся в таблице _Const. Запрос для просмотра:

      -- Для Microsoft SQL Server
      

      SELECT

      _IDRRef AS [Ссылка],

      _Description AS [Описание],

      _Fld* AS [Значения полей]

      FROM _Const;

      ⚠️ Внимание: Изменение констант напрямую в базе данных может привести к нарушению целостности данных и ошибкам при запуске 1С. Этот метод рекомендуется только для диагностики или восстановления под контролем специалиста.

      СУБД Таблица с константами Поле со значением Примечание
      Microsoft SQL Server _Const _Fld{XXX} (где XXX — номер поля) Имена полей зависят от структуры константы.
      PostgreSQL _const _fld{xxx} Регистрозависимо! Используйте нижний регистр.
      Файловая база Бинарный формат Требуются специализированные утилиты.

      7. Типичные проблемы при работе с константами и их решения

      При просмотре или редактировании констант пользователи часто сталкиваются с ошибками. Рассмотрим самые распространённые случаи и способы их устранения:

      • 🚨 Константа не сохраняется:

        Проблема: После изменения значения в интерфейсе оно "сбрасывается" на прежнее.

        Решение:

        1. Проверьте права пользователя на редактирование константы (раздел Администрирование → Пользователи).
        2. Убедитесь, что в конфигурации не стоит флаг ТолькоПросмотр для этой константы.
        3. Если константа — это ссылка на справочник, проверьте, не удалён ли объект, на который она ссылается.

      • 🚨 Константа не отображается в списке:

        Проблема: В окне Операции → Константы отсутствует нужная константа.

        Решение:

        1. Проверьте, существует ли константа в метаданных (через Конфигуратор).
        2. Если константа новая и никогда не редактировалась, она не будет видна в списке. Задайте ей значение хотя бы один раз.
        3. В распределённых базах константы могут быть не синхронизированы между узлами. Проверьте настройки обмена.

    • 🚨 Значение константы не соответствует ожидаемому:

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

      Решение:

      1. Проверьте, не переопределяется ли константа в модулях (например, в УправляемомПриложении.МодульПриложения).
      2. Убедитесь, что вы смотрите константу в правильном сеансе (в распределённых базах значения могут отличаться).
      3. Используйте отладчик, чтобы отследить, где и когда меняется значение.

    • Проверьте права пользователя на редактирование|Убедитесь, что константа существует в метаданных|Просмотрите значение через отладчик (Ctrl+Alt+F8)|Сверьте значения в разных сеансах (для распределённых баз)|Проверьте логи обмена (для синхронизируемых констант)-->

      8. Сравнение методов просмотра констант: какой выбрать?

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

      Метод Для кого Плюсы Минусы Когда использовать
      Конфигуратор (Операции → Константы) Администраторы, разработчики Показывает все константы, включая скрытые. Можно редактировать. Требует прав на Конфигуратор. Для полного анализа или массового редактирования.
      Режим 1С:Предприятие (Все функции → Константы) Обычные пользователи Не требует специальных прав, простой интерфейс. Не все константы могут быть видны (зависит от ролей). Для быстрого просмотра доступных констант.
      Программный код (запросы, Константы.Имя.Получить()) Разработчики Гибкость, возможность автоматизации. Требует знаний 1С-программирования. Для интеграции с другими системами или отчётами.
      Отладчик (Вычислить выражение) Разработчики, администраторы Позволяет увидеть "реальное" значение, даже если оно скрыто. Требует навыков отладки. Для диагностики проблем с константами.
      Прямой доступ к базе (SQL, утилиты) Системные администраторы Максимальный контроль, восстановление данных. Высокий риск ошибок, требует знаний СУБД. Только для экстренных случаев!

      🔹 Рекомендация: Если вы не уверены, какой метод выбрать, начните с Конфигуратора (если есть доступ) или Все функции → Константы в режиме 1С:Предприятие. Для сложных случаев (например, когда значение константы "исчезает") используйте отладчик.

      💡

      Для большинства задач достаточно первых двух методов (Конфигуратор или "Все функции"). Программные способы и SQL-запросы применяйте только при необходимости автоматизации или восстановления данных.

      FAQ: Частые вопросы о константах в 1С

      Можно ли удалить константу из 1С?

      Удалить константу можно только через Конфигуратор в режиме редактирования конфигурации. Однако это может привести к ошибкам, если константа используется в коде или отчётах. Перед удалением:

      1. Проверьте, где константа используется (кнопка Найти использования в Конфигураторе).
      2. Убедитесь, что её значение не критично для работы программы.
      3. Сделайте резервную копию базы.

      ⚠️ После удаления константы из метаданных её значение будет утеряно без возможности восстановления!

      Почему после обновления конфигурации пропали значения констант?

      Это типичная проблема при обновлении типовых конфигураций (например, при переходе с Бухгалтерии 2.0 на 3.0). Причины:

      • В новой версии конфигурации изменились идентификаторы констант (например, ОсновнойБанковскийСчет стал ОсновнойРасчетныйСчет).
      • Константы были перенесены в справочники или регистры сведений.
      • При обновлении не был выполнен перенос данных.

      Решение: Используйте обработку переноса данных от поставщика конфигурации или обратитесь к специалисту.

      Как сделать резервную копию констант перед редактированием?

      Рекомендуется сохранять значения констант перед массовыми изменениями. Способы:

      1. Через Конфигуратор: Откройте Операции → Константы, скопируйте значения в Excel или сделайте скриншоты.
      2. Программно: Используйте код для экспорта констант в файл:
        ТекстФайла = Новый ТекстовыйДокумент;
        

        Для Каждого Константа Из Метаданные.Константы Цикл

        Попытка

        Значение = Константы[Константа.Имя].Получить();

        ТекстФайла.ДобавитьСтроку(Константа.Имя + " = " + Значение);

        Исключение

        ТекстФайла.ДобавитьСтроку(Константа.Имя + " = [не установлено]");

        КонецПопытки;

        КонецЦикла;

        ТекстФайла.Записать("C:\backup_constants.txt");

      3. Через SQL: Сделайте бэкап таблицы _Const (для SQL-баз).
      Можно ли сделать константу "невидимой" для пользователей?

      Да, есть несколько способов скрыть константу от пользователей:

      • 🔒 Через права: Настройте роли так, чтобы у пользователей не было прав на просмотр/редактирование константы (раздел Администрирование → Пользователи → Роли).
      • 👁️ Через конфигурацию: Уберите константу из меню Все функции, удалив её из соответствующих командных интерфейсов.
      • 🔧 Программно: Перехватите обращение к константе в модуле приложения и возвращайте пустое значение для неадминистраторов.

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

      Как перенести константы из одной базы 1С в другую?

      Перенос констант между базами можно выполнить несколькими способами:

      1. Через выгрузку/загрузку данных (XML):

        Используйте стандартную обработку ВыгрузкаЗагрузкаДанныхXML (доступна в Конфигураторе). Выберите только объект Константы и выполните выгрузку/загрузку.

      2. Программно:

        Напишите скрипт, который считывает константы из одной базы и записывает в другую. Пример:

        // В исходной базе
        

        Данные = Новый Соответствие;

        Для Каждого Константа Из Метаданные.Константы Цикл

        Попытка

        Данные.Вставить(Константа.Имя, Константы[Константа.Имя].Получить());

        Исключение

        Данные.Вставить(Константа.Имя, Неопределено);

        КонецПопытки;

        КонецЦикла;

        ЗаписатьJSON(Данные, "C:\constants.json");

        // В целевой базе

        Данные = ПрочитатьJSON("C:\constants.json");

        Для Каждого Ключ Из Данные.Ключи() Цикл

        Попытка

        Константы[Ключ].Установить(Данные[Ключ]);

        Исключение

        ЗаписатьЛог(ОписаниеОшибки());

        КонецПопытки;

        КонецЦикла;

      3. Через обмен данными:

        Если базы связаны обменом (например, через Универсальный формат обмена), настройте правила обмена для констант.

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