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

Отчеты и Аналитика · 10 мин

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

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

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

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

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

Что значит «развернуть таблицу» и когда это нужно

Транспонирование меняет ориентацию данных: значения одного измерения выводятся по горизонтали вместо вертикали. Это удобно, когда измерений немного (например, 12 месяцев или 5 складов), а строк много — таблица становится компактнее и читается как матрица.

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

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

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

Как выбрать способ

Данные выводятся стандартным отчётом и нужно просто поменять видИспользуйте сводную таблицу в настройках отчёта
Вы создаёте или дорабатываете отчёт на СКДДобавьте группировку по колонкам в структуре настроек
Данные обрабатываются в коде или выгружаются нетиповым образомТранспонируйте таблицу значений программно
Нужно перевернуть уже сформированный табличный документИспользуйте обход ячеек табличного документа в коде или скопируйте данные в Excel

Способ 1: сводная таблица в отчёте без программирования

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

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

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

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

Способ 2: группировка по колонкам в СКД

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

В конструкторе настроек СКД (в конфигураторе или в режиме предприятия через «Изменить вариант») добавьте в структуру элемент «Таблица». В ветку «Строки» поместите группировку по основному измерению, в ветку «Колонки» — группировку по измерению, которое должно стать заголовками колонок. Ресурсы укажите на закладке «Ресурсы» схемы компоновки.

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

Для колонок удобно использовать периодичность: вместо группировки по полю «Период» добавьте вычисляемое поле с началом месяца или недели — тогда колонки будут аккуратно подписаны «Январь», «Февраль» и т.д., а не полными датами.
ПЗ
Практическое замечание

Способ 3: программное транспонирование таблицы значений

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

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

bsl
Процедура РазвернутьТаблицу(ИсходнаяТаблица, ИмяКолонкиКлюч, ИмяКолонкиЗначение)
	НоваяТаблица = Новый ТаблицаЗначений;
	ЗначенияКолонок = ИсходнаяТаблица.Скопировать();
	ЗначенияКолонок.Свернуть(ИмяКолонкиКлюч);
	Для Каждого СтрокаКолонки Из ЗначенияКолонок Цикл
		ИмяНовойКолонки = "К" + СтрЗаменить(Строка(СтрокаКолонки[ИмяКолонкиКлюч]), " ", "_");
		НоваяТаблица.Колонки.Добавить(ИмяНовойКолонки);
	КонецЦикла;
КонецПроцедуры

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

Способ 4: разворот готового табличного документа

Если таблица уже сформирована как табличный документ (макет, печатная форма) и редактировать настройки отчёта нельзя, есть два пути. Первый — выгрузить документ в Excel (Файл — Сохранить копию в формате листа Excel) и воспользоваться там функцией «Транспонировать» через специальную вставку. Это приемлемо для разовой задачи.

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

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

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

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

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

Общий итог по ресурсу
Норма

Совпадает с итогом исходного вертикального отчёта

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

Итог меньше или больше — есть потери или дубли

Количество колонок
Норма

Соответствует числу уникальных значений измерения

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

Лишние пустые колонки или колонки с техническими именами

Пустые значения измерения
Норма

Пустые значения сгруппированы в отдельную понятную колонку

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

Записи с пустым измерением исчезли из отчёта

Время формирования
Норма

Отчёт формируется за приемлемое время

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

Сотни колонок, отчёт «зависает» — нужен отбор

Типичные ошибки
01
Вынос в колонки измерения с сотнями значений — отчёт становится нечитаемым и медленным; добавьте отбор или выберите другое измерение
02
Игнорирование дублей: несколько записей на одну ячейку без правила агрегации даёт потерю данных при программном развороте
03
Использование значений как имён колонок без очистки — пробелы и спецсимволы вызывают ошибку при добавлении колонки таблицы значений
04
Ожидание, что разворот сохранится в типовом варианте отчёта: сохраните настройки как свой вариант, иначе при следующем открытии отчёт вернётся к исходному виду

Часто задаваемые вопросы

Можно ли развернуть таблицу в 1С без доработок, штатными средствами?

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

Как сохранить развёрнутый вид отчёта, чтобы не настраивать заново?

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

Почему в сводной таблице пустые ячейки, хотя данные есть?

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

Чем разворот в 1С отличается от транспонирования в Excel?

В Excel транспонирование — механический поворот диапазона ячеек. В 1С разворот выполняется на уровне данных: значения измерения становятся колонками, а на пересечении автоматически агрегируются ресурсы (суммируются). Это мощнее, но требует корректной структуры запроса или настроек.

Есть ли ограничение на количество колонок при развороте?

Жёсткого платформенного лимита для практических задач обычно не достигают, но реальные ограничения — скорость формирования и читаемость. При сотнях колонок отчёт формируется долго и неудобен для анализа; рекомендуется ограничивать данные отборами и выносить в колонки измерения с небольшим числом значений.

Итог

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

Разворот таблицы в 1С делается сводной таблицей в настройках отчёта, группировками по строкам и колонкам в СКД либо программным транспонированием таблицы значений. Выносите в колонки только измерения с малым числом значений, контролируйте дубли и всегда сверяйте итоги с исходным отчётом.