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

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

1. Добавление колонки через пользовательские настройки отчета

Самый быстрый способ — использовать встроенные инструменты настройки отчетов, доступные даже без прав администратора. Этот метод подходит для стандартных отчетов (например, «Оборотно-сальдовая ведомость», «Анализ счета») и не требует изменения конфигурации.

Чтобы добавить колонку:

  • 📊 Откройте нужный отчет через меню Отчеты → [Название отчета].
  • ⚙️ Нажмите кнопку Настройки (или Еще → Изменить форму в новых версиях).
  • 📌 В разделе Поля или Колонки найдите требуемый показатель (например, «Количество», «Сумма НДС»).
  • 🔄 Перетащите поле в область Колонки или отметьте галочкой в списке доступных полей.
⚠️ Внимание: В некоторых отчетах (например, «Анализ субконто») добавленные колонки могут дублировать данные, если не настроена группировка. Перед сохранением проверьте, не появились ли лишние строки с одинаковыми значениями.

Этот метод работает для статических колонок (заранее предусмотренных разработчиком). Если нужного поля нет в списке, потребуется редактировать схему компоновки данных — об этом расскажем далее.

📊 Как часто вы изменяете стандартные отчеты 1С?
Ежедневно
Раз в неделю
Раз в месяц
Реже
Никогда

2. Редактирование схемы компоновки данных (СКД)

Система компоновки данных (СКД) — это мощный инструмент , позволяющий гибко настраивать структуру отчетов. Чтобы добавить колонку через СКД:

  1. Откройте отчет в режиме Конфигуратор (потребуются права администратора).
  2. Найдите объект отчета в дереве метаданных: Отчеты → [Ваш отчет] → Схема компоновки данных.
  3. В редакторе СКД перейдите на вкладку Настройки и разверните ветку Структура.
  4. В разделе Колонки нажмите Добавить и выберите тип колонки:
    • 📋 Поле — для вывода данных из базы (например, «СуммаДокумента»)
    • 🧮 Выражение — для расчетных колонок (например, «Сумма * КурсВалюты»)
    • 📊 Группировка — для создания иерархических колонок (например, разбивка по месяцам)

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

Период = &ТекущийМесяц

Выражение: Выборка.Период = &ТекущийМесяц

⚠️ Внимание: При добавлении вычисляемых колонок (например, «Прибыль = Доходы - Расходы») убедитесь, что поля-источники имеют совместимые типы данных. Иначе отчет выдаст ошибку Тип не совпадает с типом колонки.

Данные в колонке отображаются корректно|Нет дублирующихся колонок|Выражения не содержат синтаксических ошибок|Права доступа позволяют сохранять изменения-->

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

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

Пример кода для добавления колонки в отчет через обработчик ПриКомпоновкеРезультата:

Процедура ПриКомпоновкеРезультата(ДанныеРасшифровки, СтандартнаяОбработка)

КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;

Макет = КомпоновщикМакета.Выполнить(Объект.СхемаКомпоновкиДанных);

// Добавляем новую колонку

НоваяКолонка = Макет.Колонки.Добавить();

НоваяКолонка.Имя = "НоваяКолонка";

НоваяКолонка.Заголовок = "Прибыль на ед.";

НоваяКолонка.Выражение = "Сумма / Количество";

СтандартнаяОбработка = Ложь;

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

Для динамического изменения структуры отчета в зависимости от параметров используйте конструкцию:

Если Параметры.ПоказыватьДополнительныеДанные Тогда

// Добавляем колонку

КонецЕсли;

Что делать, если колонка не отображается?

Проверьте, что:

1. Имя колонки уникально (нет повторов в схеме).

2. Выражение корректно с точки зрения синтаксиса.

3. В настройках отчета не скрыты пользовательские колонки (Показывать настройки → Колонки).

4. Права пользователя позволяют просматривать данные этого поля (настройка ролей в Администрирование → Пользователи).

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

Даже опытные пользователи сталкиваются с проблемами при добавлении колонок. Вот самые распространенные ошибки и способы их решения:

