Своя колонка в отчёте 1С: от настройки варианта до кода в СКД

· 9 мин

Содержание

Чтобы добавить пользовательское поле в отчет 1С без программиста, откройте отчёт, выберите Ещё → Прочее → Изменить вариант отчета, перейдите на вкладку «Пользовательские поля» и нажмите «Добавить». Дальше выбираете тип поля, пишете формулу и выводите новую колонку в отчёт. Так работают все отчёты на системе компоновки данных (СКД) — а это почти все отчёты БП 3.0, ЗУП 3.1 и УТ 11.

Способов три, и выбор зависит от того, кому нужна колонка. Пользовательское поле в варианте — для себя или отдела, за 5 минут, без Конфигуратора. Вычисляемое поле в схеме СКД — когда колонка нужна всем и навсегда. Добавление кодом — когда формула зависит от условий, которые не задать мышкой.

СпособГде делаетсяКому видноНужны права на Конфигуратор
Пользовательское поле в вариантеРежим 1С:ПредприятиеТем, у кого этот вариантНет
Вычисляемое поле в схеме СКДКонфигуратор, расширениеВсем пользователям отчётаДа
Поле, добавленное кодомМодуль отчёта, расширениеВсем, по условиям из кодаДа

Подготовка: какие поля уже есть в отчёте

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

Проверьте это заранее:

  1. 📂 Откройте отчёт и переключите вид настроек на расширенный. Переключатель находится в форме настроек отчёта (кнопка «Настройки»).
  2. 🔍 На вкладке с полями нажмите добавление поля и разверните дерево доступных полей. Это и есть «сырьё» для формулы.
  3. 🧩 Разверните реквизиты через «плюсик»: у контрагента видны ИНН, вид договора, у номенклатуры — группа, единица, ставка НДС.

Часто пользовательское поле вообще не нужно. Если вы хотите просто увидеть ИНН контрагента или артикул товара — найдите его в дереве полей через реквизиты и добавьте как обычную колонку.

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

Пользовательское поле в отчете 1С в режиме предприятия

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

Шаг 1. Откройте редактор варианта

  1. Сформируйте отчёт хотя бы один раз с нужным периодом.
  2. Выберите Ещё → Прочее → Изменить вариант отчета.
  3. Откроется форма со вкладками схемы компоновки. Нужна вкладка «Пользовательские поля».

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

Шаг 2. Выберите тип поля

Кнопка «Добавить» предлагает два варианта.

ТипЧто делаетПример
Поле-выражениеСчитает значение по формуле из других полейНаценка = (Выручка − Себестоимость) / Себестоимость × 100
Поле-выборПрисваивает значение по набору условий с отборами«Крупный» — если сумма больше 500 000, иначе «Обычный»

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

Шаг 3. Напишите выражение

У поля-выражения два текста:

  • 📄 Выражение детальных записей — как считать значение в каждой строке.
  • 📊 Выражение итоговых записей — как считать в группировках и в общем итоге.

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

Пример наценки для детальных записей:

Выбор
    Когда [Себестоимость] = 0 Тогда 0
    Иначе ([Выручка] - [Себестоимость]) / [Себестоимость] * 100
Конец

И для итоговых записей:

Выбор
    Когда Сумма([Себестоимость]) = 0 Тогда 0
    Иначе (Сумма([Выручка]) - Сумма([Себестоимость])) / Сумма([Себестоимость]) * 100
Конец

Заполните поле «Заголовок» — так будет называться колонка, например «Наценка, %».

Шаг 4. Выведите поле и сохраните вариант

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

Чтобы настройка не пропала, сохраните вариант под своим именем. В БП 3.0 и ЗУП 3.1 команда сохранения варианта есть в меню Ещё. Свой вариант можно сделать доступным коллегам при сохранении.

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

Вычисляемое поле в Конфигураторе: колонка для всех

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

