Имя: Пароль:
1C
1С v8
ЗУП, настройка отчета "Анализ зарплаты по сотрудникам"
0 Dimon1C
 
30.05.24
10:14
Добрый день
Есть типовая ЗУП, стандартный отчет Анализ зарплаты по сотрудникам (СКД)
Стоит нетривиальная задача, выбрать только тех сотрудников, кто получает одновременно заданные начисления (например оклад и стимулирующие выплаты)
Можно ли такое настроить средствами 1С предприятия?
Вот пример, кого надо исключить
https://ibb.co/JQ0J0sZ
1 SleepyHead
 
30.05.24
10:18
(0) С одним видом расчета достаточно просто получается настроить. А вот как настроить два одновременно,не понял

Может, тебе просто исключить тех, у кого нет стимулирующих?
2 Dimon1C
 
30.05.24
10:23
(1) Это просто пример, фактически надбавок много и они могут собираться в произвольной комбинации
3 SleepyHead
 
30.05.24
10:23
Ха, получилось, хотя, наверное, при каких-то условиях и не сработает

Заходим в настройки технического специалиста, добавляем пользовательское поле-выражение

Для детальных записей:

Выбор
    Когда [Вид расчета.Код] = "код стимулирующей"
        Тогда 1
    Когда [Вид расчета.Код] = "код оклада"
        Тогда 1000
    Иначе 0
Конец

Для итоговых записей выражение то же, обернутое в СУММА()

На уровне группировки по сотруднику добавляем фильтр по этому полю : оно должно быть больше 1000

Таким образом, если есть оклад, значение поля будет 1000, а если есть еще и стимулирующая, то 1001

Не сработает это все, если для сотрудника будет две записи по окладу, к примеру, смена оклада в середине месяца.

Поэтому проще просуммировать по стимулирущей выплате и исключить тех у кого сумма = 0.
4 SleepyHead
 
30.05.24
10:24
(2) Ну тогда так

Сумма(Выбор
    Когда [Вид расчета.Код] = "код стимулирующей 1"
       ИЛИ [Вид расчета.Код] = "код стимулирующей 2"
       ИЛИ [Вид расчета.Код] = "код стимулирующей 3"
        Тогда 1
    Иначе 0
Конец)

И фильтр по этому полю на уровне сотрудника
5 SleepyHead
 
30.05.24
10:31
Если средствами чисто СКД не получается, сделай свой отчет-обертку. Программно выбери сотрудников по нужным условиям и программно же сформируй отчет Анализ зарплаты по сотрудникам, код там достаточно простой

Я делал вызов расчетного листка со своими условиями так (можно переделать на нужный вариант самостоятельно)

// подготовка отчета-объекта
ИмяОтчета = "АнализНачисленийИУдержаний";
КлючВариантаОтчета = "РасчетныйЛисток";

ОтчетРЛ = Отчеты[ИмяОтчета].Создать();
ОтчетРЛ.ИнициализироватьОтчет(КлючВариантаОтчета);
ОтчетРЛ.КомпоновщикНастроек.ЗагрузитьНастройки(ОтчетРЛ.СхемаКомпоновкиДанных.ВариантыНастроек[КлючВариантаОтчета].Настройки);
    ОтчетРЛ.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("КлючВарианта", КлючВариантаОтчета);
    ОтчетРЛ.КомпоновщикНастроек.ПользовательскиеНастройки.ДополнительныеСвойства.Вставить("УстанавливаетсяМакетКомпоновкиДанных", Ложь);

Настройки = ОтчетРЛ.КомпоновщикНастроек.Настройки;

Дата1=НачалоМесяца(мМесяцНачисления);
Дата2=КонецМесяца(мМесяцНачисления);

УстановитьЗначениеПараметраСКД(Настройки, "Период", Новый СтандартныйПериод(Дата1,Дата2));
УстановитьЗначениеПараметраСКД(Настройки, "НачалоПериода", Дата1);
УстановитьЗначениеПараметраСКД(Настройки, "КонецПериода", Дата2);
    
ОбщегоНазначенияКлиентСервер.ИзменитьЭлементыОтбора(Настройки.Отбор,"Организация",, мОрганизация,ВидСравненияКомпоновкиДанных.Равно,Истина);


ОбщегоНазначенияКлиентСервер.ИзменитьЭлементыОтбора(Настройки.Отбор, "ФизическоеЛицо",, СписокФизЛиц, ВидСравненияКомпоновкиДанных.ВСписке, Истина);

Таб = Новый ТабличныйДокумент;
        ОтчетРЛ.КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);
ОтчетРЛ.СкомпоноватьРезультат(Таб);