Способы расширения таблиц в платформе 1С:Предприятие 8.3

Иван Корнев·21.05.2024·4 мин

Чтобы добавить колонку в 1С 8.3, выберите метод в зависимости от задачи: для изменения вида списка используйте Настройки формы (без кода), для новых полей в документах — редактирование конфигурации, а для динамических отчетов — работу с макетами или программное создание колонок в модуле. Ниже приведены пошаговые инструкции для каждого сценария.

Добавление колонки через интерфейс (без программирования)

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

Настройка списка в режиме «1С:Предприятие»

Пользователь может самостоятельно настроить вид таблицы:

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

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

Использование отчетов и обработок

Если стандартных полей недостаточно, можно использовать универсальные отчеты:

  • Зайдите в раздел «Отчеты»«Универсальный отчет».
  • Выберите тип объекта (Документ, Справочник).
  • В настройках отчета добавьте необходимые поля из структуры объекта. Это создаст временную таблицу с нужными колонками для анализа.

Редактирование конфигурации: новые поля в документах

Если требуемой информации нет в базе, её необходимо добавить в структуру метаданных. Это требует прав доступа к конфигуратору.

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

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

Работа с печатными формами и макетами

Для добавления колонки в печатный документ (счет, накладная) используется редактор макетов.

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

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

Программное добавление колонок (для разработчиков)

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

Создание колонки в Табличном Документе

Используется объект ТабличныйДокумент. Колонки добавляются через область макета или программно.

// Пример добавления колонки программно в табличный документ
ТабДок = Новый ТабличныйДокумент;
ОбластьКолонки = ТабДок.Область("R1C1:R1C2"); // Пример области заголовка

// Установка заголовка
ТабДок.Область("R1C3").Текст = "Новая колонка";

// Вывод данных (пример цикла)
Для Каждого СтрокаТЧ Из ДокументОбъект.Товары Цикл
    // Логика заполнения ячеек...
    // Ячейка определяется адресом, например "R" + НомерСтроки + "C3"
КонецЦикла;

Динамическое формирование структуры ТаблицыЗначений

При формировании отчета в коде часто используется ТаблицаЗначений.

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

// Добавление вычисляемой колонки
ТЗ.Колонки.Добавить("СуммаБезНДС", ОписаниеТипов("Число"));

// Заполнение
Строка = ТЗ.Добавить();
Строка.Номенклатура = Элемент;
Строка.Количество = Кол;
Строка.СуммаБезНДС = Сумма / 1.20; // Пример вычисления

Частые ошибки

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

FAQ

Можно ли добавить колонку только для одного пользователя? Да. Используйте функцию «Изменить форму» в режиме предприятия. Эти настройки сохраняются в персональных настройках конкретного пользователя и не влияют на остальных.

Как добавить колонку с формулой (как в Excel)? В стандартных списках 1С формулы «на лету» не поддерживаются напрямую через интерфейс. Необходимо создать вычисляемый реквизит в конфигураторе с указанием выражения или использовать обработку «Универсальный отчет» с группировками и вычислениями.

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