Другое · 11 мин
1С ЗУП: как получить оклад сотрудника
Как узнать оклад сотрудника в 1С ЗУП: через карточку сотрудника, кадровые отчёты, программно через запрос и СКД. Пошаговые инструкции и типичные ошибки.
Вопрос «как получить оклад сотрудника» в 1С:ЗУП возникает в двух разных контекстах: бухгалтеру или кадровику нужно посмотреть значение в интерфейсе, а разработчику — программно извлечь его из регистров для отчёта или обмена. Оба сценария решаются штатными средствами, но у каждого есть нюансы: оклад может быть задан в разных документах, изменён несколько раз, а в базе хранится не сам оклад, а начисление с размером.
Важно понимать, что в ЗУП нет единственного поля «Оклад». Размер оплаты хранится в регистре сведений «Плановые начисления» (в ЗУП 3.1), а устанавливается документами «Приём на работу», «Кадровый перевод», «Изменение оплаты труда» и другими. Поэтому корректный ответ на вопрос — это получение актуального значения планового начисления вида «Оплата по окладу» на нужную дату.
Где в ЗУП хранится оклад и почему это важно
В 1С:ЗУП 3.1 размер оплаты привязан к начислению, а не к сотруднику напрямую. При проведении документа «Приём на работу» программа записывает строку в регистр сведений «Плановые начисления»: сотрудник, начисление (например, «Оплата по окладу»), размер, дата начала действия. Каждое последующее изменение оклада добавляет новую запись с новой датой.
Из этого следуют два практических вывода. Во-первых, «оклад на сегодня» — это срез последних записей регистра на текущую дату. Во-вторых, если сотруднику установлено несколько плановых начислений (оклад, надбавка, премия), то «оклад» — это только та строка, где вид расчёта относится к оплате по окладу или тарифной ставке, а не сумма всех начислений.
В ЗУП 2.5 структура другая: там используется регистр «Плановые начисления работников организаций», и логика запросов отличается. Дальше основной упор сделан на ЗУП 3.1 как на актуальную редакцию, но отдельный раздел посвящён отличиям.
Как посмотреть оклад в интерфейсе без программирования
Самый быстрый способ — карточка сотрудника. Откройте раздел «Кадры» → «Сотрудники», найдите нужного человека и перейдите на вкладку «Оплата труда». Там отображается список действующих начислений с размерами и датами назначения. Строка с видом расчёта «Оплата по окладу» (или «Оплата по тарифной ставке») и есть искомый оклад.
Если нужна история изменений, в той же карточке откройте ссылку «История изменений оплаты труда» — программа покажет все документы, которыми оклад устанавливался и менялся, с датами и суммами. Это удобно, когда нужно проверить, когда было последнее повышение.
Для массового просмотра используйте отчёты. В разделе «Зарплата» → «Отчёты по зарплате» доступны «Начисления сотрудников» и «Штатная расстановка (штатное расписание)». Первый показывает фактически назначенные начисления по каждому сотруднику, второй — плановые оклады по позициям штатного расписания, если оно ведётся.
- 1Откройте «Кадры» → «Сотрудники» и найдите сотрудника
- 2Перейдите на вкладку «Оплата труда»
- 3Найдите строку «Оплата по окладу» — колонка «Размер» содержит оклад
- 4Для истории изменений откройте «История изменений оплаты труда»
- 5Сверьте дату назначения с ожидаемой — убедитесь, что смотрите актуальную запись
Получение оклада через отчёты и расшифровку
Отчёт «Начисления сотрудников» (в некоторых релизах — «Плановые начисления сотрудников») — основной инструмент, когда нужно получить оклады списка людей. В настройках отчёта можно добавить отбор по подразделению, должности или конкретному сотруднику и вывести колонки «Начисление», «Размер», «Дата назначения».
Если в компании ведётся штатное расписание, полезен отчёт «Штатная расстановка»: он показывает оклад и надбавки по позиции. Но помните про различие: штатное расписание хранит плановые значения по позиции, а фактический оклад конкретного сотрудника может отличаться, если при приёме размер изменили вручную. Для точного ответа по человеку ориентируйтесь на его карточку или отчёт по начислениям сотрудников.
Ещё один путь — документ «Начисление зарплаты и взносов» за месяц: в табличной части по сотруднику видно рассчитанную сумму по окладу с учётом отработанного времени. Это не сам оклад, а результат его применения, поэтому для получения ставки этот способ подходит только косвенно.
Программное получение оклада запросом
Для разработчика основной способ — запрос к регистру сведений «ПлановыеНачисления» со срезом последних. Типовой пример для получения оклада конкретного сотрудника на дату:
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ
| ПлановыеНачисления.Сотрудник,
| ПлановыеНачисления.Начисление,
| ПлановыеНачисления.Размер
|ИЗ
| РегистрСведений.ПлановыеНачисления.СрезПоследних(
| &Период,
| Сотрудник = &Сотрудник
| И Начисление.ВидВремени = ЗНАЧЕНИЕ(Перечисление.ВидыРабочегоВремени.ОтработанноеВремя)) КАК ПлановыеНачисления";
Запрос.УстановитьПараметр("Период", ТекущаяДатаСеанса());
Запрос.УстановитьПараметр("Сотрудник", СотрудникСсылка);
Результат = Запрос.Выполнить().Выбрать();
Обратите внимание на параметр виртуальной таблицы: отбор в срезе последних эффективнее и корректнее, чем отбор в секции ГДЕ, особенно при выборке по списку сотрудников. Если нужен именно оклад, а не все плановые начисления, добавьте отбор по конкретному виду расчёта или по признаку категории начисления (например, категория «Повременная оплата труда»).
Альтернатива — функциональные опции зарплатного модуля. В типовой ЗУП есть программный интерфейс общего модуля РасчетЗарплаты и кадровых модулей, позволяющий получать плановые начисления через готовые функции, что надёжнее при обновлениях. Перед написанием собственного запроса проверьте, нет ли в вашем релизе подходящей экспортной функции — прямые запросы к регистрам чувствительны к изменениям структуры метаданных.
// Вариант через кадровые данные сотрудника
КадровыеДанные = КадровыйУчет.КадровыеДанныеСотрудников(Истина, Сотрудники, "ТекущаяОплатаТруда", ТекущаяДатаСеанса());
Для Каждого Строка Из КадровыеДанные Цикл
Оклад = Строка.ТекущаяОплатаТруда;
КонецЦикла;Получение оклада на произвольную дату в прошлом
Если нужен оклад, действовавший, например, полгода назад, в срез последних передавайте эту дату как параметр периода. Регистр вернёт запись, действовавшую на тот момент. Это корректный способ для отчётов задним числом — не пытайтесь искать документы изменения оклада вручную, регистр уже содержит готовую историю.
Оклад совместителей и несколько записей
У сотрудника с внутренним совместительством в ЗУП заводится отдельный элемент справочника «Сотрудники» с собственными плановыми начислениями. Поэтому запрос по физическому лицу вернёт несколько строк — по каждому месту работы. Если нужен суммарный доход, группируйте по физлицу; если оклад по конкретной должности — фильтруйте по сотруднику, а не по физлицу.
Отличия в ЗУП 2.5
В редакции 2.5 плановые начисления хранятся в регистре сведений «ПлановыеНачисленияРаботниковОрганизаций», привязанном к работнику организации и виду расчёта. Запрос строится аналогично — срез последних с отбором по сотруднику, но имена таблиц и полей другие, код из примеров для 3.1 напрямую не заработает.
В интерфейсе 2.5 оклад виден в форме сотрудника на закладке «Начисления» и в отчётах кадрового блока. Логика та же: ищите действующее плановое начисление с видом расчёта «Оклад по дням» или аналогичным.
Способы получения оклада
Быстро для одного человека; не подходит для списков и выгрузок
Подходит для списков и проверок; результат зависит от настроек варианта отчёта
Гибко и точно для разработки; требует учёта совместителей и даты среза
Устойчиво к обновлениям типовой конфигурации; ограничено составом доступных полей
Типичные ошибки и проверка результата
Частая ошибка — получение старого оклада из-за неверной даты среза. Если документ изменения оплаты проведён будущей датой, срез на сегодня вернёт прежнее значение. Всегда осознанно выбирайте дату, на которую запрашиваете данные, и при расхождениях проверяйте историю изменений оплаты труда.
Вторая ошибка — суммирование всех плановых начислений и выдача результата за оклад. Надбавки, районные коэффициенты и премии не являются окладом. Отбирайте конкретный вид расчёта или категорию начисления.
Третья ошибка — работа с непроведёнными или помеченными на удаление кадровыми документами. Регистр учитывает только проведённые документы, поэтому при расхождении данных проверьте, проведён ли последний документ изменения оплаты и не отменён ли он.
Как проверить результат
Значения равны на одну и ту же дату
Запрос возвращает старое значение — проверьте дату среза и проведённость документов
Одна строка с окладом на одно место работы
Несколько строк — лишние начисления попали в выборку или есть совместительство
Соответствует последнему документу изменения оплаты
Дата устарела — последний документ не проведён или отменён
FAQ
Как узнать оклад сотрудника на прошлую дату?
Используйте срез последних регистра «Плановые начисления» с параметром периода, равным нужной дате. В интерфейсе ту же информацию даёт «История изменений оплаты труда» в карточке сотрудника — там видны все документы с датами и суммами.
Почему запрос возвращает не тот оклад, что виден в карточке?
Чаще всего дело в дате среза: карточка показывает значение на текущую дату, а запрос — на переданную. Также проверьте, что последний документ изменения оплаты проведён, и что в запросе отбор идёт по сотруднику, а не по физическому лицу.
Как получить оклады всех сотрудников подразделения одним запросом?
В параметрах среза последних укажите отбор по списку сотрудников подразделения (его можно получить из регистра кадровой истории) или выполните соединение с регистром «Кадровая история сотрудников» по подразделению на ту же дату. Проще всего это сделать через СКД в отчёте.
Чем оклад отличается от совокупной тарифной ставки?
Оклад — размер одного начисления «Оплата по окладу». Совокупная тарифная ставка включает оклад и постоянные надбавки, входящие в расчёт среднего заработка и оплаты отклонений. В ЗУП это разные показатели, и для расчётных задач часто нужна именно ставка, а не чистый оклад.
Можно ли получить оклад из штатного расписания вместо карточки сотрудника?
Да, если ведётся штатное расписание — данные хранятся по позициям. Но фактический оклад сотрудника может отличаться от позиции, если при приёме или переводе размер меняли вручную. Для точного ответа по конкретному человеку надёжнее плановые начисления сотрудника.
Что делать, если плановое начисление есть, а размер пустой?
Такое бывает, когда начисление зависит от показателя, значение которого вводится отдельно (например, через документ «Данные для расчёта зарплаты»). Проверьте формулу вида расчёта и значения показателей в регистре «Значения показателей начислений».
Что важно запомнить
Оклад в ЗУП — это плановое начисление, хранящееся в регистре с историей изменений. В интерфейсе его видно в карточке сотрудника и отчётах, программно — через срез последних регистра «Плановые начисления» на нужную дату. Всегда отбирайте именно оклад, учитывайте совместителей и проверяйте проведённость кадровых документов.