|   |   | 
| 
 | Запрос: действующие ДГПХ на дату | ☑ | ||
|---|---|---|---|---|
| 0
    
        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 | 
        Наверное условие нужно поменять
 ГДЕ | ПараметрыПериодовСтажаПФР.Начало >= &НаДату | И ПараметрыПериодовСтажаПФР.Окончание <= &НаДату"; на ГДЕ | ПараметрыПериодовСтажаПФР.Начало <= &НаДату | И ПараметрыПериодовСтажаПФР.Окончание >= &НаДату"; | |||
| 2
    
        MUXACb 06.06.18✎ 12:36 | 
        (0) А чем типовой отчет не устраивает?     | |||
| 3
    
        RomaH naïve 06.06.18✎ 12:39 | ||||
| 4
    
        dft2014 06.06.18✎ 12:42 | 
        (1) Исправила и добавила отбор по регистратору. Теперь вообще перестал что-либо возвращать!
 ВЫБРАТЬ ПараметрыПериодовСтажаПФР.Сотрудник КАК Сотрудник ИЗ РегистрСведений.ПараметрыПериодовСтажаПФР КАК ПараметрыПериодовСтажаПФР ГДЕ ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ДоговорРаботыУслуги) И ПараметрыПериодовСтажаПФР.Начало <= &Дата1 И ПараметрыПериодовСтажаПФР.Окончание >= &Дата1 | |||
| 5
    
        Михаил Козлов 06.06.18✎ 12:46 | 
        Попробуйте вместо  ТИПЗНАЧЕНИЯ(Регистратор) = ТИП(Документ.ДоговорРаботыУслуги)
 ГДЕ ПараметрыПериодовСтажаПФР.Регистратор ССЫЛКА Документ.ДоговорРаботыУслуги | |||
| 6
    
        dft2014 06.06.18✎ 12:50 | 
        (5) так тоже пробовала, результат также становится - пустой.     | |||
| 7
    
        SleepyHead гуру 06.06.18✎ 13:07 | 
        Вот текст работающего запроса, выдает физлиц, у которых действует ГПХ в указанном периоде, с даты по дату). Если вам не нужен отбор по физлицам, оключите, мне он был нужен.
 Запрос.Текст = "ВЫБРАТЬ | ПериодыГПХ.Регистратор КАК Регистратор, | ПериодыГПХ.Сотрудник КАК Сотрудник, | ПериодыГПХ.ФизическоеЛицо КАК ФизическоеЛицо, | ПериодыГПХ.Регистратор.Номер КАК РегистраторНомер, | ПериодыГПХ.Регистратор.Дата КАК РегистраторДата, | ПериодыГПХ.ДатаНачала КАК Начало, | ПериодыГПХ.ДатаОкончания КАК Конец, | ПериодыГПХ.Сотрудник.Код КАК ТабельныйНомер |ИЗ | РегистрСведений.ПериодыДействияДоговоровГражданскоПравовогоХарактера КАК ПериодыГПХ |ГДЕ | ПериодыГПХ.Организация = &Организация | И ПериодыГПХ.Сотрудник В(&МассивСотрудников) | И ВЫБОР | КОГДА НАЧАЛОПЕРИОДА(ПериодыГПХ.ДатаНачала, ДЕНЬ) > НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ) | ТОГДА НАЧАЛОПЕРИОДА(ПериодыГПХ.ДатаНачала, ДЕНЬ) | ИНАЧЕ НАЧАЛОПЕРИОДА(&Дата1, ДЕНЬ) | КОНЕЦ <= ВЫБОР | КОГДА КОНЕЦПЕРИОДА(ПериодыГПХ.ДатаОкончания, ДЕНЬ) < КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ) | ТОГДА КОНЕЦПЕРИОДА(ПериодыГПХ.ДатаОкончания, ДЕНЬ) | ИНАЧЕ КОНЕЦПЕРИОДА(&Дата2, ДЕНЬ) | КОНЕЦ"; Запрос.УстановитьПараметр("Дата1", НачалоПериода); Запрос.УстановитьПараметр("Дата2", КонецПериода); Запрос.УстановитьПараметр("МассивСотрудников", МассивСотрудников); Запрос.УстановитьПараметр("Организация", ПараметрыМодели.Организация); | |||
| 8
    
        dft2014 06.06.18✎ 13:11 | 
        (7) спасибо, но мне надо получить договора не за период, а на дату! В этом-то и весь вопрос...     | |||
| 9
    
        SleepyHead гуру 06.06.18✎ 13:14 | 
        (8) Ну исправьте условие. Или вы только готовые решения рассматриваете?
 У вас два варианта - передать в параметрах две одинаковые даты, тоже будет работать. Или переписать запрос под ваши требования. | |||
| 10
    
        dft2014 06.06.18✎ 13:28 | 
        (9) Спасибо! Разобралась!     | 
| Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |