Другое · 10 мин
Как создать расчет в 1С: от начисления зарплаты до произвольной формулы
Как создать расчет в 1С: виды расчетов, начисления, удержания, формулы, план видов расчета и проверка результата. Практическая инструкция для пользователей и разработчиков.
Расчет в 1С — это настройка, по которой программа вычисляет сумму: оклад по дням, премию процентом, удержание НДФЛ или произвольную формулу. В зависимости от задачи расчет создается либо в пользовательском режиме (типовые начисления и удержания в «1С:Зарплате и управлении персоналом»), либо в конфигураторе через план видов расчета — если вы разрабатываете или дорабатываете конфигурацию.
Чаще всего запрос «создать расчет» означает одно из трех: добавить новое начисление сотруднику (например, доплату за вредность), настроить собственную формулу расчета, или построить механизм расчета в самописной конфигурации. Ниже разобраны все три сценария с конкретными шагами, проверками результата и типичными ошибками.
Перед любыми изменениями в расчетных механизмах сделайте резервную копию информационной базы. Ошибка в формуле или в базе расчета может исказить начисления по всем сотрудникам, а исправлять расчетные документы задним числом значительно сложнее, чем предотвратить проблему.
Определите, какой тип расчета вам нужен
В 1С расчеты делятся на несколько категорий, и от этого зависит место создания. Начисления — это то, что сотрудник получает: оклад, премия, отпускные, доплаты. Удержания — то, что вычитается: НДФЛ, алименты, займы. В нетиповых конфигурациях добавляются произвольные расчеты — например, расчет себестоимости, комиссии агента или пени.
Также различаются первичные расчеты (зависят от времени или введенных данных) и зависимые (считаются от базы — суммы других начислений). Премия «20% от оклада» — зависимый расчет, и ей обязательно нужно указать расчетную базу, иначе формула вернет ноль или ошибку.
Как выбрать подход
Создание начисления в пользовательском режиме
Откройте раздел «Настройка» и выберите «Начисления». Нажмите «Создать». Заполните наименование — оно будет видно в расчетных листках, поэтому формулируйте понятно: «Доплата за работу в ночное время», а не «Доплата №3». Код начисления программа подставит автоматически; он должен быть уникальным.
На закладке «Основное» укажите назначение начисления (повременная оплата, премия, прочее) и способ выполнения: ежемесячно, по отдельному документу, только если введен показатель. От этого зависит, будет ли расчет выполняться автоматически при расчете зарплаты или потребует отдельного документа-основания.
На закладке «Расчет базы» для зависимых начислений укажите, какие виды расчета входят в базу. Например, для премии от оклада выберите «Оплата по окладу» и «Оплата по часовому тарифу». Если забыть этот шаг, премия посчитается от пустой базы и будет равна нулю.
- 1Откройте «Настройка → Начисления» и нажмите «Создать»
- 2Укажите наименование, назначение и способ выполнения расчета
- 3Настройте формулу или выберите типовую
- 4Для зависимых расчетов заполните закладку «Расчет базы»
- 5Проверьте закладки «Учет времени» и «Зависимости»
- 6Назначьте начисление тестовому сотруднику и выполните расчет зарплаты
- 7Сверьте сумму с ожидаемым результатом, рассчитанным вручную
Настройка формулы расчета
Если типовые варианты не подходят, выберите способ расчета «Произвольная формула» и нажмите «Редактировать формулу». В редакторе доступны показатели: отработанное время, оклад, расчетная база, а также собственные показатели, которые вы можете создать через «Настройка → Показатели расчета зарплаты».
Формула записывается в привычном арифметическом виде: Оклад / НормаДней ОтработаноДней или РасчетнаяБаза ПроцентПремии / 100. Допустимы функции Макс(), Мин(), Окр(), условия через конструкцию «?» (тернарный оператор): ?(Стаж > 5, Оклад * 0.1, 0).
Собственные показатели бывают трех видов ввода: для сотрудника (персональный коэффициент), для подразделения и для организации в целом. Показатель, вводимый ежемесячно документом «Данные для расчета зарплаты», позволяет менять значение без изменения самой формулы — это удобно для премий с переменным процентом.
Создание расчета в конфигураторе
Для разработчиков механизм расчета строится на трех объектах. План видов расчета описывает сами виды расчета (оклад, премия, больничный) и их взаимосвязи: базовые, вытесняющие, ведущие. Регистр расчета хранит записи о фактических расчетах по сотрудникам с периодом действия. Документ-регистратор формирует движения по этому регистру.
В плане видов расчета настройте зависимости: вытеснение (отпуск вытесняет оплату по окладу за те же дни), ведущие расчеты (перерасчет премии при изменении оклада). Для регистра расчета включите период действия, если расчеты зависят от фактически отработанного времени, и настройте связь с планом видов расчета.
Сам расчет выполняется в модуле объекта или общем модуле: обходятся записи регистра, для каждой вычисляется результат по формуле вида расчета, результат записывается обратно. Для зависимых расчетов предварительно получают базу методом ПолучитьДанныеГрафика и платформенными механизмами расчета базы.
Запрос = Новый Запрос("ВЫБРАТЬ Записи.НомерСтроки, Записи.БазаОсновныеНачисления ИЗ РегистрРасчета.ОсновныеНачисления.ДанныеГрафика КАК Записи");Проверка результата расчета
После настройки создайте тестовый расчет: назначьте начисление одному сотруднику и сформируйте документ «Начисление зарплаты и взносов». Откройте строку сотрудника и проверьте детализацию расчета — в типовых конфигурациях по двойному щелчку видна расшифровка: какие показатели взяты, какое время учтено, какая база применена.
Обязательно сравните результат с ручным расчетом на калькуляторе. Если суммы не совпадают, типичные причины: не заполнен показатель, в базу не включен нужный вид расчета, неверно настроен учет времени (начисление считается за полный месяц вместо отработанных дней) или сотруднику расчет назначен не с начала периода.
Как проверить результат
Совпадает с ручным расчетом по формуле
Ноль, пустая строка или сумма в разы отличается
Включает все нужные виды расчета за период
База пустая или в нее попали лишние начисления
Сумма уменьшается при неполном месяце
Начисляется полная сумма независимо от отработки
Начисление видно отдельной строкой с понятным названием
Строка отсутствует или подписана служебным кодом
Типичные ошибки и ограничения
Самая частая ошибка — забытая расчетная база у зависимого начисления. Вторая по частоте — неверный способ выполнения: начисление настроено «ежемесячно», но показатель вводится документом, который пользователи не заполняют. Третья — изменение формулы задним числом: уже рассчитанные документы не пересчитаются автоматически, их нужно перепроводить вручную.
Учитывайте и ограничения типовых конфигураций: сложные многоступенчатые расчеты (например, прогрессивные шкалы с несколькими условиями) иногда проще реализовать через несколько связанных начислений или доработку, чем одной громоздкой формулой. Не изменяйте типовые предопределенные начисления напрямую — при обновлении конфигурации изменения могут быть потеряны; создавайте копию.
Частые вопросы
Можно ли создать расчет без программирования?
Да. В типовых конфигурациях («1С:Зарплата и управление персоналом», «1С:Комплексная автоматизация») большинство начислений и удержаний настраивается в пользовательском режиме: формулы с показателями, расчет от базы, фиксированные суммы. Программирование требуется только для нестандартной логики или собственных конфигураций.
Как сделать расчет, который зависит от процента, вводимого каждый месяц?
Создайте показатель (например, «Процент премии») с вводом по документу «Данные для расчета зарплаты», затем используйте его в формуле начисления: РасчетнаяБаза * ПроцентПремии / 100. Ежемесячно заполняйте документ с актуальным процентом — формулу менять не потребуется.
Почему начисление не появляется при расчете зарплаты?
Проверьте три вещи: назначено ли начисление сотруднику (в кадровом документе или через «Назначение планового начисления»), не снят ли флаг использования в самом начислении, и соответствует ли способ выполнения ситуации — например, расчет «по отдельному документу» не появится в автоматическом начислении зарплаты.
Как пересчитать зарплату после изменения формулы?
Откройте документы «Начисление зарплаты и взносов» затронутых периодов и нажмите «Отменить исправление»/перепроведите их, либо воспользуйтесь механизмом доначислений. Учтите, что изменение прошлых периодов может потребовать уточненной отчетности — согласуйте это с бухгалтерией.
Чем начисление отличается от вида расчета?
В пользовательском режиме «начисление» — это настройка, которую видит расчетчик. «Вид расчета» — технический термин уровня конфигурации: каждое начисление хранится как элемент плана видов расчета. По сути это одно и то же на разных уровнях: пользователь создает начисление, а система сохраняет его как вид расчета.
Можно ли копировать настройки расчета между базами?
Да, через обработку «Выгрузка/загрузка данных» в формате XML или типовой перенос настроек, если базы на одной версии конфигурации. После переноса обязательно проверьте показатели и расчетную базу — ссылки на виды расчета в другой базе могут отличаться.
Что важно запомнить
Простые расчеты создаются в пользовательском режиме через «Настройка → Начисления/Удержания» с формулой и показателями; сложные механизмы — через план видов расчета и регистр расчета в конфигураторе. Всегда указывайте расчетную базу для зависимых начислений, проверяйте результат на тестовом сотруднике и не меняйте формулы в закрытых периодах без пересчета документов.