Формирование запросов по сотрудникам и начислениям — одна из базовых и одновременно самых востребованных задач при работе с 1С:Зарплата и управление персоналом 3.1 (ЗУП 3.1). Будь то создание кастомного отчета в СКД‚ выгрузка данных для аналитики‚ интеграция с внешними системами или проверка корректности расчетов — понимание структуры регистров накопления и информационных регистров является ключевым навыком разработчика и аналитика.
В данной статье мы подробно разберем‚ какие регистры использовать‚ как правильно связывать таблицы‚ как получить «чистый» оклад без учета графика работы‚ а также рассмотрим нюансы работы с плановыми и фактическими начислениями‚ НДФЛ‚ взносами и запросами в СФР.
Основные регистры накопления: «Кто‚ что‚ когда и сколько»
В ЗУП 3.1 за хранением числовых данных отвечают регистры накопления. Для задач по начислениям критически важны три регистра:
- РасчетныеЛистыОрганизаций (РасчетныйЛистОрганизаций) — регистр записей (непериодический). Содержит итоговые данные по расчетному листу: начисления‚ удержания‚ НДФЛ‚ взносы‚ выплаты. Это основной источник для отчетов «Полный свод начислений‚ удержаний и выплат».
- Начисления (Начисления) — периодический регистр. Хранит детализацию по каждому виду начисления (оклад‚ премия‚ доплата за выслугу лет и т.д.) в разрезе сотрудников и периодов действия. Именно здесь лежат строки с базовыми ставками (окладом).
- ПлановыеНачисления (ПлановыеНачисления) — периодический регистр. Содержит плановые (штатные) начисления‚ заведенные через документы «Штатное расписание» или «Плановые начисления». Полезен для отчетов по ФОТ и штатному плану.
Важное различие: Начисления vs ПлановыеНачисления
Частая ошибка — смешивание этих регистров.
- Если вам нужны фактические начисления‚ выплаченные или начисленные за отработанное время (с учетом отработанных дней‚ коэффициентов‚ региональных коэффициентов) — используйте Начисления (через РасчетныеЛистыОрганизаций).
- Если вам нужен штатный оклад (размер ставки из трудового договора/штатного расписания) без учета графика работы и отработанного времени — смотрите в сторону ПлановыеНачисления или информационного регистра ЗначениеПериодическихПоказателейРасчетаЗарплаты.
Информационные регистры: показатели и параметры
Для получения текущих параметров расчета (оклады‚ тарифные ставки‚ коэффициенты‚ проценты премии) используются информационные регистры:
- ЗначениеПериодическихПоказателейРасчетаЗарплаты, хранит значения показателей (оклад‚ ставка‚ процент премии) на конкретную дату. Это лучший источник для получения «размера оклада из документа приема на работу без учета графика работы».
- ПоказателиРасчетаЗарплатыОрганизаций — справочник самих показателей (их типы‚ измерения);
- ОсновныеНачисленияОрганизаций — связывает виды начислений с показателями расчета.
Примеры запросов (на языке 1С)
Получение текущего оклада сотрудника (без учета графика/ФОТ)
Задача: получить размер оклада‚ зафиксированный в кадровом документе (Прием на работу‚ Перевод)‚ игнорируя фактическое отработанное время.
ВЫБРАТЬ
ЗначениеПериодическихПоказателейРасчетаЗарплаты.Сотрудник КАК Сотрудник‚
ЗначениеПериодическихПоказателейРасчетаЗарплаты.Показатель КАК Показатель‚
ЗначениеПериодическихПоказателейРасчетаЗарплаты.Значение КАК Оклад‚
ЗначениеПериодическихПоказателейРасчетаЗарплаты.Период КАК ДатаАктуальности
ИЗ
РегистрСведений.ЗначениеПериодическихПоказателейРасчетаЗарплаты КАК ЗначениеПериодическихПоказателейРасчетаЗарплаты
ГДЕ
ЗначениеПериодическихПоказателейРасчетаЗарплаты.Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейРасчетаЗарплаты.ОсновноеНачисление)
И ЗначениеПериодическихПоказателейРасчетаЗарплаты.Сотрудник = &Сотрудник
И ЗначениеПериодическихПоказателейРасчетаЗарплаты.Период = (
ВЫБРАТЬ МАКСИМУМ(Период)
ИЗ РегистрСведений.ЗначениеПериодическихПоказателейРасчетаЗарплаты
ГДЕ Сотрудник = &Сотрудник
И Показатель.ВидПоказателя = ЗНАЧЕНИЕ(Перечисление.ВидыПоказателейРасчетаЗарплаты.ОсновноеНачисление)
И Период <= &ДатаЗапроса
)
Пояснение: Мы берем последнее актуальное значение показателя типа «Основное начисление» (Оклад/Ставка) на дату запроса. Это дает «чистую» ставку из договора.
Фактические начисления за период (через Расчетный лист)
Классический запрос для отчета «Анализ зарплаты по сотрудникам» или выгрузки в Excel.
ВЫБРАТЬ
РасчетныйЛистОрганизаций.Сотрудник КАК Сотрудник‚
РасчетныйЛистОрганизаций.ВидРасчета КАК ВидНачисления‚
РасчетныйЛистОрганизаций.Результат КАК СуммаНачисления‚
РасчетныйЛистОрганизаций.База КАК БазаНачисления‚
РасчетныйЛистОрганизаций;Показатель1 КАК ОтработаноДней‚
РасчетныйЛистОрганизаций.Показатель2 КАК ОтработаноЧасов‚
РасчетныйЛистОрганизаций.ПериодРегистрации КАК Период
ИЗ
РегистрРасчета.РасчетныеЛистыОрганизаций КАК РасчетныйЛистОрганизаций
ГДЕ
РасчетныйЛистОрганизаций.ПериодРегистрации МЕЖДУ &НачалоПериода И &КонецПериода
И РасчетныйЛистОрганизаций.Сотрудник В &СписокСотрудников
И РасчетныйЛистОрганизаций.ВидРасчета.ВидРасчета = ЗНАЧЕНИЕ(Перечисление.ВидыРасчетов.Начисление)
УПОРЯДОЧИТЬ ПО
Сотрудник‚ ВидНачисления
Связка Начислений с Показателями (для аналитики премий/баллов)
Если нужно вытащить показатель премии (баллы‚ процент)‚ который использовался при расчете конкретной строки начисления:
ВЫБРАТЬ
Начисления.Сотрудник‚
Начисления.ВидНачисления‚
Начисления.ПериодДействияНачало‚
Начисления.Результат КАК Сумма‚
Показатели.Значение КАК ЗначениеПоказателяПремии
ИЗ
РегистрРасчета.Начисления КАК Начисления
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначениеПериодическихПоказателейРасчетаЗарплаты КАК Показатели
ПО Начисления;Сотрудник = Показатели.Сотрудник
И Начисления.ВидНачисления.ПоказательПремии = Показатели.Показатель
И Начисления.ПериодДействияНачало МЕЖДУ Показатели.Период И Показатели.ПериодКонец
ГДЕ
Начисления.ВидНачисления.ВидНачисления = ЗНАЧЕНИЕ(Перечисление.ВидыНачислений.ПремияРезультативная)
Типовые отчеты и их настройка (без программирования)
В интерфейсе «Зарплата и кадры» доступны мощные стандартные отчеты‚ которые закрывают 90% потребностей:
- Полный свод начислений‚ удержаний и выплат (Раздел «Зарплата и кадры» → «Отчеты и анализ» → «Анализ зарплаты»). Позволяет настроить отборы по отделам‚ сотрудникам‚ видам начислений‚ группировки и поля. Содержит вкладки: Начисления‚ Удержания‚ НДФЛ‚ Взносы‚ Выплаты.
- Анализ зарплаты по сотрудникам — детальная разбивка по месяцам с раскрытием до строк расчетного листа.
- Штатные сотрудники / Отчет по плановым начислениям — для работы с ФОТ и штатным расписанием (использует РС ПлановыеНачисления).
- Реестр начислений — быстрый просмотр документов начисления (Отпуска‚ Премии‚ Больничные) за период.
Частые ошибки настройки СКД/Отчетов:
- Игнорирование Периода регистрации vs Период действия. Для отчетов за месяц (ЗП за март) фильтруйте по ПериодРегистрации (месяц начисления). ПериодДействияНачало/Конец показывает‚ за какой трудовой период начисление (например‚ отпуск за май‚ начисленный в июне).
- Дублирование строк при соединении с ПлановымиНачислениями. Фактические и плановые данные лучше выводить в отдельных колонках/таблицах или использовать ВНЕШНЕЕ СОЕДИНЕНИЕ с условием совпадения ВидаНачисления и Сотрудника.
Работа с НДФЛ‚ удержаниями и взносами
В регистре РасчетныеЛистыОрганизаций все виды расчетов разнесены по измерению ВидРасчета (перечисление ВидыРасчетов):
- Начисление — доходы.
- Удержание — алименты‚ зачеты аванса‚ удержания по исполнительным листам;
- НДФЛ — расчетный налог (база и сумма налога в Результат).
- ВзносПФР / ВзносФОМС / ВзносФСС — страховые взносы (работодатель).
- Выплата — выдача наличных / перевод на карту.
Для сверки с бухгалтерией (счетами 70‚ 68‚ 69) используйте отчет «Развернутое сальдо по счетам с корреспонденцией» в Бухгалтерии 3.0‚ а в ЗУП — «Полный свод…» с группировкой по ВидРасчета и Субконто (Сотрудник).
Запросы в СФР (бывший ПФР/ФСС): сведения о заработке
С 2023 года для расчета пособий по временной нетрудоспособности (первые 3 дня за счет работодателя) и декретных часто требуются сведения о заработке за 2 предшествующих календарных года‚ если сотрудник трудоустроился в текущем году.
Алгоритм в 1С:ЗУП 3.1:
- Раздел СФР → Создать → Отчет.
- Выбрать: Запрос сведений о зарплате сотрудника (или «Заявление и запрос в ПФР о заработке» в старых версиях).
- Заполнить карточку сотрудника (проверьте СНИЛС‚ периоды работы‚ оклады в карточке сотрудника и документах приема).
- Отправить через СЭДО (электронный документооборот) с использованием квалифицированной ЭП сотрудника или уполномоченного лица.
Важно: Данные для запроса формируются автоматически на основании документов «Прием на работу»‚ «Начисление заработной платы» (в т;ч. вручную введенных корректировок) и регистров накопления. Перед отправкой сверьтесь с отчетом «Сведения о заработке для СФР» (в подменю отчетов СФР).
Оптимизация и лучшие практики
- Используйте виртуальные таблицы. Вместо физических таблиц регистров в запросах СКД всегда используйте виртуальные таблицы срезов последних (
ЗначениеПериодическихПоказателейРасчетаЗарплаты.СрезПоследних(&Дата‚ ...)). Это в разы ускоряет выполнение. - Индексы и отборы. Всегда ставьте отборы по ПериодуРегистрации и Сотруднику/Организации в начале запроса (в секции ГДЕ).
- Пакетная обработка. Для массовых выгрузок (тысячи сотрудников) используйте временные таблицы (ВРЕМЕННАЯ ТАБЛИЦА) для списка сотрудников‚ чтобы избежать огромных конструкций В (&Список).
- Проверка через Профилировщик (MSSQL Profiler / pg_stat_statements). Если запрос в СКД «вешается» — посмотрите реальный SQL-запрос‚ который генерирует платформа. Часто проблема в лишних ЛЕВЫХ СОЕДИНЕНИЯХ или отсутствии индексов по измерениям.
Чек-лист для разработчика: «Мне нужен запрос по…»
| Задача | Основной источник (Регистр/Таблица) | Ключевое измерение/Ресурс |
|---|---|---|
| Текущий оклад/ставка (план) | ЗначениеПериодическихПоказателейРасчетаЗарплаты (СрезПоследних) | Показатель (ВидПоказателя = ОсновноеНачисление)‚ Значение |
| Фактические начисления за месяц | РасчетныеЛистыОрганизаций | ВидРасчета = Начисление‚ Результат‚ ПериодРегистрации |
| Удержания (алименты‚ исполлисты) | РасчетныеЛистыОрганизаций | ВидРасчета = Удержание |
| НДФЛ (база‚ сумма‚ коды доходов) | РасчетныеЛистыОрганизаций | ВидРасчета = НДФЛ‚ База‚ Результат |
| Страховые взносы (работодатель) | РасчетныеЛистыОрганизаций | ВидРасчета = ВзносПФР/ФОМС/ФСС |
| Выплаты (касса/банк) | РасчетныеЛистыОрганизаций | ВидРасчета = Выплата |
| Штатное расписание / ФОТ | ПлановыеНачисления | Период‚ Сотрудник‚ ВидНачисления‚ Результат |
| Документы-основания (Прием‚ Перевод) | Справочник Сотрудники / Документы Кадры | Связь через Сотрудник‚ Дата документа |
Грамотное построение запроса по сотрудникам и начислениям в 1С:ЗУП 3.1 требует четкого понимания разницы между плановыми (штатными) и фактическими (расчетными листами) данными‚ а также знания структуры показателей расчета зарплаты.
Используйте Регистр сведений «ЗначениеПериодическихПоказателейРасчетаЗарплаты» для получения параметров договора (оклад‚ ставка‚ проценты) в чистом виде‚ и Регистр расчета «РасчетныеЛистыОрганизаций» для всех итоговых отчетов по начисленным‚ удержанным‚ налогам и выплатам. Стандартные отчеты системы (Полный свод‚ Анализ зарплаты) в большинстве случаев решают бизнес-задачи без написания кода‚ если правильно настроить отборы и группировки в СКД.
При интеграции с СФР следите за актуальностью кадровых данных и корректностью заполнения периодов работы за предшествующие годы — это залог успешного получения сведений о заработке для расчета пособий.