Администрирование · 9 мин
Как установить константу в 1С
Как установить константу в 1С через режим Предприятие и Конфигуратор: где искать, как изменить значение, права доступа, программная установка и типичные ошибки.
Константа в 1С — это объект конфигурации, который хранит одно значение, не меняющееся часто: наименование организации, валюту учёта, номер версии, признак включения функциональности. В отличие от справочников и документов, константа не привязана ко времени и содержит ровно одну запись, поэтому её установка — одна из простейших операций, но с рядом важных нюансов по правам и способам изменения.
Установить константу можно тремя путями: через интерфейс режима 1С:Предприятие (если разработчик вывел её в формы настроек), напрямую через список всех констант в разделе «Все функции» и программно — встроенным языком 1С. Выбор зависит от того, есть ли у вас права, выведена ли константа в интерфейс и требуется ли массовое или автоматическое изменение.
Что такое константа и где она хранится
Константа — объект метаданных конфигурации, предназначенный для хранения единственного значения заданного типа: строки, числа, даты, булево или ссылки на справочник. Типичные примеры: «Основная организация», «Валюта регламентированного учёта», «Префикс информационной базы». Значение константы одинаково для всех пользователей базы, если константа не связана с механизмом разделения данных.
Физически значения констант хранятся в отдельной таблице базы данных. Поскольку запись одна, при установке значения платформа блокирует эту таблицу на короткое время — в многопользовательской работе это может привести к конфликту блокировок, если два пользователя пытаются сохранить константы одновременно.
Периодических констант в платформе 1С нет: если требуется хранить историю изменения параметра, вместо константы используют периодический регистр сведений. Это важно учитывать при выборе объекта для хранения настройки.
Установка константы через интерфейс 1С:Предприятие
Самый безопасный способ — изменить константу через штатные формы настроек. В типовых конфигурациях (Бухгалтерия, Управление торговлей, ERP) многие константы выведены в раздел «Администрирование» или «Настройки программы». Например, в 1С:Бухгалтерии наименование организации меняется в карточке организации, а функциональные опции — в разделе «Администрирование → Параметры учёта».
Если константа не выведена в видимые формы, откройте общий список констант. Для этого включите отображение команды «Все функции»: в меню (кнопка с треугольником в левом верхнем углу) выберите «Сервис → Параметры» и установите флажок «Отображать команду "Все функции"». После этого в том же меню появится пункт «Все функции», где в ветке «Константы» находится полный перечень.
В открывшемся списке найдите нужную константу, дважды щёлкните по строке, введите новое значение и нажмите «Записать» или «Записать и закрыть». Платформа сохранит значение немедленно — отдельного документа или проведения не требуется.
- 1Откройте Сервис → Параметры и включите отображение команды «Все функции»
- 2Через меню откройте «Все функции» и разверните ветку «Константы»
- 3Найдите нужную константу поиском по наименованию
- 4Откройте её двойным щелчком и введите новое значение
- 5Нажмите «Записать» и проверьте, что значение сохранилось
Программная установка константы
Во встроенном языке 1С константы доступны через глобальный менеджер «Константы». Для установки значения используется метод Установить, для чтения — метод Получить или обращение через свойство Получить(). Типичный код выглядит так:
Константы.ВалютаУчета.Установить(НоваяВалюта);
ТекущееЗначение = Константы.ВалютаУчета.Получить();
Также существует объектная модель через КонстантаМенеджер и КонстантаНабор, когда нужно записать сразу несколько констант в одной транзакции. Набор создаётся методом Константы.СоздатьНабор("Имя1, Имя2"), после чего значения присваиваются свойствам набора и записываются методом Записать().
Программная установка удобна для обработок первоначального заполнения, обновлений и обменов данными. Важно помнить: метод Установить выполняется сразу в базе, поэтому при работе в транзакции откат транзакции отменит и изменение константы.
Константы.ПрефиксИБ.Установить("ЦО");
Набор = Константы.СоздатьНабор("ВалютаУчета, ОсновнаяОрганизация");
Набор.ВалютаУчета = ВалютаСсылка;
Набор.ОсновнаяОрганизация = ОрганизацияСсылка;
Набор.Записать();Создание и настройка константы в Конфигураторе
Если нужной константы нет в конфигурации, её добавляет разработчик в Конфигураторе. Откройте дерево конфигурации, ветку «Константы», вызовите контекстное меню и выберите «Добавить». В палитре свойств задайте имя (латиницей, без пробелов), синоним (отображаемое название) и тип данных.
Тип можно сделать составным, отметив несколько видов, но для большинства настроек предпочтителен один конкретный тип — это упрощает проверку и ввод. Для ссылочных констант укажите конкретный справочник, чтобы пользователь мог выбирать значение из списка.
Чтобы константа была доступна пользователю, её нужно вывести в интерфейс: добавить на форму настроек или включить в командный интерфейс подсистемы. Также проверьте права: в ролях должны быть установлены права «Чтение» и «Изменение» для этого объекта. После сохранения конфигурации выполните обновление конфигурации базы данных (F7).
Права доступа и типичные ограничения
Изменить константу может только пользователь с правом «Изменение» на соответствующий объект. Если при попытке записи появляется сообщение о нарушении прав доступа — обратитесь к администратору или проверьте состав ролей пользователя в Конфигураторе (Администрирование → Пользователи, затем состав ролей).
Вторая частая причина неудачи — конфликт блокировок в многопользовательском режиме. Сообщение вида «Конфликт блокировок при выполнении транзакции» означает, что другой сеанс в этот момент изменяет таблицу констант. Обычно достаточно повторить запись через несколько секунд.
Отдельный случай — базы, работающие в режиме разделения данных (сервис 1С:Фреш). Там часть констант может быть разделённой по областям, и изменение в одной области не затрагивает другие. Кроме того, константы, связанные с функциональными опциями, могут быть недоступны для прямого редактирования и меняются только через форму настроек.
Проверка результата и откат изменений
После установки значения убедитесь, что оно сохранилось: закройте и заново откройте форму константы либо выполните чтение программно через Константы.ИмяКонстанты.Получить(). Если константа влияет на поведение программы (например, префикс нумерации), проверьте эффект на тестовом документе.
Автоматической истории изменений констант платформа не ведёт, если не включено версионирование или журнал регистрации не настроен на соответствующие события. Поэтому перед изменением важных констант зафиксируйте старое значение — запишите его отдельно, чтобы при необходимости вернуть.
Если константа была изменена ошибочно и старое значение неизвестно, восстановить его можно только из резервной копии базы. Это ещё один аргумент в пользу регулярного резервного копирования перед массовыми изменениями настроек.
Как проверить результат
Отображается новое значение
Значение старое — запись не выполнилась, проверьте права
Возвращается установленное значение
Ошибка или пустое значение — проверьте имя константы и тип
Нумерация, валюта, настройки применяются корректно
Поведение не изменилось — константа не используется в этом механизме или требуется перезапуск сеанса
Часто задаваемые вопросы
Можно ли установить константу без прав администратора?
Да, если в роли пользователя установлено право «Изменение» для конкретной константы. Полные права не обязательны — администратор может выдать доступ к отдельным объектам через настройку ролей в Конфигураторе.
Почему константа не отображается в списке «Все константы»?
Возможные причины: константа не включена ни в одну подсистему и скрыта настройками интерфейса, у пользователя нет права «Чтение» на объект, либо конфигурация базы данных не обновлена после добавления константы в Конфигураторе.
Как установить константу сразу во всех базах при обновлении?
Используйте обработчик обновления конфигурации: в процедуре обновления программно вызовите Константы.ИмяКонстанты.Установить(Значение). Обработчик выполнится один раз при первом запуске после обновления.
Чем константа отличается от функциональной опции?
Функциональная опция — это механизм включения и отключения частей интерфейса и логики, который часто хранит своё значение именно в константе. Константа — просто хранилище значения, а функциональная опция дополнительно управляет видимостью объектов и команд.
Можно ли хранить в константе список значений?
Нет, константа хранит одно значение одного или составного типа. Для списков используйте справочник, табличную часть или регистр сведений — в зависимости от того, нужна ли история и привязка к измерениям.
Что делать при ошибке «Конфликт блокировок» при записи константы?
Подождите несколько секунд и повторите запись — обычно блокировка кратковременна. Если ошибка повторяется постоянно, проверьте, не выполняется ли фоновое задание или обмен данными, регулярно изменяющий константы, и перенесите изменение на время минимальной нагрузки.
Что важно запомнить
Константа устанавливается через формы настроек, список «Все константы» в режиме «Все функции» или программно методом Установить. Для изменения нужно право «Изменение», история значений не ведётся, поэтому перед правкой фиксируйте старое значение. Новые константы добавляются в Конфигураторе с последующим обновлением конфигурации базы данных.