|
Запрос: действующие ДГПХ на дату | ☑ | ||
---|---|---|---|---|
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) Спасибо! Разобралась!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |