Вход | Регистрация

1С:Предприятие :: 1С:Предприятие 8 общая

Запрос: действующие ДГПХ на дату

Запрос: действующие ДГПХ на дату
Я
   dft2014
 
06.06.18 - 12:31
ЗУП3
Как запросом получить действующих договорников ГПХ на конкретную дату?

Например, на 01.12.2017:

Действующие, у них 01.12.2017 входит в периоды договоров:
01.11.2017 - 02.12.2017 или 01.12.2017 - 31.03.2018


Недействующие, у них 01.12.2017 не входит в периоды договоров:
01.11.2017 - 30.11.2017 или 02.12.2017 - 31.03.2018


Ниже запрос, но он дает неверный результат:
"ВЫБРАТЬ
|    ПараметрыПериодовСтажаПФР.Сотрудник КАК Сотрудник
|ИЗ
|    РегистрСведений.ПараметрыПериодовСтажаПФР КАК ПараметрыПериодовСтажаПФР
|ГДЕ
|    ПараметрыПериодовСтажаПФР.Начало >= &НаДату
|    И ПараметрыПериодовСтажаПФР.Окончание <= &НаДату";
|
|СГРУППИРОВАТЬ ПО
|    ПараметрыПериодовСтажаПФР.Сотрудник";
 
 
   Михаил Козлов
 
1 - 06.06.18 - 12:35
Наверное условие нужно поменять
ГДЕ
|    ПараметрыПериодовСтажаПФР.Начало >= &НаДату
|    И ПараметрыПериодовСтажаПФР.Окончание <= &НаДату";
на
ГДЕ
|    ПараметрыПериодовСтажаПФР.Начало <= &НаДату
|    И ПараметрыПериодовСтажаПФР.Окончание >= &НаДату";
   MUXACb
 
2 - 06.06.18 - 12:36
(0) А чем типовой отчет не устраивает?
   RomaH
 
3 - 06.06.18 - 12:39
   dft2014
 
4 - 06.06.18 - 12:42
(1) Исправила и добавила отбор по регистратору. Теперь вообще перестал что-либо возвращать!

ВЫБРАТЬ
    ПараметрыПериодовСтажаПФР.Сотрудник КАК Сотрудник
ИЗ
    РегистрСведений.ПараметрыПериодовСтажаПФР КАК ПараметрыПериодовСтажаПФР
ГДЕ
    ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ДоговорРаботыУслуги)
    И ПараметрыПериодовСтажаПФР.Начало <= &Дата1
    И ПараметрыПериодовСтажаПФР.Окончание >= &Дата1
   Михаил Козлов
 
5 - 06.06.18 - 12:46
Попробуйте вместо  ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ДоговорРаботыУслуги)
ГДЕ ПараметрыПериодовСтажаПФР.Регистратор ССЫЛКА Документ.ДоговорРаботыУслуги
   dft2014
 
6 - 06.06.18 - 12:50
(5) так тоже пробовала, результат также становится - пустой.
   SleepyHead
 
7 - 06.06.18 - 13:07
Вот текст работающего запроса, выдает физлиц, у которых действует ГПХ в указанном периоде, с даты по дату). Если вам не нужен отбор по физлицам, оключите, мне он был нужен.

    Запрос.Текст =
        "ВЫБРАТЬ
        |    ПериодыГПХ.Регистратор КАК Регистратор,
        |    ПериодыГПХ.Сотрудник КАК Сотрудник,
        |    ПериодыГПХ.ФизическоеЛицо КАК ФизическоеЛицо,
        |    ПериодыГПХ.Регистратор.Номер КАК РегистраторНомер,
        |    ПериодыГПХ.Регистратор.Дата КАК РегистраторДата,
        |    ПериодыГПХ.ДатаНачала КАК Начало,
        |    ПериодыГПХ.ДатаОкончания КАК Конец,
        |    ПериодыГПХ.Сотрудник.Код КАК ТабельныйНомер
        |ИЗ
        |    РегистрСведений.ПериодыДействияДоговоровГражданскоПравовогоХарактера КАК ПериодыГПХ
        |ГДЕ
        |    ПериодыГПХ.Организация = &Организация
        |    И ПериодыГПХ.Сотрудник В(&МассивСотрудников)
        |    И ВЫБОР
        |            КОГДА НАЧАЛОПЕРИОДА(ПериодыГПХ.ДатаНачала, ДЕНЬ) > НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ)
        |                ТОГДА НАЧАЛОПЕРИОДА(ПериодыГПХ.ДатаНачала, ДЕНЬ)
        |            ИНАЧЕ НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ)
        |        КОНЕЦ <= ВЫБОР
        |            КОГДА КОНЕЦПЕРИОДА(ПериодыГПХ.ДатаОкончания, ДЕНЬ) < КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ)
        |                ТОГДА КОНЕЦПЕРИОДА(ПериодыГПХ.ДатаОкончания, ДЕНЬ)
        |            ИНАЧЕ КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ)
        |        КОНЕЦ";
    Запрос.УстановитьПараметр("Дата1", НачалоПериода);
    Запрос.УстановитьПараметр("Дата2", КонецПериода);
    Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников);
    Запрос.УстановитьПараметр("Организация", ПараметрыМодели.Организация);
   dft2014
 
8 - 06.06.18 - 13:11
(7) спасибо, но мне надо получить договора не за период, а на дату! В этом-то и весь вопрос...
   SleepyHead
 
9 - 06.06.18 - 13:14
(8) Ну исправьте условие. Или вы только готовые решения рассматриваете?

У вас два варианта - передать в параметрах две одинаковые даты, тоже будет работать. Или переписать запрос под ваши требования.
   dft2014
 
10 - 06.06.18 - 13:28
(9) Спасибо! Разобралась!
 
 Рекламное место пустует

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует