Запрос для выбора категорий сотрудников по физ лицу для ЗиУП 2.5

25.11.10

Разработка - Запросы

Запрос позволяет выбрать физ. лицо, организацию, категории сотрудников и коэффициент, на который нужно умножить значения сумм (например начисленного НДФЛ для физ.лица). Мы используем категории сотрудников для разделения зарплаты по проектам. В результат включаются только сотрудники, работавшие за заданный период как по трудовому договору, так и по договорам ГПХ.

Просто, чтобы не забыть, может кому-то пригодится:

 

ВЫБРАТЬ
    Работники.Сотрудник.Организация КАК Организация,
   
Работники.Сотрудник.ФизЛицо КАК ФизЛицо,
   
КатегорииОбъектовРаботники.Категория КАК Категория,
   
Работники.Коэффициент КАК Коэффициент
ИЗ
(
   
ВЫБРАТЬ
        РаботающиеСотрудники.Сотрудник КАК Сотрудник,
       
1/Количество(ЕстьNULL(КатегорииОбъектов.Категория,ЗНАЧЕНИЕ(Справочник.КатегорииОбъектов.ПустаяСсылка))) КАК Коэффициент
    ИЗ (
       
ВЫБРАТЬ Сотрудник
        ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода) КАК РаботающиеНаНачалоПериода
        ГДЕ РаботающиеНаНачалоПериода.ПричинаИзмененияСостояния <> &Увольнение

        ОБЪЕДИНИТЬ
        выбрать Сотрудник
        ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода) КАК РаботающиеНаКонецПериода
        ГДЕ РаботающиеНаКонецПериода.ПричинаИзмененияСостояния = &Увольнение И  РаботающиеНаКонецПериода.Период МЕЖДУ &НачалоПериода И &КонецПериода

        ОБЪЕДИНИТЬ
        ВЫБРАТЬ Сотрудник
        ИЗ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК РаботающиеПоДоговорамГПХ
        ГДЕ РаботающиеПоДоговорамГПХ.ДатаНачала <= &КонецПериода И РаботающиеПоДоговорамГПХ.ДатаОкончания >= &НачалоПериода
    ) КАК РаботающиеСотрудники
    ЛЕВОЕ СОЕДИНЕНИЕ
        РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
        ПО КатегорииОбъектов.Объект = РаботающиеСотрудники.Сотрудник
    СГРУППИРОВАТЬ ПО
       
РаботающиеСотрудники.Сотрудник
) КАК Работники
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектовРаботники
    ПО КатегорииОбъектовРаботники.Объект = Работники.Сотрудник
упорядочить по Работники.Коэффициент

 

Вариант для отчётов типа Анализ начисленных налогов и взносов, - чтобы попадали доначисленные суммы по уволенным людям, добавлен "взгляд назад" на 3 месяца, а чтобы они не множились, немного усложнён расчёт коэффициента:

 

   ВЫБРАТЬ
    Работники.Сотрудник.Организация КАК Организация,
   
Работники.Сотрудник.ФизЛицо КАК ФизЛицо,
   
КатегорииОбъектовРаботники.Категория КАК Категория,
   
Работники.Коэффициент
ИЗ
(
   
ВЫБРАТЬ
        Подгруппа.ФизЛицо КАК ФизЛицо,
       
Подгруппа.Организация КАК Организация,
       
Максимум(Подгруппа.Сотрудник) КАК Сотрудник,
       
Количество(Подгруппа.Сотрудник)/Сумма(Подгруппа.КоличествоКатегорий) КАК Коэффициент
    ИЗ (
       
ВЫБРАТЬ
            РаботающиеСотрудники.Сотрудник.ФизЛицо КАК ФизЛицо,
           
РаботающиеСотрудники.Сотрудник.Организация КАК Организация,
           
РаботающиеСотрудники.Сотрудник КАК Сотрудник,
           
Количество(ЕстьNULL(КатегорииОбъектов.Категория,ЗНАЧЕНИЕ(Справочник.КатегорииОбъектов.ПустаяСсылка))) КАК КоличествоКатегорий
        ИЗ (
           
ВЫБРАТЬ Сотрудник
            ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода) КАК РаботающиеНаНачалоПериода
            ГДЕ РаботающиеНаНачалоПериода.ПричинаИзмененияСостояния <> &Увольнение

            ОБЪЕДИНИТЬ
            выбрать Сотрудник
            ИЗ РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода) КАК РаботающиеНаКонецПериода
            ГДЕ РаботающиеНаКонецПериода.ПричинаИзмененияСостояния = &Увольнение И  РаботающиеНаКонецПериода.Период МЕЖДУ ДобавитьКДате(&НачалоПериода,Месяц,-3) И &КонецПериода

            ОБЪЕДИНИТЬ
            ВЫБРАТЬ Сотрудник
            ИЗ Документ.ДоговорНаВыполнениеРаботСФизЛицом КАК РаботающиеПоДоговорамГПХ
            ГДЕ РаботающиеПоДоговорамГПХ.ДатаНачала <= &КонецПериода И РаботающиеПоДоговорамГПХ.ДатаОкончания >= &НачалоПериода
        ) КАК РаботающиеСотрудники
        ЛЕВОЕ СОЕДИНЕНИЕ
            РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектов
            ПО КатегорииОбъектов.Объект = РаботающиеСотрудники.Сотрудник
        СГРУППИРОВАТЬ ПО
           
