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

Разработка и Конфигурация · 10 мин

Как открыть выражение в 1С: все способы работы с редактором формул

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

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

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

Ниже разобраны все основные сценарии с пошаговыми действиями, ограничениями и способами проверить, что выражение открылось и работает корректно.

Что такое выражение в 1С и где оно встречается

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

Типичные места, где хранятся выражения:

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

Как открыть выражение в консоли запросов

Консоль запросов — внешняя обработка, которой пользуются разработчики для отладки запросов. Чтобы открыть и отредактировать выражение внутри запроса, выполните следующее:

  1. Откройте консоль запросов (Файл → Открыть → выбор файла обработки, либо через сохранённую обработку в справочнике дополнительных отчётов и обработок).
  2. Загрузите нужный запрос или вставьте его текст в поле запроса.
  3. Для редактирования выражения в поле выборки нажмите кнопку вызова конструктора запроса — откроется окно, где на закладке «Таблицы и поля» доступны все поля.
  4. Чтобы изменить произвольное выражение поля, дважды щёлкните по строке поля или нажмите «Изменить» — откроется окно редактирования произвольного выражения.

Признак того, что выражение открылось корректно: в окне редактирования виден полный текст формулы, доступны кнопки проверки синтаксиса, а после нажатия «ОК» конструктор не выдаёт ошибок. Если конструктор не может разобрать текст запроса (например, из-за ключевых слов расширения языка запросов), редактируйте выражение прямо в текстовом поле запроса.

Открытие выражения в конструкторе запроса
  1. 1
    Откройте консоль запросов и загрузите текст запроса
  2. 2
    Нажмите кнопку «Конструктор запроса»
  3. 3
    Перейдите на закладку «Таблицы и поля»
  4. 4
    Дважды щёлкните по нужному полю или нажмите «Изменить»
  5. 5
    Отредактируйте выражение в открывшемся окне и подтвердите
  6. 6
    Выполните запрос и проверьте результат

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

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

Вычисляемые поля

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

Ресурсы

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

Выражения в пользовательском режиме

В режиме 1С:Предприятие часть выражений доступна через кнопку «Ещё» → «Изменить вариант» в отчёте. На закладках «Поля» и «Отбор» можно добавить пользовательское поле-выражение: кнопка «Добавить» → «Новое поле выражение». Это безопасный способ экспериментировать, не меняя конфигурацию.

Как открыть выражение в макете печатной формы

В макетах табличных документов выражения хранятся в свойствах ячеек. Откройте конфигуратор, найдите нужный макет (в дереве конфигурации у объекта — ветка «Макеты»), дважды щёлкните по нему.

Далее выделите ячейку и откройте палитру свойств (правый щелчок → «Свойства»). Если в свойстве «Заполнение» выбрано «Параметр» — в ячейке выводится значение параметра, заданное в коде. Если выбрано «Шаблон» — текст ячейки содержит выражения в квадратных скобках, например Итого: [СуммаПропись]. Двойной щелчок по ячейке позволяет редактировать текст шаблона прямо в макете.

Чтобы увидеть, откуда берётся значение параметра, найдите в модуле менеджера или объекта процедуру печати: там вызовы вида Область.Параметры.СуммаПропись = ... показывают, какое выражение вычисляет значение.

Как открыть и прочитать выражение в коде модуля

Выражения в коде открываются напрямую через конфигуратор. Найдите нужный объект в дереве конфигурации, правый щелчок → «Открыть модуль объекта» (или «Модуль формы», «Модуль менеджера»). Для поиска конкретного выражения используйте глобальный поиск: Правка → Глобальный поиск (Ctrl+Shift+F) с указанием фрагмента формулы.

Если выражение сложное и нужно понять его значение в конкретный момент, используйте отладчик: поставьте точку останова на строке, запустите отладку (Отладка → Начать отладку), затем выделите выражение и нажмите Shift+F9 («Вычислить выражение»). Откроется окно с текущим значением и типом результата — это самый надёжный способ проверить, что вычисляет формула.

Типичные ошибки при открытии и редактировании выражений

Самая частая проблема — попытка открыть конструктором запрос, содержащий конструкции, которые конструктор не поддерживает. В этом случае появляется сообщение об ошибке разбора текста. Решение: редактировать выражение вручную в тексте запроса и проверять его выполнением на копии базы.

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

Типичные ошибки
01
Копирование функций встроенного языка в выражения СКД — отчёт падает с ошибкой при формировании
02
Редактирование запроса через конструктор, который не понимает расширения языка — текст запроса искажается или теряется
03
Изменение выражения в типовом макете без копии — правки теряются при обновлении конфигурации
04
Забытая проверка агрегатной функции в ресурсах СКД — итоги отчёта считаются неверно

Как проверить, что выражение работает правильно

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

В коде используйте отладчик и «Вычислить выражение» (Shift+F9), а также окно «Табло» (Ctrl+Alt+W), куда можно добавить выражение и наблюдать его значение при пошаговом выполнении. Для печатных форм сформируйте документ с граничными значениями: пустые поля, нулевые суммы, длинные строки — так видно, как шаблон ведёт себя на нестандартных данных.

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

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

Выполнение запроса в консоли
Норма

Запрос выполняется без ошибок, значения полей соответствуют логике формулы

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

Ошибка синтаксиса или пустые/искажённые значения в колонке с выражением

Формирование отчёта СКД
Норма

Отчёт формируется, итоги сходятся с эталонными данными

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

Сообщение об ошибке компоновки или расходящиеся суммы

Печатная форма
Норма

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

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

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

Итог

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

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

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

Конструктор запроса выдаёт ошибку при открытии — что делать?

Значит, текст запроса содержит конструкции, которые конструктор не поддерживает (например, некоторые расширения языка запросов или сложные вложенные структуры). Редактируйте выражение прямо в текстовом поле запроса, предварительно сохранив исходный текст в отдельный файл.

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

Да, частично. Пользовательские поля-выражения в отчётах на СКД создаются в режиме предприятия через «Изменить вариант». Но вычисляемые поля схемы, ресурсы и выражения в макетах доступны только через конфигуратор или расширение.

Почему выражение из кода не работает в отчёте СКД?

В СКД действует собственный язык выражений с ограниченным набором функций. Методы объектов, Окр(), Формат() и большинство функций встроенного языка там недоступны. Перепишите формулу с использованием функций языка выражений компоновки.

Как узнать, какое значение возвращает выражение в конкретный момент?

В отладчике выделите выражение и нажмите Shift+F9 — откроется окно «Вычислить выражение» с текущим значением и типом. Для постоянного наблюдения добавьте выражение в табло (Ctrl+Alt+W).

Где искать выражение, если неизвестно, в каком объекте оно находится?

Используйте глобальный поиск по конфигурации (Ctrl+Shift+F в конфигураторе), указав уникальный фрагмент формулы — имя переменной, функцию или часть строки. Поиск покажет все модули, где встречается этот текст.

Изменение выражения в типовой конфигурации безопасно?

Нет, если конфигурация на поддержке: объект будет снят с поддержки, а правки могут потеряться при обновлении. Безопасные варианты — расширение конфигурации, пользовательские настройки отчётов и работа на копии базы.