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

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

Идентификатор для формул в 1С: как использовать

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

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

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

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

Что такое идентификатор формулы и где он применяется

Формула в 1С — это выражение, которое вычисляет значение на основе полей данных: например, Количество * Цена. Идентификатор — имя этой формулы, по которому к ней можно обратиться. Аналогия простая: если формула — это ячейка с расчётом в таблице, то идентификатор — её адрес, как «B2» в электронных таблицах.

Основные места применения:

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

Как задать идентификатор: правила именования

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

Рекомендации по именованию, которые упрощают сопровождение отчёта:

  • имя должно отражать смысл: SummaNDS, DolyaVyruchki, OtkloneniePlana;
  • не используйте имена, совпадающие с полями запроса, — это вызовет конфликт или неоднозначность;
  • избегайте слишком коротких имён вроде «X» или «F1» — через месяц по ним невозможно понять логику отчёта;
  • если формул много, группируйте имена префиксами: KPI_..., Itog_....

Использование идентификаторов в пользовательских полях отчёта

Самый частый сценарий для пользователя без навыков программирования — добавить вычисляемую колонку в типовой отчёт через «Изменить вариант отчёта». Порядок действий: откройте настройки отчёта, перейдите на расширенный режим, найдите раздел «Пользовательские поля», добавьте новое поле-выражение и введите формулу, например СуммаОборот * 0.2.

Созданному полю система присваивает идентификатор автоматически. Этот идентификатор можно применять в других пользовательских полях: например, сначала создать поле «Наценка» с формулой ЦенаПродажи - Себестоимость, а затем поле «НаценкаПроцент» с формулой, ссылающейся на первое поле. Так строятся цепочки вычислений без единой строки кода.

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

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

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

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

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

Важное ограничение: вычисляемое поле в СКД может ссылаться на поля набора данных и на другие вычисляемые поля, но порядок вычисления зависит от зависимостей. Циклические ссылки (поле A использует поле B, а поле B — поле A) приведут к ошибке компоновки.

1c
// Пример выражения вычисляемого поля СКД
Выбор
    Когда Себестоимость = 0
        Тогда 0
    Иначе (СуммаПродажи - Себестоимость) / Себестоимость * 100
Конец

Ссылки между формулами и типовые механизмы показателей

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

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

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

Как выбрать действие

Нужна одна вычисляемая колонка в типовом отчётеИспользуйте пользовательское поле в варианте отчёта — без изменения конфигурации
Формула нужна во многих вариантах отчёта или использует сложную логикуСоздайте вычисляемое поле в схеме компоновки данных через конфигуратор
Формулы ссылаются друг на друга цепочкойИспользуйте механизм показателей или последовательные вычисляемые поля с явными идентификаторами
Расчёт требует обращения к данным вне набора отчётаПотребуется доработка запроса набора данных или общий модуль — привлеките разработчика

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

После настройки формулы обязательно проверьте результат на контрольных данных. Возьмите 2–3 строки отчёта, посчитайте значение вручную или в калькуляторе и сравните с тем, что вывела 1С. Расхождение чаще всего означает одну из типовых ошибок, перечисленных ниже.

Типичные ошибки
01
Деление на ноль без проверки — формула падает с ошибкой или выводит пустое значение; добавляйте конструкцию Выбор Когда знаменатель = 0.
02
Ссылка на идентификатор с опечаткой — поле не находится, отчёт не формируется; вставляйте операнды из списка, а не вручную.
03
Конфликт имён: идентификатор совпадает с полем набора данных — результат непредсказуем; переименуйте вычисляемое поле.
04
Формула считается на детальных записях, а ожидалась на итогах — проверьте, где вычисляется выражение, и при необходимости используйте ВычислитьВыражение с группировкой.
05
Игнорирование NULL: если операнд пуст, результат может стать NULL; оборачивайте поля в ЕстьNULL() там, где это уместно.

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

Проверка корректности настройки

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

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

Отчёт формируется без ошибок
Норма

Отчёт выводится, колонка с формулой заполнена

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

Ошибка компоновки или сообщение «Поле не найдено»

Значения формулы
Норма

Ручной пересчёт 2–3 строк совпадает с отчётом

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

Систематическое расхождение или пустые значения

Поведение при нулевых данных
Норма

В строках с нулевым знаменателем выводится 0 или пусто без ошибки

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

Ошибка деления на ноль останавливает формирование

Ссылки между формулами
Норма

Производная формула использует актуальный результат базовой

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

Циклическая ссылка или ссылка на удалённое поле

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

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

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

Почему формула выдаёт ошибку «Поле не найдено»?

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

Как одна формула ссылается на результат другой?

В выражении производной формулы укажите идентификатор базовой формулы как обычный операнд. В пользовательских полях и механизмах показателей используйте кнопку вставки операнда из списка — это исключает ошибки написания.

Что делать, если в формуле возможно деление на ноль?

Оберните выражение в конструкцию Выбор Когда знаменатель = 0 Тогда 0 Иначе деление Конец (в СКД) или аналогичную проверку в языке выражений. Это стандартная защита от ошибки деления на ноль.

Нужно ли программирование, чтобы добавить формулу в отчёт?

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

Итог

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

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