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

Другое · 11 мин

Как в 1С изменить формулу расчета

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

Формулы расчета в 1С встречаются в нескольких местах: в начислениях и удержаниях зарплаты (1С:ЗУП), в ценообразовании и скидках (1С:Управление торговлей, КА, ERP), в формулах показателей бюджетирования и в вычисляемых полях отчетов. Способ изменения зависит от того, где именно задана формула, но общий принцип один: формула редактируется в специальном редакторе, где используются предопределенные показатели и операторы, а не свободный текст.

Чаще всего задача возникает в 1С:Зарплата и управление персоналом — например, нужно изменить расчет премии с фиксированного процента на процент от выручки или добавить новый показатель в расчет доплаты. В торговых конфигурациях типовая ситуация — изменить формулу расчета цены (например, «закупочная цена + наценка 20%») или скидки. Ниже разобраны оба сценария, а также работа с формулами в отчетах и ограничения типовых конфигураций.

Перед любыми изменениями убедитесь, что у вас есть права на редактирование соответствующих объектов, и сделайте резервную копию информационной базы. Ошибка в формуле зарплаты или цен может привести к массовым неправильным начислениям и финансовым потерям, которые потом придется исправлять сторнирующими документами.

Где в 1С хранятся формулы расчета

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

В торговых конфигурациях формулы цен задаются в видах цен (раздел «CRM и маркетинг» или «Закупки» → «Виды цен»), а формулы скидок — в карточках скидок и наценок. В бюджетировании формулы привязаны к статьям бюджетов и показателям. В отчетах на СКД (системе компоновки данных) вычисляемые поля с формулами редактируются в конструкторе настроек отчета.

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

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

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

Неправильно считается зарплата, премия или доплатаОткройте карточку начисления в ЗУП и редактируйте формулу на вкладке «Основное»
Неверно рассчитывается цена товараПроверьте вид цены и формулу расчета цены в разделе ценообразования
Неправильное значение только в отчетеОткройте настройки отчета и проверьте вычисляемые поля и ресурсы
Формула заблокирована и не редактируетсяРасчет зашит в коде типовой конфигурации — потребуется доработка через расширение

Изменение формулы начисления в 1С:ЗУП

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

В редакторе формул доступны: список показателей (слева или через кнопку «Добавить показатель»), арифметические операторы, функции (Макс, Мин, Окр и другие) и константы. Формула собирается из показателей: например, Оклад * ПроцентПремии / 100. Нельзя вводить произвольные имена — только показатели, зарегистрированные в справочнике «Показатели расчета зарплаты».

Если нужного показателя нет, его сначала создают: «Настройка» → «Показатели расчета зарплаты» → «Создать». Укажите назначение показателя (для сотрудника, подразделения или организации), порядок ввода (вводится документом, используется постоянно) и тип значения. Только после этого показатель станет доступен в редакторе формул.

Порядок изменения формулы начисления
  1. 1
    Сделайте резервную копию базы или выполните изменение сначала в тестовой копии
  2. 2
    Откройте «Настройка» → «Начисления», найдите нужное начисление
  3. 3
    При необходимости создайте новый показатель в «Показатели расчета зарплаты»
  4. 4
    Нажмите «Редактировать формулу» и соберите новую формулу из показателей и операторов
  5. 5
    Сохраните начисление и проверьте расчет на одном тестовом сотруднике
  6. 6
    Сравните результат с ожидаемым значением, рассчитанным вручную

Пример: премия от оклада с учетом отработанного времени

Типовая задача — чтобы премия уменьшалась пропорционально неотработанным дням. Формула может выглядеть так: Оклад ПроцентПремии / 100 ВремяВДнях / НормаДней. Показатели времени (ВремяВДнях, НормаДней) заполняются программой автоматически при расчете, если в настройках начисления указано, что оно зависит от отработанного времени.

Изменение формулы цены и скидки в УТ, КА и ERP

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

