Как автоматически заполнить колонку табличной части в 1С без программирования

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

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

Использование свойства «Значение заполнения» в метаданных

Разберем самый эффективный и штатный способ, предусмотренный платформой 1С. Многие разработчики привыкли искать настройки заполнения только для реквизитов «шапки» документа, однако аналогичный механизм существует и для табличных частей. Проанализируем ситуацию: начиная с версии платформы 8.3.3, у реквизитов табличных частей появилось свойство ЗначениеЗаполнения.

Пошаговый алгоритм настройки в конфигураторе:

  1. Откроем дерево метаданных и найдем нужный нам документ.
  2. Развернем ветку Табличные части и выберем соответствующую таблицу.
  3. Внутри таблицы найдем реквизит, который должен заполняться автоматически (например, Статус).
  4. Откроем палитру свойств этого реквизита (клавиша F4).
  5. Найдем категорию свойств Заполнение.
  6. В поле Значение заполнения укажем то значение, которое должно подставляться по умолчанию.

Рассмотрим нюансы работы с типами данных. Если тип реквизита — ПеречислениеСсылка, мы просто выбираем нужное значение из списка. Если это Булево, устанавливаем «Да» или «Нет». Для ссылочных типов (например, справочник Статусы) потребуется выбрать конкретный предопределенный элемент, если он существует в системе.

Почему свойство «Значение заполнения» может быть не видно

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

1. Версия платформы. Если конфигурация запущена на режиме совместимости с версиями ниже 8.3.3 (например, 8.2), данное свойство в палитре свойств просто не будет отображаться. Платформа 1С постоянно развивается, и механизмы автоматизации метаданных — одна из приоритетных зон роста.

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

Автоматическое заполнение через механизм «Связи параметров выбора»

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

Например, если в строке табличной части выбирается Номенклатура, а следующая колонка — ЕдиницаИзмерения, при настройке связи по владельцу 1С автоматически подставит базовую единицу измерения, если это настроено в метаданных. Это позволяет избежать ручного ввода и минимизировать ошибки.

Заполнение существующих данных: Групповое изменение реквизитов

Рассмотрим ситуацию, когда документ уже создан, в нем много строк, и нам нужно массово установить значение в определенной колонке. Для этого не обязательно писать обработку на языке 1С. В типовых конфигурациях (и во многих самописных, использующих БСП) доступна стандартная обработка «Групповое изменение реквизитов».

Как это работает для табличных частей:

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

Этот метод идеален для разовых корректировок или при изменении бизнес-логики в уже проведенных документах.

Механизм «Заполнять из заполняемого» при копировании

Посмотрим, как ведет себя система при копировании документов. Если мы хотим, чтобы при создании нового документа путем копирования старого значения в определенных колонках сохранялись (или, наоборот, очищались), нам поможет свойство ЗаполнятьИзЗаполняемого.

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

Ограничения непрограммных методов

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

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


Процедура ПриУстановкеНовогоНомера(СтандартнаяОбработка)
    // Здесь может быть логика для шапки
КонецПроцедуры

// В модуле формы или при добавлении строки
&НаКлиенте
Процедура ТабличнаяЧастьПриНачалеРедактирования(Элемент, НоваяСтрока, Копирование)
    Если НоваяСтрока И Не Копирование Тогда
        Элемент.ТекущиеДанные.Статус = ПредопределенноеЗначение("Перечисление.Статусы.Новый");
    КонецЕсли;
КонецПроцедуры

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

Итоги

Мы проанализировали способы автоматического заполнения колонок табличной части. Подведем итог: если вы используете современную платформу 8.3, всегда начинайте с проверки свойств реквизита в Конфигураторе. Использование стандартных свойств метаданных — это «хороший тон» разработки, который делает систему более прозрачной и легкой в поддержке. Совместное использование свойств заполнения и функционала группового изменения данных позволяет решать 90% задач по автоматизации ввода без написания единой строчки кода.

← На главную