Другое · 11 мин
Как в 1С изменить формулу расчета
Как изменить формулу расчета в 1С: редактирование формул начислений в ЗУП, цен и скидок в УТ, формул в отчетах. Пошаговые инструкции, риски и проверка результата.
Формулы расчета в 1С встречаются в нескольких местах: в начислениях и удержаниях зарплаты (1С:ЗУП), в ценообразовании и скидках (1С:Управление торговлей, КА, ERP), в формулах показателей бюджетирования и в вычисляемых полях отчетов. Способ изменения зависит от того, где именно задана формула, но общий принцип один: формула редактируется в специальном редакторе, где используются предопределенные показатели и операторы, а не свободный текст.
Чаще всего задача возникает в 1С:Зарплата и управление персоналом — например, нужно изменить расчет премии с фиксированного процента на процент от выручки или добавить новый показатель в расчет доплаты. В торговых конфигурациях типовая ситуация — изменить формулу расчета цены (например, «закупочная цена + наценка 20%») или скидки. Ниже разобраны оба сценария, а также работа с формулами в отчетах и ограничения типовых конфигураций.
Перед любыми изменениями убедитесь, что у вас есть права на редактирование соответствующих объектов, и сделайте резервную копию информационной базы. Ошибка в формуле зарплаты или цен может привести к массовым неправильным начислениям и финансовым потерям, которые потом придется исправлять сторнирующими документами.
Где в 1С хранятся формулы расчета
Первый шаг — определить, какой именно механизм отвечает за расчет, который вы хотите изменить. В зарплатных конфигурациях (ЗУП) формулы находятся в справочнике «Начисления» и «Удержания» (раздел «Настройка» → «Начисления»). Каждое начисление — оклад, премия, доплата — имеет свою формулу, которая использует показатели: оклад, отработанное время, выручку и другие.
В торговых конфигурациях формулы цен задаются в видах цен (раздел «CRM и маркетинг» или «Закупки» → «Виды цен»), а формулы скидок — в карточках скидок и наценок. В бюджетировании формулы привязаны к статьям бюджетов и показателям. В отчетах на СКД (системе компоновки данных) вычисляемые поля с формулами редактируются в конструкторе настроек отчета.
Если вы не знаете, откуда берется цифра, начните с расчетчика или пользователя, который видит неверный результат: уточните, в каком документе или отчете отображается значение, и проследите цепочку — какой вид расчета, вид цены или показатель за него отвечает.
Как выбрать действие
Изменение формулы начисления в 1С:ЗУП
Откройте раздел «Настройка» → «Начисления» и найдите в списке нужное начисление, например «Премия процентом». В карточке начисления на вкладке «Основное» находится поле «Формула расчета» (или «Результат рассчитывается» с отображением формулы). Нажмите кнопку «Редактировать формулу» — откроется редактор.
В редакторе формул доступны: список показателей (слева или через кнопку «Добавить показатель»), арифметические операторы, функции (Макс, Мин, Окр и другие) и константы. Формула собирается из показателей: например, Оклад * ПроцентПремии / 100. Нельзя вводить произвольные имена — только показатели, зарегистрированные в справочнике «Показатели расчета зарплаты».
Если нужного показателя нет, его сначала создают: «Настройка» → «Показатели расчета зарплаты» → «Создать». Укажите назначение показателя (для сотрудника, подразделения или организации), порядок ввода (вводится документом, используется постоянно) и тип значения. Только после этого показатель станет доступен в редакторе формул.
- 1Сделайте резервную копию базы или выполните изменение сначала в тестовой копии
- 2Откройте «Настройка» → «Начисления», найдите нужное начисление
- 3При необходимости создайте новый показатель в «Показатели расчета зарплаты»
- 4Нажмите «Редактировать формулу» и соберите новую формулу из показателей и операторов
- 5Сохраните начисление и проверьте расчет на одном тестовом сотруднике
- 6Сравните результат с ожидаемым значением, рассчитанным вручную
Пример: премия от оклада с учетом отработанного времени
Типовая задача — чтобы премия уменьшалась пропорционально неотработанным дням. Формула может выглядеть так: Оклад ПроцентПремии / 100 ВремяВДнях / НормаДней. Показатели времени (ВремяВДнях, НормаДней) заполняются программой автоматически при расчете, если в настройках начисления указано, что оно зависит от отработанного времени.
Изменение формулы цены и скидки в УТ, КА и ERP
В торговых конфигурациях откройте вид цены: «CRM и маркетинг» → «Настройки и справочники» → «Виды цен» (в разных версиях путь может отличаться). В карточке вида цены задайте способ задания цены — «Рассчитывается по формуле от других видов цен» или «Наценка на цену поступления». Ниже расположено поле формулы, которое редактируется в конструкторе.
Формула цены строится из базовых видов цен, наценок и арифметических операций, например: [Закупочная цена] * 1.2. После изменения формулы цены не пересчитаются сами по себе — нужно выполнить переоценку: сформировать документ «Установка цен номенклатуры» с расчетом по новой формуле или использовать рабочее место «Цены номенклатуры» с пересчетом.
Формулы скидок меняются в карточке скидки (раздел «CRM и маркетинг» → «Скидки (наценки)»). Условия предоставления и размер скидки могут задаваться формулой с использованием параметров: суммы документа, количества товара, дисконтной карты. После изменения проверьте скидку на тестовом чеке или заказе.
Редактирование формул в отчетах и вычисляемых полях
Если неверное значение видно только в отчете, а в документах всё правильно, формула находится в настройках отчета. В отчетах на СКД откройте «Ещё» → «Изменить вариант отчета» (или «Настройки» → «Расширенные»), перейдите на вкладку «Пользовательские поля» или «Вычисляемые поля» и отредактируйте выражение.
В вычисляемых полях СКД используется встроенный язык выражений компоновки: арифметика, функции Сумма, РазностьДат, Выбор Когда и другие. Например, поле рентабельности: (Продажи - Себестоимость) / Продажи * 100. Учтите, что изменение варианта отчета влияет только на этот отчет и не меняет данные в базе.
Сохраните измененный вариант отчета под новым именем, чтобы не потерять типовой вариант и иметь возможность сравнить результаты до и после правки формулы.
Когда формулу нельзя изменить без доработки
Часть расчетов в типовых конфигурациях зашита в программном коде и не имеет редактируемой формулы: например, расчет НДФЛ, страховых взносов, некоторых регламентированных удержаний. В карточке такого начисления поле формулы отсутствует или недоступно для редактирования.
В этом случае есть два пути. Первый — подобрать типовой механизм: создать собственное начисление с нужной формулой и назначать его вместо типового. Второй — доработка через расширение конфигурации (не изменяя саму конфигурацию, чтобы сохранить поддержку и обновления). Прямая правка кода типовой конфигурации — крайняя мера: она усложняет обновления и требует участия программиста 1С.
Сравнение вариантов изменения расчета
Подходит, когда формула доступна в интерфейсе (начисления, виды цен, скидки). Не требует программирования, но ограничено набором показателей
Подходит, когда типовой объект трогать нельзя. Старая формула сохраняется, новую можно тестировать параллельно
Подходит для расчетов, зашитых в коде. Требует программиста, но сохраняет обновляемость конфигурации
Максимальная гибкость, но конфигурация снимается с полной поддержки — обновления придется ставить вручную
Проверка результата после изменения формулы
Никогда не ограничивайтесь тем, что формула сохранилась без ошибок синтаксиса. В ЗУП рассчитайте зарплату одного тестового сотрудника документом «Начисление зарплаты и взносов», откройте расшифровку начисления (двойной щелчок по строке) — программа покажет, какие показатели и значения подставлены в формулу. Сверьте результат с расчетом на бумаге или в калькуляторе.
Для цен сформируйте установку цен по новой формуле на небольшой группе товаров и сравните с ожидаемыми значениями. Для отчетов — сопоставьте итоги с исходными данными до агрегации.
Как проверить результат
Редактор сохраняет формулу без сообщений об ошибках, все показатели распознаны
Программа подсвечивает неизвестный показатель или неверный оператор
Расшифровка показывает корректные значения показателей и ожидаемый итог
Показатель равен нулю или не заполнен — значит, не введены данные для него
Цены контрольных позиций совпадают с ручным расчетом
Цены обнулились или резко отличаются — ошибка в базовом виде цены или формуле
Закрытые периоды не пересчитаны и не изменились
Исторические документы изменили суммы — формулу применили задним числом
Типичные ошибки при изменении формул
Самая частая ошибка — изменение формулы, которая уже используется в расчетных документах текущего периода. Результат: часть сотрудников рассчитана по-старому, часть по-новому. Решение — вводить новую формулу со следующего расчетного периода или пересчитать все документы периода.
Вторая ошибка — использование показателя, данные для которого никто не вводит. Формула верная, но результат нулевой. Проверьте, как показатель заполняется: документом «Данные для расчета зарплаты», в кадровом документе или автоматически.
Частые вопросы
Почему поле формулы в начислении недоступно для редактирования?
Либо это предопределенное начисление с расчетом, зашитым в код конфигурации (НДФЛ, взносы, типовые удержания), либо у вас недостаточно прав. Проверьте права доступа, а для предопределенных расчетов создайте собственное начисление с нужной формулой.
Изменится ли расчет за прошлые периоды после правки формулы?
Нет, уже рассчитанные и проведенные документы не пересчитываются автоматически. Новая формула применится только при новом расчете или при явном пересчете документов. Не пересчитывайте закрытые периоды без необходимости — это изменит отчетность.
Как добавить в формулу показатель, которого нет в списке?
Создайте его в разделе «Настройка» → «Показатели расчета зарплаты», укажите назначение и способ ввода. После сохранения показатель станет доступен в редакторе формул всех начислений.
Можно ли в формуле использовать условия «если... то...»?
В редакторе формул ЗУП доступны функции Макс, Мин и округление; сложные ветвления реализуют через несколько начислений с разными условиями или через доработку. В вычисляемых полях СКД доступна конструкция «Выбор Когда... Тогда... Конец».
Что делать, если после изменения формулы расчет стал неверным у всех сотрудников?
Верните прежнюю формулу из резервной копии или вручную, пересчитайте документы начисления текущего периода и только после этого повторяйте изменение — сначала в тестовой базе.
Нужно ли программировать, чтобы изменить формулу?
Для формул начислений, цен, скидок и вычисляемых полей отчетов программирование не требуется — всё делается в редакторе формул. Разработчик понадобится только если расчет зашит в коде типовой конфигурации и не имеет редактируемой формулы.
Что важно запомнить
Формула меняется в карточке начисления, вида цены, скидки или в настройках отчета — через редактор формул с использованием зарегистрированных показателей. Работайте сначала в копии базы, вводите новую формулу со следующего периода и обязательно проверяйте результат на контрольном примере с ручным расчетом.