Новая колонка в 1С: табличная часть, форма, отчёт и список

· 10 мин

Содержание

Чтобы добавить столбец в табличную часть документа 1С, в Конфигураторе создают новый реквизит табличной части, перетаскивают его на форму и обновляют конфигурацию базы данных (F7). Если колонка в программе уже есть, но скрыта, Конфигуратор не нужен: хватит команды Ещё → Изменить форму и одной галочки.

Типичная просьба бухгалтера: «В реализации нужна колонка с номером партии» или «Покажите ИНН контрагента прямо в списке». Это разные задачи. В первой меняется структура данных, во второй — только отображение. Отдельно стоят отчёты на СКД, расширения и программное добавление колонки. Всё описано для платформы 8.3 и интерфейса «Такси», механизм общий для всех конфигураций.

С чего начать: какую таблицу вы меняете

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

Что за таблицаГде хранятся данныеКак добавить колонкуНужен Конфигуратор
Табличная часть документа или справочникаВ базеНовый реквизит табличной частиДа
Колонка уже есть, но скрытаВ базеЕщё → Изменить формуНет
Список документов или справочникаВ базе (динамический список)Поле реквизита или поле запросаИногда
ОтчётСчитается при формированииПоле в варианте отчётаЧаще нет
Таблица значений в обработкеВ памятиКолонка в коде или в реквизите формыДа

Сначала проверьте самое простое. Откройте документ, нажмите Ещё → Изменить форму и раскройте группу с табличной частью. Типовые конфигурации прячут часть колонок: счета учёта, страну происхождения, номер ГТД . Если нужное поле там есть — включите флажок и нажмите «ОК». Задача решена без программиста.

Что именно нужно сделать с колонкой?

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

Это основной способ, когда в документе нужно хранить новые данные. Пример: в «Реализацию товаров и услуг» добавляем колонку «Номер партии» типа Строка длиной 30.

Перед изменением структуры сделайте резервную копию базы. Выгрузите её через Администрирование → Выгрузить информационную базу в Конфигураторе. Если что-то пойдёт не так, файл .dt вернёт базу в исходное состояние.

Шаг 1. Откройте конфигурацию и проверьте поддержку

  1. Запустите 1С в режиме «Конфигуратор».
  2. Откройте дерево: Конфигурация → Открыть конфигурацию.
  3. Найдите объект: Документы → РеализацияТоваровУслуг.

Если значки объектов серые с замочком, конфигурация на поддержке и редактировать её нельзя. Включить правку можно в Конфигурация → Поддержка → Настройка поддержки. Но после этого каждое обновление типовой будет идти через сравнение и объединение. Для типовой БП 3.0 или ЗУП 3.1 лучше выбрать расширение, о нём ниже.

Шаг 2. Создайте реквизит табличной части

  1. Дважды щёлкните по документу, откроется окно редактирования объекта.
  2. Перейдите на вкладку «Данные».
  3. Выделите нужную табличную часть, например «Товары».
  4. Нажмите кнопку добавления реквизита табличной части (значок с плюсом над списком).
  5. В палитре свойств задайте имя, синоним и тип.

Как заполнить свойства:

  • 🏷 Имя — без пробелов, с большой буквы на каждом слове: НомерПартии.
  • 📝 Синоним — то, что увидит пользователь в заголовке колонки: «Номер партии».
  • 🔢 Тип — Строка (длина 30), Число (длина и точность), Дата, ссылка на справочник.
  • ✅ Проверка заполнения — «Выдавать ошибку», если без значения документ не должен записываться.

Для числовых колонок с деньгами берите длину 15 и точность 2. Для количества — 15 и 3. Так новые колонки будут вести себя как типовые.

Шаг 3. Обновите конфигурацию базы данных

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

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

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

Как вывести новую колонку на форму документа

Управляемая форма не подхватывает новые реквизиты сама. Колонку нужно поставить на форму вручную.

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

Полезные свойства колонки

Выделите новый элемент в дереве «Элементы» и откройте палитру свойств.

СвойствоЧто даёт
ЗаголовокТекст в шапке колонки, если он должен отличаться от синонима
ШиринаШирина колонки в символах
Только просмотрЗапрет ручного ввода, удобно для расчётных значений
ВидимостьЕсли снять флажок, колонка будет скрыта, но доступна в Ещё → Изменить форму
Подсказка вводаСерый текст внутри пустого поля

Если колонку надо заполнять автоматически, например сумму с наценкой, обработчик пишут в модуле формы на событие ПриИзменении соседнего поля. Без кода колонка будет обычным полем ручного ввода.

Новая колонка не появится в печатной форме и в проводках сама. Макет печати и обработку проведения меняют отдельно.

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

Отчёты в типовых конфигурациях построены на системе компоновки данных (СКД). Данные в них не хранятся, поэтому столбец добавляют в настройки, а не в структуру базы.

В пользовательском режиме

Подходит, когда нужное поле уже есть в наборе данных отчёта.

  1. Откройте отчёт и выполните Ещё → Прочее → Изменить вариант отчёта.
  2. В дереве структуры выделите группировку или «Детальные записи».
  3. На вкладке «Поля» нажмите «Добавить» и выберите поле из списка доступных.
  4. Нажмите «Завершить редактирование» и сформируйте отчёт.

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

Поле-выражение: своя формула

Если нужна расчётная колонка (наценка в процентах, сумма без НДС), в том же редакторе варианта есть вкладка «Пользовательские поля».

  1. Нажмите «Добавить» и выберите «Новое поле-выражение».
  2. Задайте заголовок, например «Наценка, %».
  3. В выражении детальных записей напишите формулу через имена полей.
  4. Добавьте новое поле на вкладке «Поля».

