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