новое событие
Информационный поток
Задания вакансии материалы разработки сообщения форума
Форум

Обсуждение к заданию: Срез последних по месяцам из периода

    • #1
    • 20.01.2016 17:57
    0
    Есть регистр сведений типа Период| Сотрудник| Статус(булево) Нужно запросом получить данные по количеству действующих (статус=истина) и недействующих (статус=ложь) на конец каждого месяца из з...  Подробнее>>
    • #2
    • 20.01.2016 17:57
    0
    Откуда у вас сентябрь, если КонецПериода - 5 августа???
    • #3
    • 20.01.2016 18:04
    0
    исправил
    • #4
    • 20.01.2016 19:03
    • Отредактировано: 20.01.2016 19:05:20
    0
    А какая конфигурация - имеется там например регистр сведений РегламентированныйПроизводственныйКалендарь?
    • #5
    • 20.01.2016 19:38
    0
    Такого регистра нет.
    Месяцы периода получал так

    ВЫБРАТЬ РАЗЛИЧНЫЕ
    ДОБАВИТЬКДАТЕ(КОНЕЦПЕРИОДА(&НачалоПериода, МЕСЯЦ), МЕСЯЦ, ВЗ_1.Поле1 + ВЗ_10.Поле1 * 10 + ВЗ_100.Поле1 * 100 + ВЗ_1000.Поле1 * 1000) КАК Период
    ИЗ
    (ВЫБРАТЬ
    0 КАК Поле1

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

    ВЫБРАТЬ
    1

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

    ВЫБРАТЬ
    2

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

    ВЫБРАТЬ
    3

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

    ВЫБРАТЬ
    4

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

    ВЫБРАТЬ
    5

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

    ВЫБРАТЬ
    6

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

    ВЫБРАТЬ
    7

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

    ВЫБРАТЬ
    8

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

    ВЫБРАТЬ
    9) КАК ВЗ_1
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    0 КАК Поле1

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

    ВЫБРАТЬ
    1

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

    ВЫБРАТЬ
    2

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

    ВЫБРАТЬ
    3

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

    ВЫБРАТЬ
    4

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

    ВЫБРАТЬ
    5

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

    ВЫБРАТЬ
    6

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

    ВЫБРАТЬ
    7

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

    ВЫБРАТЬ
    8

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

    ВЫБРАТЬ
    9) КАК ВЗ_10
    ПО (ИСТИНА)
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    0 КАК Поле1

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

    ВЫБРАТЬ
    1

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

    ВЫБРАТЬ
    2

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

    ВЫБРАТЬ
    3

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

    ВЫБРАТЬ
    4

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

    ВЫБРАТЬ
    5

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

    ВЫБРАТЬ
    6

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

    ВЫБРАТЬ
    7

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

    ВЫБРАТЬ
    8

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

    ВЫБРАТЬ
    9) КАК ВЗ_100
    ПО (ИСТИНА)
    ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
    0 КАК Поле1

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

    ВЫБРАТЬ
    1

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

    ВЫБРАТЬ
    2

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

    ВЫБРАТЬ
    3

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

    ВЫБРАТЬ
    4

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

    ВЫБРАТЬ
    5

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

    ВЫБРАТЬ
    6

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

    ВЫБРАТЬ
    7

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

    ВЫБРАТЬ
    8

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

    ВЫБРАТЬ
    9) КАК ВЗ_1000
    ПО (ИСТИНА)
    ГДЕ
    РАЗНОСТЬДАТ(&НачалоПериода, &КонецПериода, МЕСЯЦ) >= ВЗ_1.Поле1 + ВЗ_10.Поле1 * 10 + ВЗ_100.Поле1 * 100 + ВЗ_1000.Поле1 * 1000
    • #6
    • 20.01.2016 19:44
    0
    Хорошо, это работает
    • #7
    • 24.01.2016 11:22
    0
    Попробуй так эт более универсально
    ВЫБРАТЬ
    РегистрСведений1.Период КАК Период,
    РегистрСведений1.Сотрудник КАК Сотрудник,
    РегистрСведений1.Статус КАК Статус,
    КОНЕЦПЕРИОДА(РегистрСведений1.Период, ДЕНЬ) КАК КонецДня,
    ВЫБОР
    КОГДА РегистрСведений1.Статус
    ТОГДА 1
    ИНАЧЕ 0
    КОНЕЦ КАК Был,
    ВЫБОР
    КОГДА РегистрСведений1.Статус
    ТОГДА 0
    ИНАЧЕ 1
    КОНЕЦ КАК НеБыл
    ПОМЕСТИТЬ ВременнаяТаблица
    ИЗ
    РегистрСведений.РегистрСведений1 КАК РегистрСведений1
    ГДЕ
    РегистрСведений1.Период МЕЖДУ &ПериодС И &ПериодПо
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    ВременнаяТаблица.Сотрудник КАК Сотрудник,
    ВременнаяТаблица.КонецДня КАК КонецДня,
    МАКСИМУМ(ВременнаяТаблица.Период) КАК Период
    ПОМЕСТИТЬ ВременнаяТаблица1
    ИЗ
    ВременнаяТаблица КАК ВременнаяТаблица

    СГРУППИРОВАТЬ ПО
    ВременнаяТаблица.Сотрудник,
    ВременнаяТаблица.КонецДня
    ;

    ////////////////////////////////////////////////////////////////////////////////
    ВЫБРАТЬ
    КОНЕЦПЕРИОДА(ВременнаяТаблица.Период, МЕСЯЦ) КАК Период,
    ВременнаяТаблица.Сотрудник КАК Сотрудник,
    СУММА(ВременнаяТаблица.Был) КАК Был,
    СУММА(ВременнаяТаблица.НеБыл) КАК НеБыл
    ИЗ
    ВременнаяТаблица1 КАК ВременнаяТаблица1
    ЛЕВОЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК ВременнаяТаблица
    ПО (ВременнаяТаблица.Период = ВременнаяТаблица1.Период)
    И (ВременнаяТаблица.Сотрудник = ВременнаяТаблица1.Сотрудник)

    СГРУППИРОВАТЬ ПО
    КОНЕЦПЕРИОДА(ВременнаяТаблица.Период, МЕСЯЦ),
    ВременнаяТаблица.Сотрудник
    • #8
    • 24.01.2016 14:50
    0
    Периоды правильно выводит, а данные по сотрудникам какие то левые совсем
    • #9
    • 26.01.2016 19:41
    0
    Запрос для СКД нужен?
    • #10
    • 31.01.2016 11:33
    0
    нет, в скд я знаю как это реализовать
Для участия в обсуждении Вам необходимо авторизоваться либо   зарегистрироваться