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

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

Как добавить реквизит в табличную часть 1С

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

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

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

Подготовка: что проверить перед изменением конфигурации

Перед любыми изменениями метаданных сделайте резервную копию базы. Для файловой базы достаточно скопировать каталог или выгрузить базу через «Администрирование — Выгрузить информационную базу» в файл .dt. Для клиент-серверной базы выгрузка .dt или средства СУБД. Это единственная гарантия отката, если что-то пойдёт не так.

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

Альтернатива прямому изменению — механизм дополнительных реквизитов и сведений, доступный в типовых конфигурациях в пользовательском режиме. Однако он работает для объекта целиком, а не для строк табличной части: если данные нужны именно построчно (у каждого товара свой срок годности), без изменения конфигурации не обойтись.

Маршрут решения

Как выбрать способ

Данные нужны построчно в табличной части (у каждой строки своё значение)Добавляйте реквизит в табличную часть через конфигуратор
Достаточно одного значения на весь документ или элемент справочникаИспользуйте дополнительные реквизиты в пользовательском режиме — конфигурацию менять не придётся
Конфигурация типовая и регулярно обновляетсяРассмотрите расширение конфигурации — оно не затрагивает типовой код

Добавление реквизита в конфигураторе: пошаговый порядок

Откройте конфигуратор и дерево конфигурации (меню «Конфигурация — Открыть конфигурацию» или Ctrl+Shift+C). Найдите нужный объект: ветка «Документы» или «Справочники». Раскройте объект — внутри него есть ветка «Табличные части». Раскройте её и выберите конкретную табличную часть, например «Товары».

Кликните правой кнопкой по табличной части и выберите «Добавить — Реквизит», либо откройте палитру свойств табличной части и перейдите на закладку «Данные». Задайте имя реквизита латиницей без пробелов (например, СрокГодности), синоним — то, что увидит пользователь («Срок годности»), и тип данных.

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

Выбор типа данных и настройка свойств реквизита

Тип реквизита определяет, что можно хранить и как с этим работать. Строка подходит для примечаний — задайте разумную длину (например, 100–250 символов), не оставляйте неограниченную длину без необходимости. Число — для количеств и процентов: укажите длину и точность, например 10 и 2 для процентов с копейками. Дата — для сроков; выберите состав даты «Дата», если время не нужно.

Если значение должно выбираться из списка, используйте ссылку на справочник (например, «ВариантыУпаковки») или перечисление. Перечисление подходит, когда список значений фиксирован и меняется редко; справочник — когда пользователи должны сами пополнять варианты. Составной тип (несколько типов одновременно) применяйте только при реальной необходимости: он усложняет запросы и отчёты.

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

Обновление конфигурации базы данных

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

Добавление реквизита — безопасная реструктуризация: данные не удаляются, новая колонка создаётся пустой. Опасны обратные операции — удаление реквизита, сужение длины строки, изменение типа. Если в окне реструктуризации видны потери данных, которые вы не планировали, отмените операцию и разберитесь в причинах.

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

Вывод реквизита на форму и в печатную форму

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

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

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

bsl
// Пример обращения к новому реквизиту в модуле объекта
Для Каждого СтрокаТовары Из Товары Цикл
    Если Не ЗначениеЗаполнено(СтрокаТовары.СрокГодности) Тогда
        СтрокаТовары.СрокГодности = ТекущаяДатаСеанса() + 30 * 86400;
    КонецЕсли;
КонецЦикла;

Расширение конфигурации как альтернатива для типовых решений

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

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

Сравнение подходов

Прямое изменение конфигурации

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

Расширение конфигурации

Не трогает типовой код, обновления проходят чисто; есть ограничения по версии платформы

Дополнительные реквизиты (пользовательский режим)

Без конфигуратора и без рисков, но работают только для объекта целиком, не для строк табличной части

Частые ошибки и проверка результата

Самая распространённая ошибка — забыть добавить реквизит на форму. Вторая по частоте — добавить реквизит в объект, но не в табличную часть: тогда значение одно на весь документ, а не на каждую строку. Третья — выбрать неправильный тип: например, строку вместо даты, из-за чего невозможно строить отборы и сортировку по срокам.

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

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

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

Колонка видна в табличной части на форме документа
Норма

Пользователь может вводить и редактировать значения

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

Колонки нет — реквизит не добавлен на форму

Сохранение данных
Норма

Значение остаётся после записи и повторного открытия документа

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

Значение пропадает — проверьте, что изменение применено к конфигурации базы данных

Печатная форма
Норма

Новое поле заполнено в сформированной печатной форме

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

Пустая колонка — поле не добавлено в запрос или макет

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

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

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

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

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

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

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

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

Реквизит добавлен, но пользователи его не видят. Что делать?

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

Как добавить реквизит в типовую конфигурацию, не сломав обновления?

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

Какой тип выбрать для реквизита со списком значений?

Если список фиксированный и редко меняется (например, «Да/Нет/Частично») — создайте перечисление. Если пользователи должны сами пополнять варианты, нужны дополнительные поля или группы — используйте ссылку на справочник.

Как заполнить новый реквизит в уже существующих документах?

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