Разработка и Конфигурация · 10 мин
Как открыть выражение в 1С: все способы работы с редактором формул
Как открыть редактор выражений в 1С: в консоли запросов, СКД, макетах и коде. Пошаговые инструкции, типичные ошибки и способы проверки результата.
Выражение в 1С — это формула на встроенном языке или языке выражений системы компоновки данных, которая вычисляет значение: сумму, строку, условие отбора или ресурс отчёта. Открыть выражение для просмотра или редактирования можно в нескольких местах платформы, и способ зависит от того, где это выражение находится: в запросе, настройках отчёта, макете печатной формы или программном коде.
Чаще всего задача «открыть выражение» возникает у разработчиков и продвинутых пользователей при настройке отчётов на СКД, редактировании консоли запросов, изменении печатных форм и разборе чужого кода. В каждом случае действует свой механизм: где-то достаточно двойного щелчка по ячейке, где-то нужно вызвать контекстное меню, а где-то — открыть конфигуратор.
Ниже разобраны все основные сценарии с пошаговыми действиями, ограничениями и способами проверить, что выражение открылось и работает корректно.
Что такое выражение в 1С и где оно встречается
Выражение — это конструкция, которая возвращает значение. В 1С существует два основных «диалекта»: встроенный язык (код модулей) и язык выражений компоновки данных, используемый в запросах, отчётах СКД и настройках динамических списков. Синтаксис похож, но набор функций различается, поэтому выражение, корректное в коде модуля, может не работать в настройках отчёта.
Типичные места, где хранятся выражения:
- текст запроса в консоли запросов или конструкторе запроса;
- вычисляемые поля, ресурсы и параметры в схеме компоновки данных;
- параметры расшифровки и отборы в пользовательских настройках отчётов;
- свойства ячеек табличного документа (макеты печатных форм);
- формулы в настройках динамических списков и произвольных алгоритмах (например, в обработках обмена данными).
Как открыть выражение в консоли запросов
Консоль запросов — внешняя обработка, которой пользуются разработчики для отладки запросов. Чтобы открыть и отредактировать выражение внутри запроса, выполните следующее:
- Откройте консоль запросов (Файл → Открыть → выбор файла обработки, либо через сохранённую обработку в справочнике дополнительных отчётов и обработок).
- Загрузите нужный запрос или вставьте его текст в поле запроса.
- Для редактирования выражения в поле выборки нажмите кнопку вызова конструктора запроса — откроется окно, где на закладке «Таблицы и поля» доступны все поля.
- Чтобы изменить произвольное выражение поля, дважды щёлкните по строке поля или нажмите «Изменить» — откроется окно редактирования произвольного выражения.
Признак того, что выражение открылось корректно: в окне редактирования виден полный текст формулы, доступны кнопки проверки синтаксиса, а после нажатия «ОК» конструктор не выдаёт ошибок. Если конструктор не может разобрать текст запроса (например, из-за ключевых слов расширения языка запросов), редактируйте выражение прямо в текстовом поле запроса.
- 1Откройте консоль запросов и загрузите текст запроса
- 2Нажмите кнопку «Конструктор запроса»
- 3Перейдите на закладку «Таблицы и поля»
- 4Дважды щёлкните по нужному полю или нажмите «Изменить»
- 5Отредактируйте выражение в открывшемся окне и подтвердите
- 6Выполните запрос и проверьте результат
Как открыть выражение в схеме компоновки данных (СКД)
Отчёты на СКД хранят выражения в нескольких местах схемы. Чтобы добраться до них, откройте отчёт в конфигураторе, перейдите к основной схеме компоновки данных и нажмите «Открыть схему компоновки данных». Дальше всё зависит от того, какое выражение нужно.
Вычисляемые поля
На закладке «Вычисляемые поля» в колонке «Выражение» дважды щёлкните по ячейке с формулой или нажмите кнопку выбора (три точки) — откроется окно редактирования выражения. Здесь можно изменить формулу, например заменить Цена * Количество на вариант с округлением.
Ресурсы
На закладке «Ресурсы» выражения задают агрегирование: Сумма(Оборот), Количество(Различные Документ). Редактирование аналогично — двойной щелчок по ячейке «Выражение». Помните, что в ресурсах допустимы только агрегатные функции и выражения над ними.
Выражения в пользовательском режиме
В режиме 1С:Предприятие часть выражений доступна через кнопку «Ещё» → «Изменить вариант» в отчёте. На закладках «Поля» и «Отбор» можно добавить пользовательское поле-выражение: кнопка «Добавить» → «Новое поле выражение». Это безопасный способ экспериментировать, не меняя конфигурацию.
Как открыть выражение в макете печатной формы
В макетах табличных документов выражения хранятся в свойствах ячеек. Откройте конфигуратор, найдите нужный макет (в дереве конфигурации у объекта — ветка «Макеты»), дважды щёлкните по нему.
Далее выделите ячейку и откройте палитру свойств (правый щелчок → «Свойства»). Если в свойстве «Заполнение» выбрано «Параметр» — в ячейке выводится значение параметра, заданное в коде. Если выбрано «Шаблон» — текст ячейки содержит выражения в квадратных скобках, например Итого: [СуммаПропись]. Двойной щелчок по ячейке позволяет редактировать текст шаблона прямо в макете.
Чтобы увидеть, откуда берётся значение параметра, найдите в модуле менеджера или объекта процедуру печати: там вызовы вида Область.Параметры.СуммаПропись = ... показывают, какое выражение вычисляет значение.
Как открыть и прочитать выражение в коде модуля
Выражения в коде открываются напрямую через конфигуратор. Найдите нужный объект в дереве конфигурации, правый щелчок → «Открыть модуль объекта» (или «Модуль формы», «Модуль менеджера»). Для поиска конкретного выражения используйте глобальный поиск: Правка → Глобальный поиск (Ctrl+Shift+F) с указанием фрагмента формулы.
Если выражение сложное и нужно понять его значение в конкретный момент, используйте отладчик: поставьте точку останова на строке, запустите отладку (Отладка → Начать отладку), затем выделите выражение и нажмите Shift+F9 («Вычислить выражение»). Откроется окно с текущим значением и типом результата — это самый надёжный способ проверить, что вычисляет формула.
Типичные ошибки при открытии и редактировании выражений
Самая частая проблема — попытка открыть конструктором запрос, содержащий конструкции, которые конструктор не поддерживает. В этом случае появляется сообщение об ошибке разбора текста. Решение: редактировать выражение вручную в тексте запроса и проверять его выполнением на копии базы.
Вторая типичная ситуация — путаница между языками. Пользователь копирует выражение из модуля в поле СКД и получает ошибку «Функция не найдена». Проверяйте, где выполняется выражение, и используйте только допустимый для этого контекста набор функций.
Как проверить, что выражение работает правильно
После редактирования выражения обязательно проверьте результат. В консоли запросов — выполните запрос и сверьте значения в таблице результата с ожидаемыми. В СКД — сформируйте отчёт в режиме предприятия и сравните итоги с эталонными данными (например, с типовым отчётом по тому же регистру).
В коде используйте отладчик и «Вычислить выражение» (Shift+F9), а также окно «Табло» (Ctrl+Alt+W), куда можно добавить выражение и наблюдать его значение при пошаговом выполнении. Для печатных форм сформируйте документ с граничными значениями: пустые поля, нулевые суммы, длинные строки — так видно, как шаблон ведёт себя на нестандартных данных.
Как проверить результат
Запрос выполняется без ошибок, значения полей соответствуют логике формулы
Ошибка синтаксиса или пустые/искажённые значения в колонке с выражением
Отчёт формируется, итоги сходятся с эталонными данными
Сообщение об ошибке компоновки или расходящиеся суммы
Все параметры заполнены, шаблон выводит значения корректно
Пустые ячейки или текст параметра в квадратных скобках вместо значения
Что важно запомнить
Способ открыть выражение зависит от его расположения: конструктор запроса — двойной щелчок по полю, СКД — закладки «Вычисляемые поля» и «Ресурсы», макет — свойства ячейки, код — конфигуратор и отладчик. Всегда учитывайте, на каком языке написано выражение, и проверяйте результат выполнением на копии базы.
Частые вопросы
Конструктор запроса выдаёт ошибку при открытии — что делать?
Значит, текст запроса содержит конструкции, которые конструктор не поддерживает (например, некоторые расширения языка запросов или сложные вложенные структуры). Редактируйте выражение прямо в текстовом поле запроса, предварительно сохранив исходный текст в отдельный файл.
Можно ли открыть и изменить выражение без конфигуратора?
Да, частично. Пользовательские поля-выражения в отчётах на СКД создаются в режиме предприятия через «Изменить вариант». Но вычисляемые поля схемы, ресурсы и выражения в макетах доступны только через конфигуратор или расширение.
Почему выражение из кода не работает в отчёте СКД?
В СКД действует собственный язык выражений с ограниченным набором функций. Методы объектов, Окр(), Формат() и большинство функций встроенного языка там недоступны. Перепишите формулу с использованием функций языка выражений компоновки.
Как узнать, какое значение возвращает выражение в конкретный момент?
В отладчике выделите выражение и нажмите Shift+F9 — откроется окно «Вычислить выражение» с текущим значением и типом. Для постоянного наблюдения добавьте выражение в табло (Ctrl+Alt+W).
Где искать выражение, если неизвестно, в каком объекте оно находится?
Используйте глобальный поиск по конфигурации (Ctrl+Shift+F в конфигураторе), указав уникальный фрагмент формулы — имя переменной, функцию или часть строки. Поиск покажет все модули, где встречается этот текст.
Изменение выражения в типовой конфигурации безопасно?
Нет, если конфигурация на поддержке: объект будет снят с поддержки, а правки могут потеряться при обновлении. Безопасные варианты — расширение конфигурации, пользовательские настройки отчётов и работа на копии базы.