Как проиндексировать начисления по документу Подработка в 1С:ЗУП 3.1

Программист 1С v8.3 (Управляемые формы)
← На главную

Проблема индексации начислений, назначенных документом Подработка, является одной из наиболее специфических задач в программе «1С:Зарплата и управление персоналом 8». Пользователи часто сталкиваются с ситуацией, когда при проведении массовой индексации через документ Изменение плановых начислений сотрудники, имеющие активные подработки, просто не отображаются в списке выбора. Проанализируем причины этой ситуации и разберем по шагам доступные способы решения.

Причина проблемы: архитектура справочника Сотрудники

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

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

Решение 1: Настройка списка подбора

Разберем, как можно попытаться «увидеть» сотрудников-подработчиков в типовом интерфейсе без привлечения программиста. Рассмотрим подробнее алгоритм действий в окне подбора сотрудников:

  1. Откроем документ Изменение плановых начислений и нажмем кнопку Подбор.
  2. В открывшемся окне подбора нажмем кнопку Еще (в правой верхней части формы) и выберем пункт Настроить список.
  3. В окне настроек перейдем на закладку Отбор.
  4. Нам необходимо найти поле, которое отвечает за вид занятости или состояние. Часто система автоматически фильтрует список по признаку «Является подработкой». Нам нужно либо отключить этот фильтр, либо добавить условие, разрешающее выбор таких элементов.
  5. Если прямой фильтр по подработкам недоступен, попробуем воспользоваться командой Выбрать из полного списка, если она выведена в интерфейс конкретного релиза.

Важный нюанс: Даже если вам удастся подобрать сотрудника-подработку в документ, убедитесь, что его начисления (например, доплата за подработку) доступны для редактирования в этом документе. В некоторых релизах 1С:ЗУП 3.1 документ Изменение плановых начислений жестко ограничен только основными должностями.

Решение 2: Использование специализированного документа

Проанализируем ситуацию с точки зрения методологии 1С. Для корректировки условий уже назначенной подработки существует специализированный документ — Изменение условий подработки.

Рассмотрим, как работать с этим инструментом:

Решение 3: Методологический обход через завершение и новое назначение

Если массовая индексация не «подхватывает» подработки, можно применить следующий алгоритм:

  1. Проиндексировать позиции штатного расписания (если ведется история).
  2. Завершить текущие подработки (массово это можно сделать через документ Прекращение подработки, который легче поддается автоматизации или групповому заполнению).
  3. Назначить подработки заново с новой датой и актуальными суммами.

Этот способ трудоемок, но он гарантирует чистоту данных в регистрах сведений Плановые начисления и ФОТ начислений.

Решение 4: Техническая автоматизация (для программиста)

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

Посмотрим на пример логики выборки сотрудников-подработчиков:


// Пример логики для выборки сотрудников с активными подработками
Запрос = Новый Запрос;
Запрос.Текст = 
    "ВЫБРАТЬ
    |   Сотрудники.Ссылка КАК Сотрудник,
    |   Сотрудники.ГоловнаяОрганизация КАК Организация
    |ИЗ
    |   Справочник.Сотрудники КАК Сотрудники
    |ГДЕ
    |   Сотрудники.ВАрхиве = ЛОЖЬ
    |   И Сотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";

РезультатЗапроса = Запрос.Выполнить();
// Далее следует цикл обхода и программное заполнение ТЧ документа

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

  1. Получать коэффициент индексации из шапки документа.
  2. Находить всех сотрудников с видом занятия Подработка.
  3. Рассчитывать новые значения начислений (Старое значение * Коэффициент).
  4. Добавлять строки в документ, имитируя действие пользователя.

Рекомендации по обновлению и безопасности

Выясним, насколько критична версия программы. В релизе 3.1.9, который упоминается в обсуждении, многие механизмы работы с подработками еще не были доведены до совершенства. В современных версиях (ветки 3.1.23 и выше) работа со списками стала гибче, однако архитектурная особенность с «техническим сотрудником» сохраняется.

Важные советы:

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

← На главную