Версия для печати темы (https://pro1c.org.ua/index.php?s=5168f041352b10aa5c6560b90f3473d3&showtopic=46522)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Неиспользовано дней отпуска

Автор: TailorMade 30.06.18, 10:04

Добрый день. УТП 8.3
Делаю запрос, в консоле запросов. Чтобы вытянуть количество дней неиспользованного отпуска по работнику.

ВЫБРАТЬ
    ИсточникДанных.ПериодДействияНачало КАК ПериодДействияНачало,
    ИсточникДанных.ПериодДействияКонец,
    ИсточникДанных.КоличествоМесяцев КАК ДнейФактическогоОтпуска,
    ИсточникДанных.ОплаченоДнейЧасов КАК ДнейИспользованногоОтпуска,
    ИсточникДанных.КоличествоМесяцев - ИсточникДанных.ОплаченоДнейЧасов КАК НеиспользованоДнейОтпуска,
    ИсточникДанных.Сотрудник,
    ИсточникДанных.Регистратор,
    ИсточникДанных.ВидРасчета
ИЗ
    (ВЫБРАТЬ
        Начисления.ПериодДействияНачало КАК ПериодДействияНачало,
        Начисления.ПериодДействияКонец КАК ПериодДействияКонец,
        Начисления.Сотрудник КАК Сотрудник,
        Начисления.Регистратор КАК Регистратор,
        Начисления.ВидРасчета КАК ВидРасчета,
        СУММА(Начисления.ОплаченоДнейЧасов) КАК ОплаченоДнейЧасов,
        РАЗНОСТЬДАТ(ВложенныйЗапрос.Период, Начисления.ПериодДействияНачало, МЕСЯЦ) * 2 КАК КоличествоМесяцев,
        РАЗНОСТЬДАТ(ВложенныйЗапрос.Период, Начисления.ПериодДействияНачало, МЕСЯЦ) * 2 - Начисления.ОплаченоДнейЧасов КАК НеиспользованоВЗ
    ИЗ
        РегистрРасчета.Начисления КАК Начисления,
        (ВЫБРАТЬ
            МИНИМУМ(РаботникиОрганизаций.Период) КАК Период
        ИЗ
            РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизаций
        ГДЕ
            РаботникиОрганизаций.Сотрудник = &Сотрудник) КАК ВложенныйЗапрос
    ГДЕ
        Начисления.ВидРасчета.Код = "00018"
        И Начисления.Сотрудник = &Сотрудник
        И Начисления.ПериодДействияНачало >= &НачалоПериода
        И Начисления.ПериодДействияКонец <= &КонецПериода
    
    СГРУППИРОВАТЬ ПО
        Начисления.ПериодДействияНачало,
        Начисления.ПериодДействияКонец,
        Начисления.Сотрудник,
        Начисления.Регистратор,
        Начисления.ВидРасчета,
        РАЗНОСТЬДАТ(ВложенныйЗапрос.Период, Начисления.ПериодДействияНачало, МЕСЯЦ) * 2,
        РАЗНОСТЬДАТ(ВложенныйЗапрос.Период, Начисления.ПериодДействияНачало, МЕСЯЦ) * 2 - Начисления.ОплаченоДнейЧасов) КАК ИсточникДанных

УПОРЯДОЧИТЬ ПО
    ПериодДействияНачало


Но вот какая проблема:
Если, к примеру, сотрудник пошел в отпуск и
Дней фактического отпуска= 20, Дней использованного отпуска = 13, ТОГДА Дней неиспользованного отпуска = 7. Всё верно. Но второй поход в отпуск считает: Дней фактического отпуска= 22, Дней использованного отпуска = 1, ТОГДА Дней неиспользованного отпуска = 21

Как правильно поступить в таком случае?

Автор: TailorMade 02.07.18, 11:49

Прошу помощи

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua