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