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

Другое · 10 мин

Как создать расчет в 1С: от начисления зарплаты до произвольной формулы

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

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

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

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

Определите, какой тип расчета вам нужен

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

Также различаются первичные расчеты (зависят от времени или введенных данных) и зависимые (считаются от базы — суммы других начислений). Премия «20% от оклада» — зависимый расчет, и ей обязательно нужно указать расчетную базу, иначе формула вернет ноль или ошибку.

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

Как выбрать подход

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

Создание начисления в пользовательском режиме

Откройте раздел «Настройка» и выберите «Начисления». Нажмите «Создать». Заполните наименование — оно будет видно в расчетных листках, поэтому формулируйте понятно: «Доплата за работу в ночное время», а не «Доплата №3». Код начисления программа подставит автоматически; он должен быть уникальным.

На закладке «Основное» укажите назначение начисления (повременная оплата, премия, прочее) и способ выполнения: ежемесячно, по отдельному документу, только если введен показатель. От этого зависит, будет ли расчет выполняться автоматически при расчете зарплаты или потребует отдельного документа-основания.

На закладке «Расчет базы» для зависимых начислений укажите, какие виды расчета входят в базу. Например, для премии от оклада выберите «Оплата по окладу» и «Оплата по часовому тарифу». Если забыть этот шаг, премия посчитается от пустой базы и будет равна нулю.

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

Настройка формулы расчета

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

Формула записывается в привычном арифметическом виде: Оклад / НормаДней ОтработаноДней или РасчетнаяБаза ПроцентПремии / 100. Допустимы функции Макс(), Мин(), Окр(), условия через конструкцию «?» (тернарный оператор): ?(Стаж > 5, Оклад * 0.1, 0).

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

Создание расчета в конфигураторе

Для разработчиков механизм расчета строится на трех объектах. План видов расчета описывает сами виды расчета (оклад, премия, больничный) и их взаимосвязи: базовые, вытесняющие, ведущие. Регистр расчета хранит записи о фактических расчетах по сотрудникам с периодом действия. Документ-регистратор формирует движения по этому регистру.

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

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

bsl
Запрос = Новый Запрос("ВЫБРАТЬ Записи.НомерСтроки, Записи.БазаОсновныеНачисления ИЗ РегистрРасчета.ОсновныеНачисления.ДанныеГрафика КАК Записи");

Проверка результата расчета

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

Обязательно сравните результат с ручным расчетом на калькуляторе. Если суммы не совпадают, типичные причины: не заполнен показатель, в базу не включен нужный вид расчета, неверно настроен учет времени (начисление считается за полный месяц вместо отработанных дней) или сотруднику расчет назначен не с начала периода.

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

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

Сумма начисления в документе расчета зарплаты
Норма

Совпадает с ручным расчетом по формуле

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

Ноль, пустая строка или сумма в разы отличается

Расчетная база в расшифровке
Норма

Включает все нужные виды расчета за период

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

База пустая или в нее попали лишние начисления

Учет отработанного времени
Норма

Сумма уменьшается при неполном месяце

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

Начисляется полная сумма независимо от отработки

Отражение в расчетном листке
Норма

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

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

Строка отсутствует или подписана служебным кодом

Типичные ошибки и ограничения

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

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

Типичные ошибки
01
Не указана расчетная база у зависимого начисления — премия считается от нуля
02
Изменение формулы после расчета зарплаты без перепроведения документов — в учете остаются старые суммы
03
Редактирование типового предопределенного начисления — настройки теряются при обновлении
04
Показатель вводится документом, но документ не заполнен — формула молча возвращает ноль
05
Неверный учет времени — начисление не уменьшается при отпуске или больничном

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

Можно ли создать расчет без программирования?

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

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

Создайте показатель (например, «Процент премии») с вводом по документу «Данные для расчета зарплаты», затем используйте его в формуле начисления: РасчетнаяБаза * ПроцентПремии / 100. Ежемесячно заполняйте документ с актуальным процентом — формулу менять не потребуется.

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

Проверьте три вещи: назначено ли начисление сотруднику (в кадровом документе или через «Назначение планового начисления»), не снят ли флаг использования в самом начислении, и соответствует ли способ выполнения ситуации — например, расчет «по отдельному документу» не появится в автоматическом начислении зарплаты.

Как пересчитать зарплату после изменения формулы?

Откройте документы «Начисление зарплаты и взносов» затронутых периодов и нажмите «Отменить исправление»/перепроведите их, либо воспользуйтесь механизмом доначислений. Учтите, что изменение прошлых периодов может потребовать уточненной отчетности — согласуйте это с бухгалтерией.

Чем начисление отличается от вида расчета?

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

Можно ли копировать настройки расчета между базами?

Да, через обработку «Выгрузка/загрузка данных» в формате XML или типовой перенос настроек, если базы на одной версии конфигурации. После переноса обязательно проверьте показатели и расчетную базу — ссылки на виды расчета в другой базе могут отличаться.

Итог

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

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