Новая колонка в отчёте 1С: поля, вычисления, группировки и код
Содержание
Чтобы добавить колонку в отчет 1С, откройте отчёт, нажмите Настройки..., переключите вид настроек на расширенный, перейдите на вкладку Поля и сортировки, отметьте нужное поле и нажмите Закрыть и сформировать. Так работает большинство отчётов в типовых конфигурациях на 8.3 (БП 3.0, ЗУП 3.1, УТ 11): они построены на системе компоновки данных (СКД), а значит, колонки настраиваются без программиста.
Если нужного поля в списке нет, есть ещё три пути: достать реквизит через ссылочное поле, собрать вычисляемое поле из формулы или доработать схему отчёта в Конфигураторе. Первые два доступны любому пользователю с правом сохранять варианты отчётов.
Как понять, какой способ подойдёт вашему отчёту
Сначала определите, с каким отчётом вы имеете дело. От этого зависит, где искать настройки и хватит ли прав пользователя.
📌 Признаки отчёта на СКД:
- в командной панели есть кнопка
Настройки...или менюЕщёс пунктом про изменение варианта отчёта; - у отчёта есть варианты (выпадающий список или пункт
Выбрать вариант...); - при расширенных настройках видны вкладки
Отборы,Поля и сортировки,Оформление,Структура.
📌 Признаки «жёсткого» отчёта:
- кнопки настроек нет совсем, есть только период и пара флажков;
- форма нарисована программистом, а табличный документ выводится по фиксированному макету.
Во втором случае колонку добавляет только разработчик — через доработку макета и кода. Пользователь тут бессилен.
Бухгалтерские отчёты в БП 3.0 (оборотно-сальдовая ведомость, анализ счёта, карточка счёта) тоже на СКД, но с собственной панелью: она открывается кнопкой Показать настройки. Колонки там управляются показателями (БУ, НУ, количество, валютная сумма) и детализацией, а не списком полей.
| Задача | Способ | Нужны права |
|---|---|---|
| Поле есть в списке доступных | Отметить в настройках варианта | Пользователь |
| Нужен реквизит справочника (ИНН, артикул) | Раскрыть ссылочное поле | Пользователь |
| Нужна формула (наценка, доля, разница) | Пользовательское поле-выражение | Пользователь |
| Колонка на каждый месяц, склад, сотрудника | Группировка в колонках таблицы | Пользователь |
| Данных нет в запросе отчёта | Правка схемы СКД, расширение | Разработчик |
Добавляем поле в отчёт через настройки СКД
Это основной сценарий. Пример: в отчёте «Остатки товаров» нужно вывести колонку с единицей измерения.
- Сформируйте отчёт хотя бы один раз, чтобы видеть исходную картину.
- Нажмите
Настройки.... - В верхней части формы настроек выберите вид
Расширенный. В простом виде вкладки с полями может не быть. - Откройте вкладку
Поля и сортировки. - В левом списке полей отметьте флажком нужное поле. Если поля нет среди отмеченных, нажмите кнопку добавления над списком и выберите его из полного перечня доступных полей.
- Перетащите поле стрелками вверх или вниз: порядок в списке равен порядку колонок слева направо.
- Нажмите
Закрыть и сформировать.
Как достать реквизит связанного объекта
Самый полезный приём, о котором многие не знают. Поля-ссылки (Номенклатура, Контрагент, Сотрудник, Договор) в списке доступных полей раскрываются плюсиком. Внутри — все реквизиты этого справочника.
Так получаются колонки:
- 🔹
Номенклатура.Артикул— артикул рядом с названием товара; - 🔹
Контрагент.ИНН— ИНН в отчёте по расчётам; - 🔹
Договор.Дата— дата договора в акте сверки или ведомости; - 🔹
Сотрудник.Подразделение— подразделение в отчёте по зарплате.
Раскрывать можно на несколько уровней вглубь: например, Номенклатура.ВидНоменклатуры. Каждый уровень добавляет соединение в запрос, поэтому на больших базах отчёт станет формироваться дольше.
Как сохранить колонку надолго
Изменения настроек по умолчанию живут до закрытия отчёта или до переключения варианта. Чтобы не настраивать каждый раз, сохраните вариант: в меню Ещё выберите сохранение варианта отчёта, дайте ему понятное имя («Остатки с артикулом») и при необходимости откройте доступ другим пользователям.
Не перезаписывайте типовой вариант отчёта. Создайте свой. Если коллеги привыкли к стандартному виду, новая колонка в общем варианте их запутает.
Вычисляемая колонка: своя формула в отчёте
Когда нужной цифры нет ни в одном поле, её можно посчитать прямо в отчёте. Для этого в СКД есть пользовательские поля. Их создают без Конфигуратора.
Где найти:
- Откройте полный редактор варианта: меню
Ещё→ пункт изменения варианта отчёта. - Перейдите на вкладку
Пользовательские поля. - Добавьте новое поле-выражение.
- Задайте заголовок, например «Наценка, %».
- Заполните два выражения: для детальных записей и для итоговых записей.
- Сохраните, затем отметьте новое поле в
Выбранных полях.
Пример: процент наценки
Выражение детальных записей:
ВЫБОР
КОГДА [Себестоимость] = 0 ТОГДА 0
ИНАЧЕ ([Выручка] - [Себестоимость]) / [Себестоимость] * 100
КОНЕЦ
Выражение итоговых записей:
ВЫБОР
КОГДА Сумма([Себестоимость]) = 0 ТОГДА 0
ИНАЧЕ (Сумма([Выручка]) - Сумма([Себестоимость])) / Сумма([Себестоимость]) * 100
КОНЕЦ
Проверим на числах. Выручка 15 000, себестоимость 12 000: (15 000 − 12 000) / 12 000 × 100 = 25%. Если в итоге посчитать среднее процентов по строкам, получится ерунда — поэтому итоговое выражение считает от сумм, а не от процентов.
Имена полей в квадратных скобках пишутся так, как они названы в отчёте (по заголовку), а не как в базе. Если поле переименовано в настройках, используйте новое имя. Проверка ВЫБОР…КОГДА на ноль обязательна: без неё строка с нулевой себестоимостью сломает формирование отчёта.
Поле-выбор
Второй тип пользовательского поля — поле-выбор. Оно выводит текст по условию: «Просрочено», если дата оплаты меньше текущей, «В срок» — в остальных случаях. Удобно для фильтрации и условного оформления.
Колонки по периодам, складам, сотрудникам: группировки
Частая задача звучит так: «нужна колонка на каждый месяц». Отдельные поля тут не помогут. Нужна таблица с группировкой в колонках.
Как настроить:
- Откройте вкладку
Структурав расширенных настройках или в редакторе варианта. - Если отчёт выводится обычной группировкой, добавьте элемент «Таблица». У таблицы два раздела: строки и колонки.
- В строки поместите группировку по Номенклатуре (или по Контрагенту).
- В колонки добавьте группировку по полю
Периодс типом дополнения или по полюСклад. - Ресурсы (суммы, количество) отобразятся на пересечении.
Результат: строка — товар, колонки — январь, февраль, март и итог. Классическая «шахматка» без Excel.
📊 Что ставить в колонки:
ПериодМесяцилиПериодКвартал— помесячная динамика продаж;Склад— остатки в разрезе складов;Организация— сравнение юрлиц в одном отчёте;ВидРасчета— начисления по видам в зарплатных отчётах.
Вложенные колонки
В раздел колонок можно добавить вложенную группировку. Например, сначала Склад, внутри — ПериодМесяц. Получится шапка в два этажа: над месяцами — название склада.
Не вкладывайте больше двух уровней. При 5 складах и 12 месяцах выйдет 60 колонок плюс итоги. Такой отчёт трудно читать и почти невозможно распечатать.
Колонка только на одном уровне группировки
Поля, отмеченные на вкладке Поля и сортировки, выводятся на всех уровнях отчёта. Иногда это мешает: артикул нужен у товара, но не у строки склада над ним.
Решение — задать поля конкретной группировке:
- На вкладке
Структуравыделите нужную группировку, например «Номенклатура». - Откройте её собственные настройки полей (в редакторе варианта у выделенного элемента структуры есть вкладка
Выбранные поля). - Снимите автоматический выбор и добавьте нужные поля, оставив элемент «Авто», чтобы общие колонки тоже остались.
Тогда колонка будет заполнена только в строках товаров, а строки складов останутся чистыми.
Суммы и итоги по новой колонке
Если добавленное поле числовое, но в строке итогов пусто, значит, оно не является ресурсом. Пользователь может исправить это вычисляемым полем с функцией Сумма([Поле]) в выражении итоговых записей. В схеме отчёта разработчик делает поле ресурсом — тогда итоги посчитаются на всех уровнях группировок.
Программное добавление колонки: работа для разработчика
Если данных нет в доступных полях, пользователь их не выведет. Значит, поле отсутствует в запросе набора данных схемы. Тут нужен Конфигуратор.
Доработка схемы компоновки
Порядок для отчёта на СКД:
- Откройте отчёт в Конфигураторе, затем его основную схему компоновки данных.
- На вкладке
Наборы данныхоткройте запрос и добавьте поле в секцию ВЫБРАТЬ. При необходимости — соединение с нужной таблицей. - Проверьте, что поле появилось в списке полей набора, задайте заголовок.
- Если это сумма, которую надо итожить, на вкладке
Ресурсыдобавьте его с функциейСумма. - На вкладке
Настройкивключите поле в выбранные поля нужного варианта.
Добавление поля из кода
Иногда колонку надо добавить в настройки на лету, например только для определённых пользователей. Это делается через компоновщик настроек:
Настройки = КомпоновщикНастроек.Настройки;
НовоеПоле = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
НовоеПоле.Поле = Новый ПолеКомпоновкиДанных("Контрагент.ИНН");
НовоеПоле.Заголовок = "ИНН";
НовоеПоле.Использование = Истина;
В отчётах на БСП такой код обычно размещают в обработчике модуля объекта, который вызывается перед компоновкой макета. Поле с именем Контрагент.ИНН должно существовать в схеме, иначе колонка выведется пустой или отчёт сообщит об ошибке поля.
Типовой отчёт: только через расширение
Не снимайте конфигурацию с поддержки ради одной колонки. Правка типового отчёта напрямую усложняет каждое обновление: изменения придётся сравнивать и переносить вручную.
Безопасные варианты:
- 🧩 расширение конфигурации — отчёт заимствуется, доработка живёт отдельно и переживает обновления;
- 📄 внешний отчёт — копия схемы в файле
.erf, подключается через раздел дополнительных отчётов и обработок.
После обновления конфигурации проверьте расширение: если разработчики фирмы переименовали поле, ваша колонка перестанет работать.
Оформление новой колонки и условное выделение
Добавленная колонка выводится с настройками по умолчанию: заголовок как в схеме, формат как у типа поля. Почти всегда это стоит поправить.
Заголовок и формат
- ✏️ Заголовок. В списке выбранных полей у каждой строки есть свой заголовок. Впишите короткий: «ИНН» вместо «Контрагент.ИНН».
- 🔢 Формат чисел. На вкладке условного оформления создайте правило без условия, укажите поле и параметр «Формат». Строка
ЧДЦ=2даёт два знака после запятой,ЧДЦ=0; ЧН=— целые числа и пустую ячейку вместо нуля. - 📏 Ширина. Параметры «Минимальная ширина» и «Максимальная ширина» там же, в оформлении. Полезно для длинных наименований.
Условное выделение
Условное оформление подсвечивает строки и ячейки по правилу. Схема одинакова:
- На вкладке
Оформление(илиУсловное оформлениев редакторе варианта) добавьте правило. - Задайте оформление: цвет текста, цвет фона, шрифт.
- Задайте условие: например,
Наценка, %меньше 10. - В «Оформляемых полях» укажите, какие колонки красить. Если список пуст, правило красит всю строку.
Пример: отрицательные остатки — красным текстом, просроченная задолженность — розовым фоном. Глаз находит проблему за секунду.
Почему колонка не появилась: частые ошибки
Частые вопросы
Увидят ли коллеги мою колонку?
Можно ли добавить колонку в печатную форму документа так же, как в отчёт?
Как вернуть отчёт к исходному виду?
Ещё. Свои варианты при этом не удаляются.Как выгрузить отчёт с новыми колонками в Excel?
xlsx через команду сохранения. Колонки, группировки и заголовки сохранятся, условное оформление — в виде цветов ячеек.