Свой или внешний отчёт

  1. Откройте отчёт в Конфигураторе. Внешний отчёт — через Файл → Открыть, файл .erf.
  2. Откройте основную схему компоновки данных отчёта.
  3. Перейдите на вкладку «Вычисляемые поля» и добавьте строку.
  4. Заполните «Путь к данным» латиницей или кириллицей без пробелов, например Наценка.
  5. В колонке «Выражение» напишите формулу на языке выражений СКД.
  6. Задайте «Заголовок».
  7. Если поле нужно суммировать или считать в итогах, перейдите на вкладку «Ресурсы» и задайте для него выражение итогов.
  8. На вкладке «Настройки» добавьте поле в выбранные поля основного варианта.

Второй путь — добавить поле прямо в запрос набора данных. Это нужно, когда значение надо взять из базы, а не вычислить из имеющихся колонок. Например, дату последней оплаты из регистра. Тогда откройте конструктор запроса набора данных, добавьте таблицу и поле, а СКД сама предложит его в списке полей.

Типовой отчёт

Не правьте типовую конфигурацию , снятую с поддержки, ради одной колонки. Каждое обновление превратится в ручное сравнение и объединение.

Для типовых отчётов есть два безопасных пути:

  • 🧩 Расширение конфигурации . Заимствуйте отчёт и добавьте поле кодом в модуле объекта (пример ниже). Расширения доступны с платформы 8.3.6.
  • 📄 Копия во внешний отчёт. Создайте новый внешний отчёт, перенесите в него схему компоновки и модуль типового отчёта и дорабатывайте копию. Минус: копия не получает исправлений из обновлений.

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

Добавляем поле в отчёт программно

Кодом поле добавляют, когда колонка должна появляться по условию: для одной организации, при определённом параметре или для конкретной роли.

