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

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

Значение заполнения в 1С: что это и как настроить

Значение заполнения в 1С — свойство реквизита, задающее автоматическое начальное значение. Разбираем, где настраивается, как работает и типичные ошибки.

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

Простой пример: в документе «Реализация товаров» реквизит «Валюта» может иметь значение заполнения «Рубли». Тогда при создании каждого нового документа поле валюты уже заполнено, и пользователю не нужно выбирать его вручную. Если валюта сделки другая — значение просто меняется. Это экономит время и снижает количество ошибок из-за пропущенных полей.

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

Где находится свойство и как оно устроено

Свойство «Значение заполнения» доступно в конфигураторе для реквизитов большинства объектов: справочников, документов, планов видов характеристик, регистров сведений и накопления, а также для стандартных реквизитов. Чтобы увидеть его, нужно открыть дерево конфигурации, найти нужный объект, выделить реквизит и вызвать палитру свойств (правый клик → «Свойства» или Alt+Enter). Поле «Значение заполнения» находится в нижней части палитры, рядом со свойствами «Проверка заполнения» и «Значение заполнения» имеет кнопку выбора.

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

Как настроить значение заполнения: пошаговый порядок

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

Порядок настройки
  1. 1
    Откройте конфигуратор и найдите нужный объект в дереве конфигурации (справочник, документ и т.д.)
  2. 2
    Раскройте ветку «Реквизиты» и выделите нужный реквизит
  3. 3
    Откройте палитру свойств (правый клик → «Свойства»)
  4. 4
    Найдите поле «Значение заполнения» и нажмите кнопку выбора
  5. 5
    Укажите конкретное значение соответствующего типа (элемент справочника, значение перечисления, строка и т.п.)
  6. 6
    Сохраните конфигурацию (F7) и обновите конфигурацию базы данных при необходимости
  7. 7
    Проверьте в режиме «Предприятие»: создайте новый объект и убедитесь, что поле заполнено автоматически

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

Как значение заполнения работает на практике

Механизм срабатывает один раз — в момент создания нового объекта. Платформа формирует структуру данных нового элемента и подставляет в реквизиты их значения заполнения ещё до открытия формы. Если пользователь затем очищает поле, платформа не восстанавливает значение автоматически: значение заполнения — это не значение по умолчанию в строгом смысле, а именно начальное заполнение.

При программном создании объекта через методы Документы.РеализацияТоваровУслуг.СоздатьДокумент() значения заполнения также применяются. Разработчику не нужно дублировать их в коде — достаточно создать объект, и реквизиты уже будут заполнены. Однако если в коде явно присваивается другое значение, оно перекроет значение заполнения.

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

Значение заполнения и проверка заполнения: в чём разница

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

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

КритерийЗначение заполненияПроверка заполнения
НазначениеПодставить начальное значениеКонтролировать заполненность при записи
Когда срабатываетПри создании объектаПри записи или проведении
Действие пользователяМожно изменить или очиститьОчистка приведёт к ошибке записи
Что задаётсяКонкретное значениеРежим контроля: не проверять / ошибка

Когда значение заполнения не подходит и что использовать вместо него

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

Варианты автозаполнения реквизитов

Значение заполнения

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

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

Подходит, когда значение зависит от основания ввода или данных системы. Требует написания кода в модуле объекта.

Процедура «ПриСозданииНаСервере» формы

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

Настройки пользователя (хранилище настроек)

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

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

Типичные ошибки и ограничения

Первая распространённая ошибка — ожидание, что значение заполнения изменит уже существующие данные. Администратор настраивает свойство, открывает старый документ и видит пустое поле. Это нормально: механизм работает только для новых объектов, существующие придётся обновлять отдельной обработкой.

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

Типичные ошибки
01
Ожидание, что значение применится к существующим объектам — механизм работает только при создании новых
02
Ссылка на обычный (не предопределённый) элемент справочника — при переносе конфигурации между базами значение может потеряться
03
Использование фиксированной даты — значение быстро устаревает, для дат нужен обработчик
04
Попытка задать значение в расширении для реквизита, у которого оно уже задано в основной конфигурации — поведение зависит от порядка применения и может отличаться от ожидаемого
05
Путаница с проверкой заполнения — настройка одного свойства вместо другого не даёт нужного эффекта

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

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

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

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

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

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

Поле заполнено заданным значением сразу при открытии формы нового объекта

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

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

Программное создание объекта
Норма

После СоздатьДокумент()/СоздатьЭлемент() реквизит уже заполнен

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

Реквизит пуст — возможно, код создаёт объект через другой механизм или перезаписывает значение

Копирование существующего объекта
Норма

Поле содержит значение из объекта-источника, а не значение заполнения

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

Если поле сбрасывается на значение заполнения — проверьте обработчики формы

Поведение после обновления конфигурации
Норма

Значение заполнения сохранилось и работает

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

Настройка пропала — вероятно, конфигурация была загружена из файла поставщика с замещением

Если значение не подставляется, проверьте три вещи: обновлена ли конфигурация базы данных (F7 в конфигураторе сохраняет конфигурацию, но не всегда обновляет БД), не перекрывает ли значение код в обработчиках «ОбработкаЗаполнения» или «ПриСозданииНаСервере», и не задано ли для реквизита другое значение в расширении.

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

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

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

Частые вопросы

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

Это штатное поведение платформы: свойство применяется только в момент создания нового объекта. Чтобы заполнить реквизит в уже записанных документах, используйте типовую обработку «Групповое изменение реквизитов» или напишите собственную обработку с обходом документов за нужный период.

Можно ли задать значение заполнения для табличной части документа?

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

Что произойдёт, если элемент справочника, указанный в значении заполнения, пометить на удаление?

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

Чем значение заполнения отличается от значения по умолчанию в настройках пользователя?

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

Сохранится ли значение заполнения при обновлении типовой конфигурации?

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