Отчеты и Аналитика · 9 мин
Формулы в 1С как в Excel: где и как считать
Как использовать формулы в 1С по аналогии с Excel: ячейки табличного документа, выражения в запросах, СКД и формах. Примеры, синтаксис, типичные ошибки.
Пользователи, привыкшие к Excel, часто ищут в 1С привычные формулы вида =A1*B1. В 1С действительно есть несколько механизмов, где работают выражения и формулы: табличный документ, запросы, система компоновки данных (СКД), вычисляемые поля в формах и выражения в печатных макетах. Но логика у них иная, чем в Excel: 1С — не электронная таблица, а учётная система, и формулы здесь встроены в конкретные объекты.
Главное различие: в Excel формула живёт в ячейке и пересчитывается автоматически, а в 1С выражение привязано к контексту — к строке запроса, к ресурсу отчёта или к реквизиту документа. Поэтому задача «сделать формулу как в Excel» в 1С решается выбором правильного механизма под конкретную задачу.
Ниже разобраны основные способы: от простого ввода формулы в ячейку табличного документа до вычисляемых полей в отчётах на СКД. Для каждого способа указаны синтаксис, ограничения и типичные ошибки.
Формулы в ячейках табличного документа
Ближе всего к Excel — табличный документ 1С. Если открыть его в режиме просмотра с возможностью редактирования (в типовых конфигурациях это, например, открытый печатный бланк или отдельный табличный документ), в ячейку можно ввести формулу, начав ввод со знака равенства: =A1+B1. Адресация ячеек — буквенно-цифровая, как в Excel, поддерживаются арифметические операции, скобки и ряд функций (СУММ, СРЗНАЧ, МИН, МАКС и другие).
Диапазоны тоже работают: =СУММ(A1:A10) сложит значения столбца. Есть важное ограничение: такой пересчёт работает только в интерактивном режиме редактирования табличного документа. Если документ сформирован программно и открыт только для просмотра, формулы вводить нельзя — ячейки содержат уже готовые значения.
Чтобы включить режим редактирования, в меню табличного документа выберите «Вид — Редактирование» (в некоторых конфигурациях — кнопка «Изменить»). После этого документ ведёт себя почти как лист Excel: можно менять значения, вводить формулы и видеть пересчёт.
Выражения в запросах: аналог формул для данных
Если нужно считать не на бумаге, а по данным базы — аналогом формул служат выражения в языке запросов 1С. В консоли запросов или в конструкторе можно писать арифметику прямо в списке полей: Товары.Цена * Товары.Количество КАК Сумма. Это самый частый способ «посчитать как в Excel» для аналитических задач.
Для условной логики вместо функции ЕСЛИ используется конструкция ВЫБОР КОГДА ... ТОГДА ... ИНАЧЕ ... КОНЕЦ. Например, вывести скидку в зависимости от суммы закупки. Аналог ЕСЛИОШИБКА — функция ЕСТЬNULL(Поле, 0), которая подставляет значение вместо NULL, возникающего при соединениях таблиц.
Для приведения типов есть ВЫРАЗИТЬ(Поле КАК ЧИСЛО(15,2)) — это помогает, когда результат расчёта нужно округлить или убрать лишнюю точность. Текстовые аналоги Excel-функций тоже есть: ПОДСТРОКА, ДЛИНАСТРОКИ, РАЗНОСТЬДАТ для дат.
ВЫБОР
КОГДА Продажи.Сумма > 100000 ТОГДА Продажи.Сумма * 0.05
ИНАЧЕ 0
КОНЕЦ КАК СкидкаВычисляемые поля в отчётах на СКД
Система компоновки данных — основной инструмент отчётов в типовых конфигурациях. В ней формулы задаются на вкладке «Вычисляемые поля»: указывается имя поля и выражение на встроенном языке выражений СКД. Например: Цена * Количество - Скидка. Поле становится доступно в настройках отчёта наряду с обычными.
Язык выражений СКД похож на смесь Excel-функций и языка 1С: есть Выбор Когда для условий, функции Сумма, Минимум, Максимум, Количество для агрегации, строковые функции. Синтаксис регистронезависим, строки пишутся в двойных кавычках.
Отдельный слой — ресурсы отчёта, где задаются агрегатные формулы для итогов, например Сумма(СуммаОборот). Если итог по группе должен считаться не как сумма строк, а по своей формуле (средневзвешенное, процент от итога), это настраивается именно в ресурсах, а не в вычисляемых полях.
Где задавать формулу
Разовые расчёты на печатном бланке, ручная корректировка. Не подходит для работы с данными базы.
Расчёты по данным базы с фильтрами и соединениями. Требует навыка работы с конструктором запросов.
Отчёты, которые настраивают пользователи. Формула живёт внутри отчёта, доступна в настройках.
Формулы в документах (сумма = цена × количество). Реализуется программно, требует изменения конфигурации.
Формулы в документах и формах
Автоматический расчёт в строках документа
В типовых документах формулы уже встроены: при вводе цены и количества сумма считается автоматически. Это не Excel-формула, а код обработчика события «ПриИзменении». Если в собственной конфигурации нужен такой же пересчёт, его добавляют в модуль формы документа: Строка.Сумма = Строка.Цена * Строка.Количество;.
Выражения в макетах печатных форм
В макетах табличных документов для печати ячейки могут содержать не только параметры ([Номенклатура]), но и выражения: [Цена * Количество]. Тип заполнения ячейки при этом должен быть «Параметр» или «Шаблон». Это позволяет считать значения прямо при выводе печатной формы, не добавляя поля в запрос.
Экспорт в Excel как альтернатива
Если задача — именно свободная работа с формулами, часто рациональнее выгрузить данные из 1С в Excel. Любой табличный документ сохраняется в формат XLSX через «Файл — Сохранить как», а типовые отчёты имеют кнопку сохранения в Excel. Дальше привычные формулы, сводные таблицы и диаграммы работают без ограничений.
Ограничение этого пути — данные «отрываются» от базы: при изменении документов файл нужно выгружать заново. Для регулярной аналитики лучше настраивать формулы внутри отчёта на СКД, а Excel использовать для разовых исследований.
Как выбрать инструмент
Проверка результата и ограничения
После добавления формулы проверьте её на контрольном примере с известным результатом: возьмите одну строку данных, посчитайте вручную и сравните. Для СКД-отчётов полезно вывести вычисляемое поле рядом с исходными колонками — расхождения видны сразу.
Обращайте внимание на типы данных: умножение строки на число, сравнение даты с числом и сложение с NULL — три частых источника пустых или ошибочных результатов. В запросах типы контролируются через ВЫРАЗИТЬ, в СКД — через функции приведения.
Ограничение безопасной самостоятельной работы: формулы в табличных документах, запросах и настройках СКД не меняют данные базы. А вот изменение модулей документов и конфигурации требует резервной копии и, желательно, тестирования на копии базы — ошибка в обработчике может исказить учётные данные.
Что важно запомнить
В 1С формулы существуют в нескольких механизмах: табличный документ (почти как Excel), запросы (ВЫБОР, ЕСТЬNULL, ВЫРАЗИТЬ), СКД (вычисляемые поля и ресурсы) и макеты печати. Выбирайте механизм по задаче, проверяйте расчёт на контрольном примере и не забывайте про NULL и деление на ноль.
Частые вопросы
Можно ли в 1С писать формулы с адресами ячеек, как в Excel?
Да, но только в табличном документе в режиме редактирования. Там работают ссылки вида A1, диапазоны и функции СУММ, СРЗНАЧ и другие. В остальных механизмах (запросы, СКД) вместо адресов ячеек используются имена полей данных.
Чем заменить функцию ЕСЛИ из Excel?
В языке запросов и СКД используется конструкция ВЫБОР КОГДА условие ТОГДА значение ИНАЧЕ значение КОНЕЦ. Во встроенном языке 1С — обычный оператор «Если ... Тогда ... Иначе ... КонецЕсли» или тернарный оператор через «?()» в выражениях СКД.
Почему формула в запросе возвращает пустое значение?
Чаще всего причина — NULL, появившийся при левом соединении таблиц: любая арифметика с NULL даёт NULL. Оберните поля в ЕСТЬNULL(Поле, 0). Вторая частая причина — несовпадение типов, которое лечится функцией ВЫРАЗИТЬ.
Как добавить свою колонку с расчётом в типовой отчёт?
Если отчёт построен на СКД и конфигурация позволяет, откройте расширенные настройки отчёта — во многих типовых решениях доступны пользовательские поля с выражениями. Если такой возможности нет, потребуется доработка схемы компоновки в конфигураторе: добавление вычисляемого поля на вкладке «Вычисляемые поля».
Сохранятся ли формулы при выгрузке табличного документа в Excel?
Формулы, введённые вручную в режиме редактирования табличного документа, при сохранении в XLSX обычно сохраняются как формулы Excel. Значения, вычисленные запросом или СКД, выгружаются как готовые числа — формулами они не станут.
Опасно ли менять формулы в конфигурации самостоятельно?
Настройки отчётов и табличные документы безопасны — они не затрагивают учётные данные. Изменение модулей документов и запросов в конфигураторе уже рискованно: ошибка в расчёте суммы или налога исказит учёт. Перед такими правками сделайте резервную копию и проверьте результат на копии базы.