Базовый вариант — обработчик ПриКомпоновкеРезультата в модуле объекта отчёта. Он отключает стандартное формирование, добавляет пользовательское поле-выражение в копию настроек и выводит результат сам.

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

	СтандартнаяОбработка = Ложь;
	Настройки = КомпоновщикНастроек.ПолучитьНастройки();

	// Пользовательское поле-выражение
	Поле = Настройки.ПользовательскиеПоля.Элементы.Добавить(
		Тип("ПользовательскоеПолеВыражениеКомпоновкиДанных"));
	Поле.Заголовок = "Наценка, %";
	Поле.УстановитьВыражениеДетальныхЗаписей(
		"Выбор Когда Себестоимость = 0 Тогда 0
		|Иначе (Выручка - Себестоимость) / Себестоимость * 100 Конец");
	Поле.УстановитьВыражениеИтоговыхЗаписей(
		"Выбор Когда Сумма(Себестоимость) = 0 Тогда 0
		|Иначе (Сумма(Выручка) - Сумма(Себестоимость)) / Сумма(Себестоимость) * 100 Конец");

	// Выводим поле в отчёт
	Выбранное = Настройки.Выбор.Элементы.Добавить(Тип("ВыбранноеПолеКомпоновкиДанных"));
	Выбранное.Поле = Новый ПолеКомпоновкиДанных(Поле.ПутьКДанным);

	// Формируем результат
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	Макет = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);

	Процессор = Новый ПроцессорКомпоновкиДанных;
	Процессор.Инициализировать(Макет, , ДанныеРасшифровки, Истина);

	ДокументРезультат.Очистить();
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(Процессор);

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

Что важно в этом коде:

  • 🔹 Выручка и Себестоимость — это пути к данным полей из схемы, а не их заголовки. Посмотрите их на вкладке «Наборы данных».
  • 🔹 Настройки берутся копией через ПолучитьНастройки(). Сохранённый вариант пользователя не меняется, колонка появляется только в результате.
  • 🔹 Если в отчёте несколько группировок, поле может понадобиться добавить в выбранные поля конкретной группировки, а не только в общий выбор.

В типовых отчётах СтандартнаяОбработка = Ложь может отключить их собственную логику формирования. Проверяйте доработку на копии базы, а не в рабочей.

Вычисляемые поля с условиями: готовые формулы

Язык выражений СКД похож на язык запросов. Главная конструкция для условий — Выбор Когда … Тогда … Иначе … Конец.

ЗадачаВыражение детальных записей
Защита от деления на нольВыбор Когда [Сумма] = 0 Тогда 0 Иначе [Прибыль] / [Сумма] * 100 Конец
Метка по суммеВыбор Когда [Сумма] > 500000 Тогда "Крупный" Иначе "Обычный" Конец
Пустое значение как нольЕстьNULL([Оплачено], 0)
Остаток к оплатеЕстьNULL([Сумма], 0) - ЕстьNULL([Оплачено], 0)
Месяц из датыМесяц([Период])
Количество разных контрагентов в итогахКоличество(Различные [Контрагент])

Несколько условий пишутся подряд:

Выбор
    Когда [Просрочка] > 90 Тогда "Сомнительный долг"
    Когда [Просрочка] > 30 Тогда "Просрочка"
    Когда [Просрочка] > 0 Тогда "Внимание"
    Иначе "В срок"
Конец

Проверка на числах: при выручке 120 000 и себестоимости 80 000 наценка = (120 000 − 80 000) / 80 000 × 100 = 50%. Если в итоговом выражении сложить проценты строк вместо сумм, при двух строках по 50% и 20% получится 70% — а реальная наценка группы другая. Поэтому проценты в итогах всегда считайте через Сумма() числителя и знаменателя.

Видимость, формат и оформление новой колонки

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

Формат чисел

Откройте вкладку «Условное оформление» в редакторе варианта и добавьте элемент:

  1. В «Оформлении» выберите параметр «Формат» и задайте его конструктором: например, 2 знака дробной части.
  2. В строку формата конструктор запишет что-то вроде ЧДЦ=2. Для пустых нулей добавьте ЧН=—.
  3. В «Оформляемых полях» укажите только вашу колонку, иначе формат применится ко всем полям.

Для текстовых меток можно настроить цвет: отбор [Просрочка] > 90 → цвет текста красный.

Место и видимость

  • ↕️ Порядок колонок меняется стрелками на вкладке «Выбранные поля».
  • 👁️ Временно скрыть поле — снимите флажок использования у него в выбранных полях. Само пользовательское поле останется в варианте.
  • 📁 Сгруппировать колонку с соседними — создайте в выбранных полях группу и перенесите поля в неё.

В вычисляемом поле схемы СКД формат задаётся в колонке «Оформление» на вкладке «Вычисляемые поля». Тогда он одинаков во всех вариантах.

Почему пользовательское поле в отчете не работает

Типичные проблемы собраны ниже: выберите симптом, чтобы увидеть причину.

Диагностика: выберите симптом

Частые вопросы

Увидят ли коллеги моё пользовательское поле?
Только если вы сохраните вариант отчёта и откроете к нему доступ при сохранении. Несохранённые настройки видны только вам.
Можно ли отбирать и сортировать по пользовательскому полю?
Да. После создания поле доступно в отборах, сортировке и условном оформлении наравне с обычными полями отчёта.
Сохранится ли поле после обновления конфигурации?
Если оно хранится в вашем собственном варианте, обычно да. Но при изменении схемы отчёта в обновлении поле из формулы может исчезнуть, и выражение придётся поправить.
Чем пользовательское поле отличается от вычисляемого поля СКД?
Пользовательское поле живёт в варианте отчёта и создаётся пользователем. Вычисляемое поле — часть схемы отчёта, его добавляет разработчик в Конфигураторе, и оно доступно во всех вариантах.
Можно ли в формуле использовать данные, которых нет в отчёте?
Нет. Формула оперирует только полями, доступными в отчёте, включая реквизиты через точку. Новые данные добавляют в запрос набора данных.