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

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

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

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

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

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

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

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

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

Основные механизмы:

  • персональные настройки пользователя (основная организация, склад, подразделение);
  • свойство «Значение заполнения» у реквизита объекта в конфигураторе;
  • процедура «ОбработкаЗаполнения» в модуле объекта;
  • подписки на события и общие модули заполнения;
  • константы и функциональные опции как источники значений.

Сравнение вариантов

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

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

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

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

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

Подходит для любой логики, включая запросы к базе. Ограничение: требует доработки конфигурации и тестирования при обновлениях.

Настройка значений по умолчанию в пользовательском режиме

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

Типичный путь: откройте раздел «Администрирование» или главное меню, найдите пункт «Персональные настройки» либо «Настройки пользователя». Там задаются основная организация, основное подразделение, основной склад и другие параметры. После сохранения эти значения будут автоматически подставляться в новые документы текущего пользователя.

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

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

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

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

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

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

Программное задание значения через ОбработкаЗаполнения

Для гибкой логики используется процедура «ОбработкаЗаполнения» в модуле объекта. Она вызывается платформой при создании нового объекта и позволяет заполнить любые реквизиты по произвольному алгоритму.

Пример типового кода, который подставляет организацию из настроек пользователя и задаёт ставку НДС:

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

Организация = Справочники.Организации.ОрганизацияПоУмолчанию();

Если НЕ ЗначениеЗаполнено(СтавкаНДС) Тогда

СтавкаНДС = Перечисления.СтавкиНДС.НДС20;

КонецЕсли;

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

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

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

Значения по умолчанию для отдельных пользователей и ролей

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

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

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

Проверка результата и типичные ошибки

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

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

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

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

Поля заполнены заданными значениями, документ можно провести

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

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

Создание на основании
Норма

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

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

Значения из основания затираются значениями по умолчанию

Копирование документа
Норма

Скопированные значения сохраняются

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

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

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

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

FAQ: частые вопросы о значениях по умолчанию в 1С

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

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

Можно ли задать значение по умолчанию без конфигуратора?

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

Как задать значение по умолчанию только для одного пользователя?

Используйте персональные настройки типовой конфигурации или создайте регистр сведений с измерением «Пользователь» и читайте значение из него в «ОбработкеЗаполнения» для текущего пользователя сеанса. Жёстко прописывать пользователя в коде не следует — при смене сотрудника придётся менять конфигурацию.

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

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

Чем расширение конфигурации лучше прямой доработки для этой задачи?

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

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

В «ОбработкеЗаполнения» присвойте реквизиту функцию ТекущаяДатаСеанса() — она возвращает дату с учётом часового пояса сеанса. Для начала месяца используйте НачалоМесяца(ТекущаяДатаСеанса()). Не используйте ТекущаяДата() без уточнения контекста в клиент-серверном режиме — значение может отличаться от серверного времени.

Итог

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

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