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

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

1С: как сделать значение по умолчанию

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

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

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

Какие значения по умолчанию существуют в 1С

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

Основные варианты:

  • Персональные настройки пользователя — основная организация, склад, подразделение, касса. Задаются пользователем самостоятельно и действуют только для его сеанса.
  • Значение заполнения реквизита — свойство объекта метаданных в конфигураторе. Платформа подставляет его при создании нового объекта.
  • Программная подстановка — код в обработчиках «ОбработкаЗаполнения», «ПриСозданииНаСервере» или процедурах заполнения.
  • Значения по умолчанию в запросах и отчётах — параметры СКД и форм, которые подставляются при открытии.

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

Как задать основные значения без программирования

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

Настройка основной организации и склада

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

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

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

Если настройка не срабатывает

Иногда после установки основного значения документ всё равно открывается с пустым полем. Типичные причины: документ создаётся на основании другого объекта (тогда значения берутся из источника), в конфигурации для этого реквизита предусмотрена собственная логика заполнения, либо у пользователя нет прав на выбранное значение, и платформа его очищает.

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

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

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

Дополнительно полезно свойство «Проверка заполнения»: если установить «Выдавать ошибку», платформа не даст сохранить объект с пустым реквизитом. Сочетание «значение по умолчанию + проверка заполнения» гарантирует, что поле никогда не останется пустым.

Программная установка значений по умолчанию

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

Обработчик «ОбработкаЗаполнения»

Это штатное место для логики заполнения нового объекта. Обработчик вызывается при создании элемента, в том числе при вводе на основании.

bsl
Процедура ОбработкаЗаполнения(ДанныеЗаполнения, ТекстЗаполнения, СтандартнаяОбработка)

	Если ТипЗнч(ДанныеЗаполнения) <> Тип("ДокументСсылка.ЗаказКлиента") Тогда
		Склад = Справочники.Склады.НайтиПоНаименованию("Основной склад");
		Валюта = Константы.ОсновнаяВалюта.Получить();
	КонецЕсли;

КонецПроцедуры

Обратите внимание на проверку типа данных заполнения: если документ создаётся на основании, значения логично брать из документа-основания, а не подставлять умолчания поверх них.

Значения на форме

Если значение нужно только при интерактивном создании через форму, можно использовать обработчик «ПриСозданииНаСервере» с проверкой Параметры.Ключ.Пустая() — это признак нового объекта. Но предпочтительнее «ОбработкаЗаполнения»: он срабатывает и при программном создании объекта, что делает поведение единообразным.

Способы задания значений по умолчанию

Персональные настройки

Подходит для пользовательских предпочтений (организация, склад). Не требует доработок, но действует только на одного пользователя.

Свойство «Значение заполнения»

Для фиксированных значений, одинаковых для всех. Просто, но не поддерживает условия и вычисления.

ОбработкаЗаполнения

Универсальный вариант с любой логикой. Требует доработки конфигурации и аккуратности при вводе на основании.

Значения по умолчанию в отчётах и на формах

В отчётах на СКД параметры часто должны иметь стартовые значения — например, период «текущий месяц». Для этого в конструкторе СКД на вкладке «Параметры» задайте значение параметра или используйте выражение на встроенном языке. Для дат удобны стандартные периоды и функции типа НачалоМесяца(ТекущаяДатаСеанса()) в коде формы отчёта.

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

Типичные ошибки
01
Установка значения в «ПриОткрытии» без проверки на новый объект — стираются данные уже сохранённых документов
02
Игнорирование ДанныеЗаполнения в «ОбработкаЗаполнения» — при вводе на основании значения из источника затираются умолчаниями
03
Поиск элемента по наименованию без обработки отсутствия — если элемент переименуют, подстановка молча перестанет работать
04
Настройка персональных значений у одного пользователя с ожиданием, что они применятся ко всем

Как проверить, что настройка работает

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

Контрольные точки

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

Создание нового документа вручную
Норма

Поле заполнено нужным значением сразу при открытии формы

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

Поле пустое или заполняется только после записи

Ввод на основании
Норма

Значения берутся из документа-основания

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

Умолчание затирает данные источника

Работа другого пользователя
Норма

У него действуют его персональные настройки

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

Подставляются чужие значения или поле пустое

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

Итог

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

Пользовательские умолчания настраиваются через персональные настройки без программирования. Фиксированные значения для всех — через свойство «Значение заполнения» в конфигураторе. Условная логика — в обработчике «ОбработкаЗаполнения» с обязательной проверкой данных заполнения. Любые доработки проверяйте на копии базы.

Часто задаваемые вопросы

Почему значение по умолчанию не подставляется при копировании документа?

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

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

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

Как сделать, чтобы в поле даты по умолчанию стояла текущая дата?

Для реквизитов типа «Дата» у документов это обычно уже встроено в платформу — рабочая дата подставляется автоматически. Для произвольных реквизитов используйте в «ОбработкаЗаполнения» функцию ТекущаяДатаСеанса() — она корректно учитывает часовой пояс сеанса, в отличие от ТекущаяДата().

Значение подставляется, но пользователь может его стереть и сохранить пустым. Как запретить?

Установите в свойствах реквизита «Проверка заполнения» в значение «Выдавать ошибку». Тогда платформа не позволит записать объект с пустым полем ни интерактивно, ни программно. Дополнительно можно контролировать заполнение в обработчике «ОбработкаПроверкиЗаполнения» с выводом понятного сообщения.

Работают ли значения по умолчанию при обмене данными и загрузке из файлов?

Обработчик «ОбработкаЗаполнения» при загрузке через механизмы обмена обычно не вызывается — объект заполняется данными из сообщения. Если нужно гарантировать заполнение при любом способе создания, добавьте проверку в «ПередЗаписью»: если реквизит пуст, подставить значение по умолчанию.