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

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

Как добавить группу колонок в 1С

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

Группа колонок в 1С — это элемент управляемой формы, который объединяет несколько колонок таблицы под общим заголовком. Такая группировка делает широкие табличные части читаемыми: например, колонки «Количество», «Цена» и «Сумма» можно собрать под общим заголовком «Поступление», а рядом разместить группу «Реализация» с аналогичным набором полей.

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

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

Где применяется группировка колонок и какие есть ограничения

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

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

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

Добавление группы колонок в конфигураторе

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

Откройте конфигуратор, найдите нужный объект (документ, справочник, обработка) и перейдите на закладку «Формы». Откройте форму двойным щелчком. В дереве элементов формы найдите таблицу, для которой нужна группа колонок.

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

Свойство «Группировка» определяет внешний вид. «Горизонтальная» — колонки идут рядом под общим заголовком, это стандартный вариант. «Вертикальная» меняет компоновку, а «В ячейке» объединяет несколько полей в одной ячейке строки таблицы, что полезно для компактного отображения, например, количества и единицы измерения в одной колонке.

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

Добавление группы колонок программно

Программный способ нужен, когда состав колонок формируется динамически: например, в отчёте на управляемой форме, где набор периодов или складов заранее неизвестен. Код размещается в модуле формы, обычно в обработчике «ПриСозданииНаСервере».

Логика такая: сначала создаётся группа с типом ГруппаФормы и видом ГруппаКолонок, родителем указывается таблица. Затем у существующих или новых колонок меняется свойство Родитель на созданную группу — именно смена родителя «помещает» колонку внутрь группы.

bsl
&НаСервере
Процедура СоздатьГруппуКолонок()

    Группа = Элементы.Добавить("ГруппаПоступление", Тип("ГруппаФормы"), Элементы.Товары);
    Группа.Вид = ВидГруппыФормы.ГруппаКолонок;
    Группа.Заголовок = "Поступление";
    Группа.Группировка = ГруппировкаКолонок.Горизонтальная;

    Элементы.ТоварыКоличество.Родитель = Группа;
    Элементы.ТоварыЦена.Родитель = Группа;
    Элементы.ТоварыСумма.Родитель = Группа;

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

Обратите внимание на порядок вызова: сначала группа добавляется в таблицу методом Элементы.Добавить с указанием родителя-таблицы, потом устанавливается вид группы. Если установить вид до добавления или указать родителем не таблицу, платформа выдаст ошибку о недопустимом родителе.

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

Настройка внешнего вида группы

После создания группы стоит настроить её отображение. Свойство «Заголовок» задаёт текст общего заголовка; если оставить его пустым, над колонками будет пустая строка, что выглядит как ошибка. Свойство «ОтображатьЗаголовок» позволяет скрыть заголовок осознанно — например, когда группа нужна только для горизонтального выравнивания.

Полезные свойства отдельных колонок внутри группы: «Ширина» и «АвтоШирина» управляют размером, «ПоложениеЗаголовка» может скрывать заголовки вложенных полей (актуально для группировки «В ячейке», где два поля показываются в одной колонке). Для числовых колонок уместно выравнивание по правому краю через свойство «ГоризонтальноеПоложение».

Варианты группировки колонок

Горизонтальная

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

В ячейке

Несколько полей отображаются в одной ячейке таблицы. Экономит ширину, но затрудняет сортировку и ввод — применяйте для связанных пар вроде «количество + единица измерения».

Вертикальная

Колонки располагаются друг под другом в строке. Редкий вариант, оправдан при очень узких таблицах; для большинства задач избыточен.

Проверка результата

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

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

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

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

Общий заголовок группы
Норма

Заголовок отображается над нужными колонками одной строкой

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

Заголовок отсутствует, обрезан или появилась пустая строка над колонками

Порядок колонок
Норма

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

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

Порядок нарушен — проверьте расположение элементов в дереве формы

Ввод данных
Норма

Значения вводятся и сохраняются во всех колонках группы

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

Поле недоступно или пустое — проверьте свойство «ПутьКДанным» колонки

Поведение формы
Норма

Форма открывается без ошибок, ширина колонок адекватна

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

Ошибка при открытии — обычно неверный родитель группы или колонки

Типичные ошибки и как их избежать

Самая частая проблема — попытка добавить группу колонок не в таблицу, а на форму верхнего уровня. Платформа либо не даст выбрать вид «Группа колонок», либо выдаст ошибку при открытии формы. Решение: убедитесь, что родителем группы является именно элемент таблицы.

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

Типичные ошибки
01
Группа создана вне таблицы — форма не открывается с ошибкой о недопустимом виде группы; перенесите группу внутрь элемента таблицы
02
У колонок не изменён родитель — колонки остаются вне группы, общий заголовок висит над пустотой
03
Пустой заголовок группы — над колонками отображается пустая строка, форма выглядит сломанной
04
Слишком широкая таблица после группировки — колонки не помещаются, появляется горизонтальная прокрутка; уменьшите ширину или скройте редко используемые колонки
05
Программное создание до инициализации реквизитов — колонки без пути к данным отображаются пустыми

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

Альтернативы группе колонок

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

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

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

Итог

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

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

Частые вопросы о группах колонок в 1С

Можно ли вложить одну группу колонок в другую?

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

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

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

Как программно изменить порядок колонок внутри группы?

Используйте метод Элементы.Переместить(Элемент, Родитель, СледующийЭлемент) — он переносит колонку в нужную позицию внутри группы. Третий параметр задаёт элемент, перед которым должна оказаться перемещаемая колонка.

Работает ли группа колонок в динамическом списке?

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

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

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

Чем группа колонок отличается от обычной группы формы?

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