Отчеты и Аналитика · 10 мин
Идентификатор для формул в 1С: как использовать
Разбираем, что такое идентификатор формулы в 1С, где он задаётся, как использовать в СКД, отчётах и расчётах. Примеры, ошибки и пошаговая настройка.
Идентификатор формулы в 1С — это уникальное имя, по которому система обращается к формуле в настройках отчётов, системе компоновки данных (СКД), произвольных макетах и механизмах расчётов. Без корректного идентификатора одна формула не может сослаться на результат другой, а значит, сложные вычисления — доли, проценты, отклонения, нарастающие итоги — настроить не получится.
Чаще всего с идентификаторами формул пользователь сталкивается в трёх местах: при работе с пользовательскими полями в вариантах отчётов, при настройке вычисляемых полей в СКД и при использовании механизмов формул в типовых конфигурациях (например, в бюджетировании, ценообразовании или расчёте показателей). Во всех случаях логика одинакова: формуле присваивается имя, и это имя становится «адресом», по которому к результату обращаются другие выражения.
Материал рассчитан на пользователей и настройщиков отчётов. Программирование на встроенном языке потребуется только в отдельных продвинутых сценариях, о чём будет сказано отдельно.
Что такое идентификатор формулы и где он применяется
Формула в 1С — это выражение, которое вычисляет значение на основе полей данных: например, Количество * Цена. Идентификатор — имя этой формулы, по которому к ней можно обратиться. Аналогия простая: если формула — это ячейка с расчётом в таблице, то идентификатор — её адрес, как «B2» в электронных таблицах.
Основные места применения:
- вычисляемые поля в схеме компоновки данных — идентификатор совпадает с путём к данным поля;
- пользовательские поля в варианте отчёта — система сама присваивает имена вроде «ПользовательскоеПоле1», но их можно использовать в других выражениях;
- формулы показателей в типовых механизмах (бюджетирование, расчёт KPI, ценообразование) — там идентификатор задаётся в явном виде и используется для ссылок между показателями;
- произвольные выражения в ресурсах и группировках СКД.
Как задать идентификатор: правила именования
Идентификаторы в 1С подчиняются общим правилам встроенного языка: имя должно начинаться с буквы или знака подчёркивания, не содержать пробелов и спецсимволов, не совпадать с именами существующих полей набора данных. Практически удобно использовать латиницу или осмысленные русские имена без пробелов — платформа допускает кириллицу, но при переносе настроек и отладке латиница надёжнее.
Рекомендации по именованию, которые упрощают сопровождение отчёта:
- имя должно отражать смысл:
SummaNDS,DolyaVyruchki,OtkloneniePlana; - не используйте имена, совпадающие с полями запроса, — это вызовет конфликт или неоднозначность;
- избегайте слишком коротких имён вроде «X» или «F1» — через месяц по ним невозможно понять логику отчёта;
- если формул много, группируйте имена префиксами:
KPI_...,Itog_....
Использование идентификаторов в пользовательских полях отчёта
Самый частый сценарий для пользователя без навыков программирования — добавить вычисляемую колонку в типовой отчёт через «Изменить вариант отчёта». Порядок действий: откройте настройки отчёта, перейдите на расширенный режим, найдите раздел «Пользовательские поля», добавьте новое поле-выражение и введите формулу, например СуммаОборот * 0.2.
Созданному полю система присваивает идентификатор автоматически. Этот идентификатор можно применять в других пользовательских полях: например, сначала создать поле «Наценка» с формулой ЦенаПродажи - Себестоимость, а затем поле «НаценкаПроцент» с формулой, ссылающейся на первое поле. Так строятся цепочки вычислений без единой строки кода.
После добавления поле нужно вывести в отчёт: перетащите его в список выбранных полей на закладке «Поля» и проверьте, что оно попало в нужную группировку. Если поле добавлено, но в отчёте пусто — чаще всего оно просто не выбрано для вывода или помещено в группировку, где операнды недоступны.
- 1Откройте отчёт и перейдите в «Изменить вариант отчёта» (или «Ещё — Изменить вариант»).
- 2Включите расширенный режим настроек и откройте раздел пользовательских полей.
- 3Добавьте поле-выражение, введите формулу и задайте понятный заголовок.
- 4Запомните или скопируйте идентификатор поля для ссылок из других формул.
- 5Добавьте поле в выбранные поля отчёта и сформируйте отчёт.
- 6Сверьте результат с ручным расчётом на 2–3 строках данных.
Вычисляемые поля в СКД: идентификатор как путь к данным
При работе с конструктором схемы компоновки данных (доступен разработчикам и продвинутым настройщикам через конфигуратор) вычисляемое поле создаётся на закладке «Вычисляемые поля». Здесь идентификатор — это «Путь к данным», который вы задаёте сами. Именно под этим именем поле появится в настройках отчёта, ресурсах и других выражениях.
Ключевые параметры вычисляемого поля: путь к данным (идентификатор), выражение (сама формула), тип значения и заголовок. Выражение пишется на языке выражений СКД — он похож на язык запросов, но имеет свои функции: Выбор Когда ... Тогда ... Иначе ... Конец, агрегатные функции Сумма(), Среднее(), работа с датами и строками.
Важное ограничение: вычисляемое поле в СКД может ссылаться на поля набора данных и на другие вычисляемые поля, но порядок вычисления зависит от зависимостей. Циклические ссылки (поле A использует поле B, а поле B — поле A) приведут к ошибке компоновки.
// Пример выражения вычисляемого поля СКД
Выбор
Когда Себестоимость = 0
Тогда 0
Иначе (СуммаПродажи - Себестоимость) / Себестоимость * 100
КонецСсылки между формулами и типовые механизмы показателей
В механизмах показателей типовых конфигураций (бюджетирование, мониторинг целевых показателей, произвольные формулы в отчётности) идентификатор задаётся явно при создании показателя. Далее в формуле другого показателя этот идентификатор указывается как операнд — обычно через кнопку вставки операнда из списка, чтобы не ошибиться в написании.
Практическое правило: сначала создавайте базовые показатели (выручка, себестоимость, количество), проверяйте их значения, и только потом стройте производные формулы (рентабельность, доля, отклонение). Так ошибка локализуется на уровне конкретного показателя, а не размазывается по всей цепочке.
Как выбрать действие
Проверка результата и типичные ошибки
После настройки формулы обязательно проверьте результат на контрольных данных. Возьмите 2–3 строки отчёта, посчитайте значение вручную или в калькуляторе и сравните с тем, что вывела 1С. Расхождение чаще всего означает одну из типовых ошибок, перечисленных ниже.
Отдельно стоит сказать о производительности. Формулы, вычисляемые на уровне детальных записей при большом объёме данных, могут заметно замедлить формирование отчёта. Если отчёт стал работать ощутимо медленнее после добавления вычисляемых полей, проверьте, нельзя ли перенести расчёт в запрос набора данных — вычисления на уровне запроса обычно эффективнее.
Проверка корректности настройки
Как проверить результат
Отчёт выводится, колонка с формулой заполнена
Ошибка компоновки или сообщение «Поле не найдено»
Ручной пересчёт 2–3 строк совпадает с отчётом
Систематическое расхождение или пустые значения
В строках с нулевым знаменателем выводится 0 или пусто без ошибки
Ошибка деления на ноль останавливает формирование
Производная формула использует актуальный результат базовой
Циклическая ссылка или ссылка на удалённое поле
Частые вопросы
Можно ли использовать пробелы и кириллицу в идентификаторе формулы?
Пробелы недопустимы — имя должно быть сплошным. Кириллица технически допускается платформой, но на практике удобнее латиница или транслит: так меньше риск ошибок при переносе настроек и отладке выражений.
Почему формула выдаёт ошибку «Поле не найдено»?
Чаще всего причина в опечатке в идентификаторе, ссылке на поле, недоступное в текущей группировке, или на удалённое поле. Проверьте точное написание имени и убедитесь, что поле-операнд присутствует в наборе данных или списке вычисляемых полей.
Как одна формула ссылается на результат другой?
В выражении производной формулы укажите идентификатор базовой формулы как обычный операнд. В пользовательских полях и механизмах показателей используйте кнопку вставки операнда из списка — это исключает ошибки написания.
Что делать, если в формуле возможно деление на ноль?
Оберните выражение в конструкцию Выбор Когда знаменатель = 0 Тогда 0 Иначе деление Конец (в СКД) или аналогичную проверку в языке выражений. Это стандартная защита от ошибки деления на ноль.
Нужно ли программирование, чтобы добавить формулу в отчёт?
Для пользовательских полей в варианте отчёта — нет, всё делается через настройки. Для вычисляемых полей в схеме компоновки данных и сложных расчётов с обращением к функциям общих модулей потребуются навыки работы в конфигураторе.
Что важно запомнить
Идентификатор формулы — это имя, по которому к расчёту обращаются другие выражения. Задавайте осмысленные имена без пробелов, избегайте совпадений с полями данных, защищайте формулы от деления на нуля и пустых значений, а результат всегда сверяйте с ручным расчётом на контрольных строках.