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