Ошибка Причина Решение
Колонка не отображается в отчете Не сохранены настройки СКД или отсутствуют права Проверьте права пользователя и нажмите Сохранить в редакторе схемы
Данные в колонке не обновляются Кэширование отчета или устаревшая схема Очистите кэш (Файл → Открыть кэш) или перезапустите сеанс
Ошибка "Поле не найдено" Опечатка в имени поля или изменена структура базы Проверьте имя поля в метаданных (Конфигуратор → Редактировать)
Дублирование данных в колонках Неправильная группировка или повторяющиеся поля Настройте группировку в СКД или удалите дублирующиеся колонки

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

💡

Перед массовым изменением отчетов создайте тестовую копию базы (Администрирование → Выгрузить информационную базу). Это позволит быстро откатиться при ошибках.

5. Особенности работы с динамическими колонками

Динамические колонки (например, разбивка по месяцам, кварталам или контрагентам) требуют особого подхода. Их нельзя добавить через пользовательские настройки — только через СКД или программно.

Пример настройки динамических колонок по периодам:

  1. В схеме компоновки данных добавьте ресурс с типом Период.
  2. В настройках колонок укажите параметр виртуальной таблицы:
    Периодичность = Месяц
    

    НачалоПериода = &НачалоГода

    КонецПериода = &КонецГода

  3. Для каждого периода будет создана отдельная колонка автоматически.
  4. Для динамических колонок по справочникам (например, «Товары») используйте конструкцию:

    Группировка = Товары.Ссылка
    

    Упорядочивание = Товары.Наименование

    ⚠️ Внимание: Динамические колонки могут значительно увеличить время формирования отчета. Для больших баз данных (более 100 000 записей) используйте индексированные поля или настройте отбор данных заранее.

    6. Оптимизация отчетов после добавления колонок

    Каждая новая колонка увеличивает нагрузку на систему. Чтобы отчеты формировались быстро:

    • ⚡ Используйте Индексы для полей, по которым выполняется группировка или отбор.
    • 🗃️ Настройте Кэширование отчета (Свойства отчета → Кэшировать данные).
    • 📉 Ограничивайте период данных (например, вместо «За весь год» используйте «За текущий квартал»).
    • 🔍 Для сложных отчетов применяйте Временные таблицы в запросах.

Пример оптимизированного запроса для колонки с расчетом:

ВЫБРАТЬ

Товары.Наименование КАК Товар,

СУММА(Документ.Количество) КАК Количество,

СУММА(Документ.Сумма) / СУММА(Документ.Количество) КАК СредняяЦена

ИЗ

Документ.РеализацияТоваровУслуг КАК Документ

ЛЕВОЕ СОЕДИНЕНИЕ Справочник.Товары КАК Товары

ПО Документ.Товар = Товары.Ссылка

ГДЕ

Документ.Дата МЕЖДУ &НачалоПериода И &КонецПериода

СГРУППИРОВАТЬ ПО

Товары.Наименование

💡

Добавление колонок через СКД или программно требует прав администратора. Если вы работаете в облачной версии 1С (например, 1С:Фреш), эти методы могут быть ограничены. Уточните возможности у вашего провайдера.

FAQ: Ответы на частые вопросы

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

Да, но только через пользовательские настройки (раздел 1 статьи). Для редактирования СКД или программных изменений нужны права на изменение конфигурации.

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

Это связано с увеличением объема обрабатываемых данных. Оптимизируйте запрос (раздел 6) или используйте Индексы для полей группировки.

Как добавить колонку с формулой (например, "Сумма * Курс")?

Используйте Вычисляемую колонку в СКД или программно через свойство Выражение. Пример: "СуммаДокумента * КурсВалюты".

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

Да, но для этого нужно редактировать Макет печатной формы в конфигураторе. Это отдельная процедура, не связанная с настройкой СКД.

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

Восстановите стандартные настройки через Еще → Восстановить стандартные настройки или откатите изменения в конфигураторе (Администрирование → История изменений).