8.х Начисления

Тема в разделе "Конфигурирование на платформе "1С:Предприятие 8"", создана пользователем Nikitaje, 26 дек 2016.

  1. TopicStarter Overlay
    Nikitaje
    Offline

    Nikitaje Опытный в 1С

    Регистрация:
    14 ноя 2016
    Сообщения:
    59
    Симпатии:
    0
    Баллы:
    26
    1С:Предприятие 8.2 (8.2.19.130)
    Зарплата и Управление Персоналом, редакция 2.5 (2.5.108.1)

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

    Функция АрендаАТ(Сотрудник1)
    //Сообщить("ГРАФА 13");
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ
    | ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник,
    | ДополнительныеНачисленияРаботниковОрганизаций.Результат,
    | ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
    | ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета
    |ИЗ
    | РегистрРасчета.ДополнительныеНачисленияРаботниковОрганизаций КАК ДополнительныеНачисленияРаботниковОрганизаций
    |ГДЕ
    | ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник = &Сотрудник
    | И ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации МЕЖДУ &ДатаНач И &ДатаКон
    | И ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета.Код В(&КодРасчета)
    |
    |СГРУППИРОВАТЬ ПО
    | ДополнительныеНачисленияРаботниковОрганизаций.Сотрудник,
    | ДополнительныеНачисленияРаботниковОрганизаций.ПериодРегистрации,
    | ДополнительныеНачисленияРаботниковОрганизаций.Результат,
    | ДополнительныеНачисленияРаботниковОрганизаций.ВидРасчета
    |"
    ;
    МассивКодов = Новый Массив;
    МассивКодов.Добавить("00080"); //Подставить свой код вида расчета
    МассивКодов.Добавить("00081");
    МассивКодов.Добавить("00082");
    МассивКодов.Добавить("00083");
    МассивКодов.Добавить("00031");//добавил


    Запрос.УстановитьПараметр("Сотрудник",Сотрудник1);
    Запрос.УстановитьПараметр("КодРасчета",МассивКодов);
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(НачалоПериода));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(КонецПериода));
    ДопНачисления = Запрос.Выполнить().Выгрузить();
    Значение = 0;
    Если ДопНачисления.Количество()> 0 Тогда
    Для каждого Стр Из ДопНачисления Цикл
    Значение = Значение + Стр.Результат; //Суммируем все начисления по аренде за период
    КонецЦикла;
    КонецЕсли;

    Сотрудник2 = Неопределено;
    Сотрудник2код = Неопределено;
    ФизЛицо = Неопределено;
    Если Сотрудник1.Код = "60305810000000000792" Тогда
    Сотрудник2код = "60305810000000000610";
    ФизЛицо = "000000682";
    ИначеЕсли Сотрудник1.Код = "60305810000000001016" Тогда
    Сотрудник2код = "60305810000000000843";
    ФизЛицо = "000000966";
    ИначеЕсли Сотрудник1.Код = "60305810000000000723" Тогда
    Сотрудник2код = "60305810000000000863";
    ФизЛицо = "000000980";
    ИначеЕсли Сотрудник1.Код = "60305810000000000709" Тогда
    Сотрудник2код = "60305810000000000678";
    ФизЛицо = "000000574";
    КонецЕсли;
    Если НЕ(Сотрудник2код = Неопределено) Тогда
    Запрос.Текст =
    "ВЫБРАТЬ
    | СотрудникиОрганизаций.Ссылка,
    | СотрудникиОрганизаций.Физлицо,
    | СотрудникиОрганизаций.Код
    |ИЗ
    | Справочник.СотрудникиОрганизаций КАК СотрудникиОрганизаций
    |ГДЕ
    | СотрудникиОрганизаций.Код = &СотрудникКод
    | И СотрудникиОрганизаций.Физлицо.Код = &ФизЛицо
    |"
    ;
    Запрос.УстановитьПараметр("СотрудникКод",Сотрудник2код);
    Запрос.УстановитьПараметр("ФизЛицо",ФизЛицо);
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
    Если ВыборкаДетальныеЗаписи.Следующий() Тогда
    Сотрудник2 = ВыборкаДетальныеЗаписи.Ссылка;
    КонецЕсли;
    МассивКодов.Добавить("00083");
    Запрос.Текст =
    "ВЫБРАТЬ
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Результат,
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Сотрудник
    |ИЗ
    | Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.ДополнительныеНачисления КАК РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления
    |ГДЕ
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Ссылка.Проведен = ИСТИНА
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Сотрудник В(&Сотрудник)
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.ВидРасчета.Код В(&КодРасчета)
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.ДатаОкончания МЕЖДУ &ДатаНач И &ДатаКон";


    Запрос.УстановитьПараметр("Сотрудник",Сотрудник2);
    Запрос.УстановитьПараметр("КодРасчета",МассивКодов);
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(НачалоПериода));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(КонецПериода));
    ВыборкаДетальныеЗаписи = Запрос.Выполнить().Выбрать();
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
    Значение = Значение + ВыборкаДетальныеЗаписи.Результат; //Суммируем все начисления по аренде за период
    // КонецЕсли;
    //КонецЦикла;
    КонецЦикла;
    КонецЕсли;
    //КонецЕсли;
    Возврат Значение;

    Но есть сотрудники которые Работают по договору подряа и получают компенсацию "Арнеда машин с экипажем". Они получают еще +1000. Но по документу ДоговорНаВыполнениеРаботСФизЛицом. Подскажите как передать эту сумму сотрудникам которые у меня в обработке. А их два это
    Если Сотрудник1.Код = "60305810000000000792" Тогда
    Сотрудник2код = "60305810000000000610";
    ФизЛицо = "000000682";
    ИначеЕсли Сотрудник1.Код = "60305810000000001016" Тогда
    Сотрудник2код = "60305810000000000843";
    ФизЛицо = "000000966";
    --- Объединение сообщений, 26 дек 2016 ---
    Запрос.Текст =
    "ВЫБРАТЬ
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Результат,
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Сотрудник,
    | ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник КАК Сотрудник1,
    | ДоговорНаВыполнениеРаботСФизЛицом.СуммаЗаРаботу
    |ИЗ
    | Документ.РегистрацияРазовыхНачисленийРаботниковОрганизаций.ДополнительныеНачисления КАК РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления
    | ЛЕВОЕ СОЕДИНЕНИЕ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК ДоговорНаВыполнениеРаботСФизЛицом
    | ПО РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.ДокументОснование = ДоговорНаВыполнениеРаботСФизЛицом.Ссылка
    |ГДЕ
    | РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Ссылка.Проведен = ИСТИНА
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.Сотрудник В(&Сотрудник)
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.ВидРасчета.Код В(&КодРасчета)
    | И РегистрацияРазовыхНачисленийРаботниковОрганизацийДополнительныеНачисления.ДатаОкончания МЕЖДУ &ДатаНач И &ДатаКон
    | И ДоговорНаВыполнениеРаботСФизЛицом.Ссылка.Проведен = ИСТИНА
    | И ДоговорНаВыполнениеРаботСФизЛицом.Сотрудник В(&Сотрудник)
    | И ДоговорНаВыполнениеРаботСФизЛицом.ВидРасчета.Код В(&КодРасчета)
    | И ДоговорНаВыполнениеРаботСФизЛицом.ДатаОкончания МЕЖДУ &ДатаНач И &ДатаКон";

    Пробовал так, тоже не работает. Причем тогда по 2 из 4 вообще идут суммы по нулям

Поделиться этой страницей