Комментарии (1)
🐱
claude-haiku-4.5PrepBro AI26 мар. 2026 г.(ред.)
Ответ сгенерирован нейросетью и может содержать ошибки
Базовые виды расчётов в 1С
Базовые виды расчётов — это механизм в 1С для управления различными типами начислений и вычетов в модулях зарплаты и кадровых систем. Это фундаментальный компонент для автоматизации расчётной деятельности.
Определение
Базовый вид расчёта — это шаблон для одного типа начисления или вычета (зарплата, премия, налог, взнос в ПФ и т.д.), который определяет:
- Как вычисляется (формула)
- Когда вычисляется (в какие периоды)
- На кого распространяется (категория сотрудников)
- Зависимости от других расчётов
Структура базового вида расчёта
// Справочник: Справочники.БазовыеВидыРасчётов
// Пример: "Оклад" (базовый вид расчёта)
// Поля:
Наименование = "Оклад" // "Оклад", "Премия", "Налог на доходы физических лиц"
Тип = "Начисление" // "Начисление" или "Вычет"
Периодичность = ПериодичностьРасчёта.Ежемесячно // как часто начисляется
Формула = "Оклад" // или "Оклад * 0.13" для налогов
ЗависимостиРасчётов = [...] // какие расчёты должны быть выполнены до этого
Иерархия видов расчётов
Базовые виды расчётов
├── Начисления
│ ├── Оклад
│ ├── Премия
│ ├── Бонус
│ ├── Доплаты
│ │ ├── За сложность
│ │ └── За опасность
│ └── Компенсации
│ └── За отпуск
│
└── Вычеты
├── Налог на доходы физических лиц (НДФЛ)
├── Взносы в Пенсионный фонд
├── Взносы в Фонд социального страхования
├── Алименты
└── Превышение оклада
Примеры базовых видов расчётов
1. Оклад (начисление)
// Справочник: Справочники.БазовыеВидыРасчётов
// Объект "Оклад"
Оклад = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Оклад");
Оклад.Тип = "Начисление"; // это начисление, не вычет
Оклад.Периодичность = "Ежемесячно"; // каждый месяц
Оклад.Формула = "Оклад"; // ссылка на реквизит сотрудника
Оклад.БазовыйВидРасчета = Неопределено; // не зависит от других
Оклад.Описание = "Основное жалованье сотрудника";
Оклад.Записать();
2. НДФЛ (вычет, зависит от оклада)
// Справочник: Справочники.БазовыеВидыРасчётов
НДФЛ = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("НДФЛ");
НДФЛ.Тип = "Вычет"; // это вычет
НДФЛ.Периодичность = "Ежемесячно";
НДФЛ.Формула = "Оклад * 0.13"; // 13% от оклада
НДФЛ.БазовыйВидРасчета = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Оклад");
// Зависит от оклада! Вычисляется ПОСЛЕ оклада
НДФЛ.Описание = "Налог на доходы физических лиц (13%)";
НДФЛ.Записать();
3. Премия (начисление, условное)
// Справочник: Справочники.БазовыеВидыРасчётов
Премия = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Премия");
Премия.Тип = "Начисление";
Премия.Периодичность = "Квартально"; // раз в квартал
Премия.Формула = "Оклад * Коэффициент_Премии"; // по коэффициенту
Премия.БазовыйВидРасчета = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Оклад");
Премия.Условие = "Отсутствие_Прогулов"; // условие начисления
Премия.Записать();
Где используются базовые виды расчётов
1. В расчётных листах
// Документ: Документы.РасчетныйЛист
// Каждый месяц создаётся расчётный лист для сотрудника
РасчетныйЛист = Документы.РасчетныйЛист.СоздатьДокумент();
РасчетныйЛист.Сотрудник = Сотрудник;
РасчетныйЛист.Период = Дата;
// Добавить расчёты на основе базовых видов
Строка = РасчетныйЛист.Расчеты.Добавить();
Строка.БазовыйВидРасчета = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Оклад");
Строка.Сумма = 50000; // оклад сотрудника
Строка2 = РасчетныйЛист.Расчеты.Добавить();
Строка2.БазовыйВидРасчета = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("НДФЛ");
Строка2.Сумма = 50000 * 0.13; // вычислено автоматически
РасчетныйЛист.Провести();
2. В регистрах расчётов
// Регистр сведений: РегистрыСведений.РасчётыСотрудников
// Хранит историю всех расчётов
ЗаписьРасчёта = РегистрыСведений.РасчётыСотрудников.СоздатьМенеджерЗаписи();
ЗаписьРасчёта.Период = Дата;
ЗаписьРасчёта.Сотрудник = Сотрудник;
ЗаписьРасчёта.БазовыйВидРасчета = Справочники.БазовыеВидыРасчётов.НайтиПоНаименованию("Оклад");
ЗаписьРасчёта.Сумма = 50000;
ЗаписьРасчёта.Записать();
3. В формировании отчётов
// Отчёт: Расчёт зарплаты по видам
Процедура СформироватьОтчётРасчётов()
Запрос = Новый Запрос(
"SELECT
ВидРасчета,
SUM(Сумма) as Итого
FROM РегистрыСведений.РасчётыСотрудников
WHERE Период >= &ДатаНач AND Период <= &ДатаКон
GROUP BY ВидРасчета"
);
Результат = Запрос.Выполнить();
// Результат покажет:
// Оклад: 500,000 руб
// Премия: 50,000 руб
// НДФЛ: -71,500 руб
// Взносы: -39,000 руб
// К выплате: 439,500 руб
КонецПроцедуры
Порядок вычисления расчётов
// Платформа вычисляет в правильном порядке:
1. Вычисляются базовые виды (независимые)
├─ Оклад
├─ Премия (если условие выполнено)
└─ Компенсации
2. Затем вычисляются виды, зависящие от базовых
├─ НДФЛ (зависит от Оклада)
└─ Взносы (зависят от Оклада)
3. Вычисляются итоги
└─ Сумма к выплате = Начисления - Вычеты
Практический пример: расчёт зарплаты
Процедура РассчитатьЗарплату(Сотрудник, ПериодОт, ПериодДо) Экспорт
// Шаг 1: Загрузить базовые виды расчётов
БазовыеВиды = Справочники.БазовыеВидыРасчётов.ВыбратьВсе();
// Шаг 2: Создать расчётный лист
РасчетныйЛист = Документы.РасчетныйЛист.СоздатьДокумент();
РасчетныйЛист.Сотрудник = Сотрудник;
РасчетныйЛист.ПериодОт = ПериодОт;
РасчетныйЛист.ПериодДо = ПериодДо;
ОкладПо = ПолучитьОклад(Сотрудник);
БольничныхДней = ПолучитьБольничныхДней(Сотрудник, ПериодОт, ПериодДо);
ОтпускныхДней = ПолучитьОтпускныхДней(Сотрудник, ПериодОт, ПериодДо);
// Шаг 3: Добавить начисления
СтрокаОклад = РасчетныйЛист.Расчеты.Добавить();
СтрокаОклад.БазовыйВидРасчета = БазовыеВиды.НайтиПоНаименованию("Оклад");
СтрокаОклад.Сумма = ОкладПо * ((25 - БольничныхДней - ОтпускныхДней) / 25);
// Пропорционально отработанным дням
СтрокаПремия = РасчетныйЛист.Расчеты.Добавить();
СтрокаПремия.БазовыйВидРасчета = БазовыеВиды.НайтиПоНаименованию("Премия");
СтрокаПремия.Сумма = ОкладПо * 0.2; // 20% премии
// Шаг 4: Добавить вычеты (они вычисляются от начисленных сумм)
СтрокаНДФЛ = РасчетныйЛист.Расчеты.Добавить();
СтрокаНДФЛ.БазовыйВидРасчета = БазовыеВиды.НайтиПоНаименованию("НДФЛ");
СтрокаНДФЛ.Сумма = -(СтрокаОклад.Сумма + СтрокаПремия.Сумма) * 0.13;
// Шаг 5: Записать и провести
РасчетныйЛист.Записать();
РасчетныйЛист.Провести();
// Шаг 6: Итоговая сумма к выплате
СуммаКВыплате = СтрокаОклад.Сумма + СтрокаПремия.Сумма + СтрокаНДФЛ.Сумма;
КонецПроцедуры
Особенности работы с базовыми видами
- Зависимости — порядок вычисления важен (налоги зависят от начисленной суммы)
- Условия — базовый вид может начисляться только при определённых условиях
- Периодичность — одни виды ежемесячные, другие ежеквартальные
- Коэффициенты — премии зависят от коэффициентов производительности
- История — все расчёты хранятся в регистрах для аудита и анализа
Чеклист при работе с базовыми видами расчётов
- Определены все необходимые виды расчётов (оклад, премия, налоги, взносы)
- Установлены правильные зависимости между видами
- Формулы корректны
- Периодичность соответствует требованиям
- Условия (если есть) правильно реализованы
- Регистры содержат полную историю
- Тестирование на реальных данных
Итого: базовые виды расчётов — это словарь всех возможных начислений и вычетов в системе, который используется при расчёте зарплаты и создании расчётных листов.