Работа с константами в 1С:Предприятие — одна из базовых задач, с которой сталкиваются и бухгалтеры, и программисты, и администраторы систем. Константы хранят неизменяемые (или редко изменяемые) параметры, такие как название организации, ставки налогов, пути к файлам обмена и другие критичные данные. Однако их расположение и способы просмотра зависят от версии платформы, режима работы (1С:Предприятие или Конфигуратор) и даже от конкретной конфигурации (Бухгалтерия 3.0, УТ 11, ЗУП 3.1).
В этой статье мы разберём все актуальные методы просмотра констант — от визуальных инструментов для новичков до программных запросов для разработчиков. Вы узнаете, как найти скрытые константы, какие есть подводные камни при их редактировании, и почему иногда значения в базе не совпадают с тем, что видно в интерфейсе. Материал актуален для 1С 8.3 (включая последние релизы 2026 года) и частично применим к 1С 8.2.
1. Где хранятся константы в 1С: структура и назначение
Константы в 1С — это объекты метаданных, которые предназначены для хранения фиксированных значений. В отличие от справочников или документов, они не имеют истории изменений и обычно редактируются редко. Физически константы хранятся:
- 📁 В дереве метаданных конфигурации (раздел
Общие → Константы). Здесь определяется их структура — имя, тип значения (строка, число, дата и т.д.), и описание. - 💾 В базе данных — фактические значения констант записываются в таблицу
_Const(для SQL-версий) или в соответствующие файлы (для файловых баз). - 🔄 В кэше — при запуске сеанса 1С загружает значения констант в оперативную память для быстрого доступа.
Важно понимать, что константы делятся на два типа:
- 🔹 Обычные — доступны для редактирования в режиме 1С:Предприятие (если это разрешено правами). Примеры:
НазваниеОрганизации,ОсновнойСклад. - 🔹 Системные — используются платформой (например,
ВерсияДанных,Датум) и обычно скрыты от пользователя.
Если в конфигурации много констант, используйте фильтр в дереве метаданных (Ctrl+F) — это сэкономит время при поиске нужного параметра.
2. Способ 1: Просмотр констант через Конфигуратор (для администраторов)
Самый надёжный способ увидеть все константы — использовать Конфигуратор. Этот метод подходит администраторам, разработчикам и пользователям с полными правами. Инструкция:
- Откройте базу в режиме
Конфигуратор(для этого при запуске 1С удерживайтеShiftили выберите пункт в меню запуска). - В дереве метаданных разверните ветку
Общие → Константы. - Дважды кликните на нужную константу — откроется окно её свойств, где можно увидеть:
- 📌 Имя (идентификатор для программного доступа).
- 📌 Тип значения (строка, число, ссылка и т.д.).
- 📌 Значение по умолчанию (задаётся при создании константы).
Операции → Константы (или нажмите Ctrl+Shift+K). Здесь отобразятся все константы с их актуальными данными.⚠️ Внимание: В окне Операции → Константы отображаются только те константы, которые уже имеют значения в базе. Если константа новая и никогда не редактировалась, она может не появиться в этом списке.
Как открыть Конфигуратор, если он скрыт в меню запуска?
Если при запуске 1С нет возможности выбрать Конфигуратор, попробуйте:
1. Зажмите Shift при запуске ярлыка 1С.
2. В окне аутентификации нажмите кнопку Дополнительно и выберите Конфигуратор.
3. Если база запускается через веб-клиент, используйте тонкий клиент или толстый клиент для доступа к Конфигуратору.
3. Способ 2: Просмотр констант в режиме 1С:Предприятие (для пользователей)
Если у вас нет прав на Конфигуратор, но требуется посмотреть значения констант, можно использовать стандартные инструменты режима 1С:Предприятие. Способы зависят от конфигурации:
- 🔧 Через меню "Все функции":
- Откройте главное меню 1С и выберите
Все функции(или нажмитеCtrl+Shift+F). - В списке найдите пункт
Константыи откройте его. - Перед вами откроется форма со всеми доступными константами и их значениями.
- Откройте главное меню 1С и выберите
Некоторые типовье конфигурации (например, Бухгалтерия 3.0) имеют отчёт "Анализ констант", который выводит значения в удобном виде. Найдите его в разделе Отчёты → Стандартные.
В современных версиях 1С (8.3.20+) есть функция поиска по интерфейсу. Введите в поисковой строке слово "константа" — система подскажет, где можно их просмотреть.
⚠️ Внимание: В некоторых конфигурациях (например, УТ 11 или КА 2.4) доступ к константам может быть ограничен ролями. Если пункта Константы нет в меню Все функции, обратитесь к администратору за правами.
4. Способ 3: Программный просмотр констант (для разработчиков)
Для автоматизации или массового анализа констант удобно использовать встроенный язык 1С. Ниже приведены примеры кода для разных задач:
4.1. Получение значения одной константы
// Получаем значение константы "ОсновнаяОрганизация"
ЗначениеКонстанты = Константы.ОсновнаяОрганизация.Получить();
Сообщить(ЗначениеКонстанты);
4.2. Вывод всех констант и их значений
Для Каждого Константа Из Метаданные.Константы Цикл
Попытка
Значение = Константы[Константа.Имя].Получить();
Сообщить(Константа.Имя + ": " + Значение);
Исключение
Сообщить(Константа.Имя + ": [не установлено]");
КонецПопытки;
КонецЦикла;
4.3. Просмотр констант через запрос
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| Константы.Ссылка КАК Константа,
| Константы.Значение КАК Значение
|ИЗ
| РегистрСведений.Константы КАК Константы";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
Сообщить(Выборка.Константа + " = " + Выборка.Значение);
КонецЦикла;
🔹 Примечание: В последних версиях 1С (8.3.21+) для работы с константами рекомендуется использовать менеджер значения Константы.ИмяКонстанты.Получить(), а не прямой доступ через точку (Константы.ИмяКонстанты), так как это гарантирует корректную работу в распределённых базах.
Используйте метод .Получить() для чтения констант в коде — это защищает от ошибок при работе с распределёнными информационными базами.
5. Способ 4: Просмотр констант через отладчик (для диагностики)
Если константа не отображается в интерфейсе или её значение "невидимо" при программном чтении, поможет отладчик 1С. Этот метод полезен для диагностики проблем, когда:
- 🔸 Значение константы не соответствует ожидаемому (например, в коде используется одно значение, а в интерфейсе другое).
- 🔸 Константа не сохраняется после редактирования.
- 🔸 Нужно проверить, не переопределяется ли константа в модулях.
- Откройте Конфигуратор и установите точку останова в модуле, где предполагается работа с константой (например, в обработчике события
ПриНачалеРаботыСистемы). - Запустите 1С в режиме отладки (
F5или кнопкаОтладка). - Когда выполнение остановится на точке останова, откройте окно
Вычислить выражение(Ctrl+Alt+F8). - Введите имя константы (например,
Константы.СтавкаНДС) и нажмитеВычислить. Система покажет текущее значение, даже если оно не видно в интерфейсе.
Пошаговая инструкция:
🔹 Совет: Если константа является ссылкой на справочник (например, ОсновнойБанковскийСчет), в отладчике можно развернуть её значение, чтобы увидеть все реквизиты связанного объекта.
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. Типичные проблемы при работе с константами и их решения
При просмотре или редактировании констант пользователи часто сталкиваются с ошибками. Рассмотрим самые распространённые случаи и способы их устранения:
- 🚨 Константа не сохраняется:
Проблема: После изменения значения в интерфейсе оно "сбрасывается" на прежнее.
Решение:
- Проверьте права пользователя на редактирование константы (раздел
Администрирование → Пользователи). - Убедитесь, что в конфигурации не стоит флаг
ТолькоПросмотрдля этой константы. - Если константа — это ссылка на справочник, проверьте, не удалён ли объект, на который она ссылается.
- Проверьте права пользователя на редактирование константы (раздел
- 🚨 Константа не отображается в списке:
Проблема: В окне
Операции → Константыотсутствует нужная константа.Решение:
- Проверьте, существует ли константа в метаданных (через Конфигуратор).
- Если константа новая и никогда не редактировалась, она не будет видна в списке. Задайте ей значение хотя бы один раз.
- В распределённых базах константы могут быть не синхронизированы между узлами. Проверьте настройки обмена.
Проблема: В коде используется одно значение, а в интерфейсе отображается другое.
Решение:
- Проверьте, не переопределяется ли константа в модулях (например, в
УправляемомПриложении.МодульПриложения). - Убедитесь, что вы смотрите константу в правильном сеансе (в распределённых базах значения могут отличаться).
- Используйте отладчик, чтобы отследить, где и когда меняется значение.
Проверьте права пользователя на редактирование|Убедитесь, что константа существует в метаданных|Просмотрите значение через отладчик (Ctrl+Alt+F8)|Сверьте значения в разных сеансах (для распределённых баз)|Проверьте логи обмена (для синхронизируемых констант)-->
8. Сравнение методов просмотра констант: какой выбрать?
Выбор способа просмотра констант зависит от вашей роли, задачи и уровня доступа. Ниже — сравнительная таблица методов:
| Метод | Для кого | Плюсы | Минусы | Когда использовать |
|---|---|---|---|---|
Конфигуратор (Операции → Константы) |
Администраторы, разработчики | Показывает все константы, включая скрытые. Можно редактировать. | Требует прав на Конфигуратор. | Для полного анализа или массового редактирования. |
Режим 1С:Предприятие (Все функции → Константы) |
Обычные пользователи | Не требует специальных прав, простой интерфейс. | Не все константы могут быть видны (зависит от ролей). | Для быстрого просмотра доступных констант. |
Программный код (запросы, Константы.Имя.Получить()) |
Разработчики | Гибкость, возможность автоматизации. | Требует знаний 1С-программирования. | Для интеграции с другими системами или отчётами. |
Отладчик (Вычислить выражение) |
Разработчики, администраторы | Позволяет увидеть "реальное" значение, даже если оно скрыто. | Требует навыков отладки. | Для диагностики проблем с константами. |
| Прямой доступ к базе (SQL, утилиты) | Системные администраторы | Максимальный контроль, восстановление данных. | Высокий риск ошибок, требует знаний СУБД. | Только для экстренных случаев! |
🔹 Рекомендация: Если вы не уверены, какой метод выбрать, начните с Конфигуратора (если есть доступ) или Все функции → Константы в режиме 1С:Предприятие. Для сложных случаев (например, когда значение константы "исчезает") используйте отладчик.
Для большинства задач достаточно первых двух методов (Конфигуратор или "Все функции"). Программные способы и SQL-запросы применяйте только при необходимости автоматизации или восстановления данных.
FAQ: Частые вопросы о константах в 1С
Можно ли удалить константу из 1С?
Удалить константу можно только через Конфигуратор в режиме редактирования конфигурации. Однако это может привести к ошибкам, если константа используется в коде или отчётах. Перед удалением:
- Проверьте, где константа используется (кнопка
Найти использованияв Конфигураторе). - Убедитесь, что её значение не критично для работы программы.
- Сделайте резервную копию базы.
⚠️ После удаления константы из метаданных её значение будет утеряно без возможности восстановления!
Почему после обновления конфигурации пропали значения констант?
Это типичная проблема при обновлении типовых конфигураций (например, при переходе с Бухгалтерии 2.0 на 3.0). Причины:
- В новой версии конфигурации изменились идентификаторы констант (например,
ОсновнойБанковскийСчетсталОсновнойРасчетныйСчет). - Константы были перенесены в справочники или регистры сведений.
- При обновлении не был выполнен перенос данных.
Решение: Используйте обработку переноса данных от поставщика конфигурации или обратитесь к специалисту.
Как сделать резервную копию констант перед редактированием?
Рекомендуется сохранять значения констант перед массовыми изменениями. Способы:
- Через Конфигуратор: Откройте
Операции → Константы, скопируйте значения в Excel или сделайте скриншоты. - Программно: Используйте код для экспорта констант в файл:
ТекстФайла = Новый ТекстовыйДокумент;Для Каждого Константа Из Метаданные.Константы Цикл
Попытка
Значение = Константы[Константа.Имя].Получить();
ТекстФайла.ДобавитьСтроку(Константа.Имя + " = " + Значение);
Исключение
ТекстФайла.ДобавитьСтроку(Константа.Имя + " = [не установлено]");
КонецПопытки;
КонецЦикла;
ТекстФайла.Записать("C:\backup_constants.txt");
- Через SQL: Сделайте бэкап таблицы
_Const(для SQL-баз).
Можно ли сделать константу "невидимой" для пользователей?
Да, есть несколько способов скрыть константу от пользователей:
- 🔒 Через права: Настройте роли так, чтобы у пользователей не было прав на просмотр/редактирование константы (раздел
Администрирование → Пользователи → Роли). - 👁️ Через конфигурацию: Уберите константу из меню
Все функции, удалив её из соответствующих командных интерфейсов. - 🔧 Программно: Перехватите обращение к константе в модуле приложения и возвращайте пустое значение для неадминистраторов.
⚠️ Скрытие констант не защищает их от программного доступа! Для полной безопасности используйте шифрование или переносите чувствительные данные в регистры сведений с ограничением по периодам.
Как перенести константы из одной базы 1С в другую?
Перенос констант между базами можно выполнить несколькими способами:
- Через выгрузку/загрузку данных (XML):
Используйте стандартную обработку
ВыгрузкаЗагрузкаДанныхXML(доступна в Конфигураторе). Выберите только объектКонстантыи выполните выгрузку/загрузку. - Программно:
Напишите скрипт, который считывает константы из одной базы и записывает в другую. Пример:
// В исходной базеДанные = Новый Соответствие;
Для Каждого Константа Из Метаданные.Константы Цикл
Попытка
Данные.Вставить(Константа.Имя, Константы[Константа.Имя].Получить());
Исключение
Данные.Вставить(Константа.Имя, Неопределено);
КонецПопытки;
КонецЦикла;
ЗаписатьJSON(Данные, "C:\constants.json");
// В целевой базе
Данные = ПрочитатьJSON("C:\constants.json");
Для Каждого Ключ Из Данные.Ключи() Цикл
Попытка
Константы[Ключ].Установить(Данные[Ключ]);
Исключение
ЗаписатьЛог(ОписаниеОшибки());
КонецПопытки;
КонецЦикла;
- Через обмен данными:
Если базы связаны обменом (например, через Универсальный формат обмена), настройте правила обмена для констант.
⚠️ При переносе учитывайте, что идентификаторы констант должны совпадать в обеих базах. Если конфигурации разные, может потребоваться ручное сопоставление.