Пример выражения:

ВЫБОР КОГДА Себестоимость = 0 ТОГДА 0 ИНАЧЕ (Выручка - Себестоимость) / Себестоимость * 100 КОНЕЦ

Проверка на ноль обязательна. Без неё строка с нулевой себестоимостью сломает итог.

В Конфигураторе: вычисляемое поле СКД

Для своих отчётов поле добавляют прямо в схему:

  • 📐 вкладка «Вычисляемые поля» — путь к данным, выражение и заголовок;
  • ➕ вкладка «Ресурсы» — если колонку надо суммировать в итогах;
  • ⚙️ вкладка «Настройки» — поле добавляют в выбранные поля нужной группировки.

Частая ошибка: поле создали, а в «Выбранные поля» не добавили. Отчёт формируется, но колонки нет.

Новая колонка через расширение конфигурации

Расширение — способ доработать типовую конфигурацию, не снимая её с поддержки. Обновления типовой ставятся как обычно, доработка лежит отдельно. Механизм появился в 8.3.6, а на актуальных версиях 8.3 расширение умеет добавлять свои реквизиты в заимствованные объекты, в том числе в табличные части.

Порядок действий

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

Расширение, которое добавляет реквизиты, меняет структуру данных. Поэтому его применение тоже требует обновления базы.

Что учесть

  • 🔁 После обновления типовой проверяйте, что расширение подключилось без ошибок.
  • 🧩 Префикс в именах защищает от совпадения с реквизитом, который фирма-разработчик добавит в следующем релизе.
  • 🗂 В БП 3.0 загруженные расширения видны в Администрирование → Печатные формы, отчеты и обработки → Расширения.
  • 🚫 Удаление расширения удаляет и данные его реквизитов. Перед удалением сохраните копию базы.

Динамические списки и таблицы в обработках

Колонка в списке документов

Список документов — это динамический список. Он показывает данные, которые читает запросом, поэтому колонку добавляют в выборку.

Без Конфигуратора. В форме списка выполните Ещё → Изменить форму. Для динамических списков там можно добавить поля, в том числе реквизиты связанных объектов: раскройте Контрагент и отметьте ИНН. Колонка появится только у вас, другие пользователи её не увидят.

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

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

  1. Выделите реквизит Список и откройте его настройку из палитры свойств.
  2. Откройте текст запроса в конструкторе и добавьте поле, задав ему понятный псевдоним.
  3. Сохраните запрос. Поле появится в дереве реквизитов Список.
  4. Перетащите его в элемент таблицы.

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

Таблица значений в обработке

В своей обработке таблица на форме обычно привязана к реквизиту формы типа ТаблицаЗначений. Колонку добавляют в этот реквизит: правой кнопкой по нему в панели «Реквизиты» — «Добавить колонку». Затем колонку перетаскивают в элемент таблицы.

В коде на сервере колонку таблицы значений создают так:

Таблица = Новый ТаблицаЗначений;
Таблица.Колонки.Добавить("Номенклатура", Новый ОписаниеТипов("СправочникСсылка.Номенклатура"), "Номенклатура");
Таблица.Колонки.Добавить("Количество", Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 3)), "Количество", 10);

Если колонка нужна на уже открытой форме и заранее неизвестна, используют ИзменитьРеквизиты и добавляют элемент формы:

&НаСервере
Процедура ДобавитьКолонкуКомментарий()

    ДобавляемыеРеквизиты = Новый Массив;
    ДобавляемыеРеквизиты.Добавить(Новый РеквизитФормы("Комментарий",
        Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100)),
        "ТаблицаДанных", "Комментарий"));
    ИзменитьРеквизиты(ДобавляемыеРеквизиты);

    НовоеПоле = Элементы.Добавить("ТаблицаДанныхКомментарий", Тип("ПолеФормы"), Элементы.ТаблицаДанных);
    НовоеПоле.Вид = ВидПоляФормы.ПолеВвода;
    НовоеПоле.ПутьКДанным = "ТаблицаДанных.Комментарий";

КонецПроцедуры

Здесь ТаблицаДанных — имя реквизита формы и одноимённого элемента таблицы. Без второй половины кода реквизит создастся, но на экране колонки не будет.

Почему колонка не появилась: разбор ошибок

Диагностика: выберите симптом

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

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

Можно ли добавить столбец в документ без Конфигуратора?
Нельзя, если колонка должна хранить новые данные. Но в БП 3.0 и других конфигурациях на БСП есть «Дополнительные реквизиты и сведения»: они добавляются в режиме Предприятия, правда только в шапку объекта, а не в табличную часть.
Пропадёт ли новая колонка после обновления типовой конфигурации?
Если вы включали изменение и правили конфигурацию напрямую, колонка сохранится при корректном объединении, но обновление станет сложнее. Колонка из расширения переживает обновления без объединения.
Как сделать, чтобы новая колонка выводилась в печатной форме?
Нужно доработать макет печати и процедуру, которая заполняет его данными. Само по себе добавление реквизита на печать не влияет.
Как добавить колонку в таблицу Excel, выгруженную из 1С?
Это уже обычная работа в Excel: вставьте столбец после выгрузки. Если колонка нужна при каждой выгрузке, добавьте её в отчёт или в список через настройки, и она будет попадать в файл автоматически.
Можно ли перенести колонку в другую базу?
Да. Удобнее всего через файл расширения .cfe: выгрузите его в одной базе и загрузите в другой, затем обновите конфигурацию базы данных.