Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
27 окт 2024, 16:44

Сравние видов отпусков в разных регистрах

Автор rabalegq, 22 мая 2023, 10:43

0 Пользователей и 1 гость просматривают эту тему.

rabalegq

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

СГРУППИРОВАТЬ ПО
    ЗаработанныеПраваНаОтпуска.Сотрудник,
    ЗаработанныеПраваНаОтпуска.ВидЕжегодногоОтпуска
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ПоложенныеВидыЕжегодныхОтпусков.Сотрудник КАК Сотрудник,
    ПоложенныеВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
ПОМЕСТИТЬ ВТ_Ввод
ИЗ
    РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков КАК ПоложенныеВидыЕжегодныхОтпусков

СГРУППИРОВАТЬ ПО
    ПоложенныеВидыЕжегодныхОтпусков.Сотрудник,
    ПоложенныеВидыЕжегодныхОтпусков.ВидЕжегодногоОтпуска
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
    ВТ_Ввод.Сотрудник КАК Сотрудник
ИЗ
    ВТ_Ввод КАК ВТ_Ввод
        ЛЕВОЕ СОЕДИНЕНИЕ ВТ_Зараб КАК ВТ_Зараб
        ПО ВТ_Ввод.Сотрудник = ВТ_Зараб.Сотрудник
ГДЕ
    ВТ_Ввод.ВидЕжегодногоОтпуска <> ВТ_Зараб.ВидЕжегодногоОтпуска

СГРУППИРОВАТЬ ПО
    ВТ_Ввод.Сотрудник

LexaK

rabalegq, в результате вы только сотрудника выводите и по нему не понятно что не совпадает,

добавьте еще два поля ВидОтпуска которые как раз и не совпадают, будет гораздо нагляднее.

и еще, если сотруднику положены несколько видов отпусков, то сначала надо исключить совпадающие!
если помогло нажмите: Спасибо!

rabalegq

LexaK, сделал так и всё работает
ВЫБРАТЬ
1 КАК НомерТаблицы,
ЗаработанныеПраваНаОтпуска.Сотрудник КАК Сотрудник,
ЗаработанныеПраваНаОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
ПОМЕСТИТЬ ВТ_Зараб
ИЗ
РегистрСведений.ЗаработанныеПраваНаОтпуска КАК ЗаработанныеПраваНаОтпуска
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних КАК КадроваяИсторияСотрудниковСрезПоследних
ПО (ЗаработанныеПраваНаОтпуска.Сотрудник = КадроваяИсторияСотрудниковСрезПоследних.Сотрудник)
ГДЕ
КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)

ОБЪЕДИНИТЬ ВСЕ

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

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ВТ_Зараб.Сотрудник КАК Сотрудник,
ВТ_Зараб.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
ИЗ
ВТ_Зараб КАК ВТ_Зараб

СГРУППИРОВАТЬ ПО
ВТ_Зараб.Сотрудник,
ВТ_Зараб.ВидЕжегодногоОтпуска

ИМЕЮЩИЕ
СУММА(ВТ_Зараб.НомерТаблицы) < 3

Теги: 1c 1cv8 Запрос 

Похожие темы (5)

Рейтинг@Mail.ru

Поиск