РаботающиеСотрудники.Сотрудник
    ) КАК Подгруппа
    СГРУППИРОВАТЬ ПО
       
Подгруппа.Организация,
       
Подгруппа.ФизЛицо
) КАК Работники
ЛЕВОЕ СОЕДИНЕНИЕ
    РегистрСведений.КатегорииОбъектов КАК КатегорииОбъектовРаботники
    ПО КатегорииОбъектовРаботники.Объект = Работники.Сотрудник



См. также

Инструментарий разработчика Роли и права Запросы СКД Программист Руководитель проекта Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Платные (руб)

Инструменты для разработчиков 1С 8.3: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

12000 руб.

02.09.2020    169303    937    403    

905

Запросы Программист Бесплатно (free)

Увидел cheatsheet по SQL и захотелось нарисовать подобное, но про запросы.

18.10.2024    11395    sergey279    18    

65

Запросы Программист Платформа 1С v8.3 Запросы Конфигурации 1cv8 Бесплатно (free)

Столкнулся с интересной ситуацией, которую хотел бы разобрать, ввиду её неочевидности. Речь пойдёт про использование функции запроса АВТОНОМЕРЗАПИСИ() и проблемы, которые могут возникнуть.

11.10.2024    6339    XilDen    36    

83

Запросы Программист Запросы Бесплатно (free)

Отлаживая взаимодействие с базой данных, мы регулярно сталкиваемся с зависающими или подозрительно долго выполняющимися обращениями, негативно влияющими на производительность. О том, как в PostgreSQL выявить подозрительные запросы, основываясь на доступной о них информации, расскажем в статье.

16.08.2024    9071    user1840182    5    

28

Математика и алгоритмы Запросы Программист Платформа 1С v8.3 Запросы Бесплатно (free)

Рассмотрим быстрый алгоритм поиска дублей с использованием hash функции по набору полей шапки и табличных частей.

08.07.2024    2727    ivanov660    9    

22

Запросы СКД Программист Стажер Система компоновки данных Россия Бесплатно (free)

Часто при разработке отчетов в СКД возникает ситуация, когда не совсем понятно, почему отчет выводит не те данные, которые нужны, либо не выводит вовсе. Возникает потребность увидеть конечный запрос, который формирует СКД. Как это сделать, рассмотрим в этой статье.

15.05.2024    10220    implecs_team    6    

48

Запросы Программист Стажер Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Часто поступают задачи по произвольному распределению общих сумм. После распределения иногда пропадают копейки. Суть решения добавить АвтоНомерЗаписи() в ВТ распределения, и далее используя функции МАКСИМУМ или МИНИМУМ можем положить разницу копеек в первую или последнюю строку знаменателя распределения.

11.04.2024    3625    andrey_sag    10    

38
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. alexk-is 6544 14.10.10 08:53 Сейчас в теме
Текст запроса в публикации можно раскрасить
4. boogie 490 03.11.10 17:11 Сейчас в теме
2. artbear 1565 03.11.10 16:40 Сейчас в теме
(0) "Объединить все" побыстрее будет :) Да и временные таблицы лучше юзать вместо нескольких уровней вложенности.

А вообще нафига выкладывать на сайт подобный запрос?
У каждого разработчика подобных запросов целая корзина :)
3. boogie 490 03.11.10 17:09 Сейчас в теме
(2) я ж говорю для себя, мне часто бывает надо для кадров.
5. Filys_Fog 13 04.05.11 09:02 Сейчас в теме
Незнаю кому как а мне пригодилось. спасибо...
Оставьте свое сообщение