Формула цены строится из базовых видов цен, наценок и арифметических операций, например: [Закупочная цена] * 1.2. После изменения формулы цены не пересчитаются сами по себе — нужно выполнить переоценку: сформировать документ «Установка цен номенклатуры» с расчетом по новой формуле или использовать рабочее место «Цены номенклатуры» с пересчетом.

Формулы скидок меняются в карточке скидки (раздел «CRM и маркетинг» → «Скидки (наценки)»). Условия предоставления и размер скидки могут задаваться формулой с использованием параметров: суммы документа, количества товара, дисконтной карты. После изменения проверьте скидку на тестовом чеке или заказе.

Редактирование формул в отчетах и вычисляемых полях

Если неверное значение видно только в отчете, а в документах всё правильно, формула находится в настройках отчета. В отчетах на СКД откройте «Ещё» → «Изменить вариант отчета» (или «Настройки» → «Расширенные»), перейдите на вкладку «Пользовательские поля» или «Вычисляемые поля» и отредактируйте выражение.

В вычисляемых полях СКД используется встроенный язык выражений компоновки: арифметика, функции Сумма, РазностьДат, Выбор Когда и другие. Например, поле рентабельности: (Продажи - Себестоимость) / Продажи * 100. Учтите, что изменение варианта отчета влияет только на этот отчет и не меняет данные в базе.

Сохраните измененный вариант отчета под новым именем, чтобы не потерять типовой вариант и иметь возможность сравнить результаты до и после правки формулы.

Когда формулу нельзя изменить без доработки

Часть расчетов в типовых конфигурациях зашита в программном коде и не имеет редактируемой формулы: например, расчет НДФЛ, страховых взносов, некоторых регламентированных удержаний. В карточке такого начисления поле формулы отсутствует или недоступно для редактирования.

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

Сравнение вариантов изменения расчета

Редактирование формулы в карточке объекта

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

Создание нового начисления или вида цены

Подходит, когда типовой объект трогать нельзя. Старая формула сохраняется, новую можно тестировать параллельно

Расширение конфигурации

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

Прямая правка конфигурации

Максимальная гибкость, но конфигурация снимается с полной поддержки — обновления придется ставить вручную

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

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

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

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

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

Синтаксис формулы
Норма

Редактор сохраняет формулу без сообщений об ошибках, все показатели распознаны

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

Программа подсвечивает неизвестный показатель или неверный оператор

Расчет в ЗУП
Норма

Расшифровка показывает корректные значения показателей и ожидаемый итог

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

Показатель равен нулю или не заполнен — значит, не введены данные для него

Цены после переоценки
Норма

Цены контрольных позиций совпадают с ручным расчетом

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

Цены обнулились или резко отличаются — ошибка в базовом виде цены или формуле

Данные прошлых периодов
Норма

Закрытые периоды не пересчитаны и не изменились

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

Исторические документы изменили суммы — формулу применили задним числом

Типичные ошибки при изменении формул

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

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

Типичные ошибки
01
Правка формулы в середине расчетного периода — расхождение сумм между сотрудниками и отчетами
02
Использование показателя без настроенного ввода данных — результат расчета равен нулю
03
Применение новой формулы цены без тестовой переоценки — массовые ошибки в прайсе
04
Изменение типового объекта вместо создания копии — потеря эталонной формулы и проблемы при обновлении
05
Отсутствие резервной копии перед изменением — невозможность быстро откатить ошибку

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

Почему поле формулы в начислении недоступно для редактирования?

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

Изменится ли расчет за прошлые периоды после правки формулы?

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

Как добавить в формулу показатель, которого нет в списке?

Создайте его в разделе «Настройка» → «Показатели расчета зарплаты», укажите назначение и способ ввода. После сохранения показатель станет доступен в редакторе формул всех начислений.

Можно ли в формуле использовать условия «если... то...»?

В редакторе формул ЗУП доступны функции Макс, Мин и округление; сложные ветвления реализуют через несколько начислений с разными условиями или через доработку. В вычисляемых полях СКД доступна конструкция «Выбор Когда... Тогда... Конец».

Что делать, если после изменения формулы расчет стал неверным у всех сотрудников?

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

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

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

Итог

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

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