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

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

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

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

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

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

Как определить, какой способ подходит в вашей ситуации

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

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

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

Как выбрать действие

Нужно одно значение на весь документ, без участия в проведенииИспользуйте штатный механизм «Дополнительные реквизиты» в режиме 1С:Предприятие
Нужен реквизит в каждой строке табличной части, конфигурация типоваяСоздайте расширение конфигурации и добавьте реквизит в табличную часть через него
Реквизит должен участвовать в проведении, движениях и сложной логикеПланируйте доработку конфигурации с участием разработчика и тестированием на копии базы
Конфигурация уже снята с поддержки и дорабатываетсяДобавляйте реквизит напрямую в конфигураторе, зафиксировав изменение в описании доработок

Штатный механизм: дополнительные реквизиты документа без программирования

В типовых конфигурациях на базе Библиотеки стандартных подсистем (УТ, ERP, БП, ЗУП) есть механизм «Дополнительные реквизиты и сведения». Он включается через «НСИ и администрирование» → «Общие настройки» → флажок «Дополнительные реквизиты и сведения». После этого в карточке документа появляется команда «Ещё» → «Дополнительные реквизиты», где администратор может создать новый реквизит с типом «строка», «число», «дата», «булево» или ссылкой на справочник.

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

Добавление реквизита в табличную часть через расширение конфигурации

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

После того как табличная часть заимствована в расширение, добавьте в неё новый реквизит: правой кнопкой по табличной части → «Добавить» → «Реквизит». Укажите имя (с префиксом расширения), тип и длину. Для ссылочных типов проверьте, что составной тип не тянет лишние объекты — это влияет на скорость работы и размер индексов.

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

Порядок действий в расширении
  1. 1
    Создайте расширение конфигурации с понятным именем и префиксом
  2. 2
    Заимствуйте документ и его табличную часть в расширение
  3. 3
    Добавьте реквизит в табличную часть, укажите тип и длину
  4. 4
    Заимствуйте форму документа и добавьте реквизит в таблицу формы
  5. 5
    Обновите конфигурацию базы данных, подтвердив реструктуризацию
  6. 6
    Проверьте в режиме предприятия: ввод, сохранение, перепроведение документа

Доработка конфигурации напрямую: когда без неё не обойтись

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

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

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

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

В отчётах на СКД достаточно добавить поле в набор данных и в настройки варианта отчёта. Если реквизит добавлен штатным механизмом дополнительных реквизитов, в типовых отчётах он доступен через закладку «Дополнительные поля» настройки отчёта — но опять же только на уровне документа, не строк.

Проверка результата и типичные ошибки

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

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

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

Отображение колонки
Норма

Колонка видна в табличной части, значение вводится и сохраняется

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

Колонки нет на форме или значение пропадает после записи

Проведение документа
Норма

Документ проводится без ошибок, движения формируются корректно

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

Ошибки проведения, ссылки на несуществующие реквизиты в сообщениях

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

Новое значение выводится в нужной колонке печатной формы

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

Колонка пустая или печатная форма не открывается

Обновление конфигурации
Норма

Расширение остаётся работоспособным после обновления типовой конфигурации

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

После обновления расширение отключается с ошибками контроля

Если после обновления типовой конфигурации расширение перестало применяться, откройте список расширений в режиме предприятия («НСИ и администрирование» → «Печатные формы, отчеты и обработки» → «Расширения») и посмотрите текст ошибки контроля. Чаще всего причина — изменение заимствованной формы в новом релизе; тогда форму в расширении нужно обновить заново из текущей версии конфигурации.

Итог

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

Штатные дополнительные реквизиты работают только на уровне документа целиком. Для строк табличной части используйте расширение конфигурации (предпочтительно) или доработку в конфигураторе. Всегда выводите реквизит на форму, проверяйте печать, проведение и обмен, а любые изменения выполняйте сначала на копии базы.

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

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

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

Что лучше — расширение или доработка конфигурации?

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

Пропадут ли данные нового реквизита при обновлении конфигурации?

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

Участвует ли новый реквизит в обмене данными между базами?

Автоматически — нет. Правила обмена (например, для КД или EnterpriseData) нужно дорабатывать отдельно, иначе значение реквизита не будет передаваться в другую базу.

Можно ли добавить реквизит сразу в несколько табличных частей документа?

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

Почему реквизит есть в конфигураторе, но не виден пользователям?

Наиболее частая причина — реквизит не добавлен в элементы формы. Вторая причина — у пользователя нет прав на объект или применён функциональный вариант отчёта/формы. Проверьте дерево элементов формы и права доступа к документу.