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

Помощь с СКД

Автор Алексей_1985_06, 07 фев 2021, 15:38

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

Алексей_1985_06

Подскажите, необходиом построить отчет в котором будет выводиться список сотрудников у кого ДР сегодня и список сотрудников у кого ДР в текущем месяце.
Сделал так (сильно не критикуйте - только учусь):
Создал набор данных 1:
ВЫБРАТЬ
Сотрудники.Ссылка КАК Сотрудник,
Сотрудники.ДатаРождения КАК ДатаРождения
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
МЕСЯЦ(Сотрудники.ДатаРождения) = &Месяц И
ДЕНЬ(Сотрудники.ДатаРождения) = &День


И набор данных 2:
ВЫБРАТЬ
Сотрудники.Ссылка КАК М_Сотрудник,
Сотрудники.ДатаРождения КАК М_ДатаРождения
ИЗ
Справочник.Сотрудники КАК Сотрудники
ГДЕ
МЕСЯЦ(Сотрудники.ДатаРождения) = &М_Месяц


На вкладке Параметры в СКД сделал выражение:
Месяц = Месяц (ТекущаяДата ())
День = День (ТекущаяДата ())
М_Месяц = Месяц (ТекущаяДата ())

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

antoneus

Вроде ничего криминального в запросе. А может, др у них совпадают?

Алексей_1985_06

Цитата: antoneus от 07 фев 2021, 16:57
Вроде ничего криминального в запросе. А может, др у них совпадают?

antoneus да, нашел ошибку! А подскажите пжл это только так, двумя запросами реализуется, я не туплю?
Если так, тогда возможно ли реализовать, что те у кого ДР сегодня  - уже не попадали в список сотрудников у кого ДР в текущем месяце, а то получается дубли...

// ДР сотрудников на текущую дату
ВЫБРАТЬ
Сотрудники.Ссылка КАК Сотрудник,
Сотрудники.ДатаРождения КАК ДатаРождения,
ПослужнойСписокСрезПоследних.Должность КАК Должность
ИЗ
Справочник.Сотрудники КАК Сотрудники
ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ПослужнойСписок.СрезПоследних КАК ПослужнойСписокСрезПоследних
ПО (ПослужнойСписокСрезПоследних.Сотрудник = Сотрудники.Ссылка)
ГДЕ
МЕСЯЦ(Сотрудники.ДатаРождения) = &Месяц
И ДЕНЬ(Сотрудники.ДатаРождения) = &День


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

   

LexaK

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

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

Алексей_1985_06

Цитата: LexaK от 08 фев 2021, 10:14
так во второй запрос добавьте условие что бы не текущий день, примерно так

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


ОК, большое спасибо!!!

Теги:

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

Рейтинг@Mail.ru

Поиск