Уволенные на заданный период.

1. Intercititude 25.10.19 01:49 Сейчас в теме
Есть задача.
Вывести запросом сотрудников, которые работали в организации в течении выбранного периода времени.

ВЫБРАТЬ
	РаботникиОрганизацийСрезПоследних.Сотрудник,
	РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния КАК Причина
ИЗ
	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&КонецПериода, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
	(РаботникиОрганизацийСрезПоследних.ПериодЗавершения = &ПустаяДата
			ИЛИ РаботникиОрганизацийСрезПоследних.ПериодЗавершения >= &НачалоПериода)


Что я делаю не так ?
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. ZergKRSK 130 25.10.19 03:57 Сейчас в теме
(1)
ВЫБРАТЬ
	РаботникиОрганизацийСрезПоследних.Сотрудник,
	РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния КАК Причина,
	РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения КАК ДатаУвольнения
ИЗ
	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаСреза, Активность) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
	РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
	И НАЧАЛОПЕРИОДА(РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения, ДЕНЬ) <= НАЧАЛОПЕРИОДА(&ДатаСреза, ДЕНЬ)

УПОРЯДОЧИТЬ ПО
	РаботникиОрганизацийСрезПоследних.Сотрудник
АВТОУПОРЯДОЧИВАНИЕ
Показать
4. пользователь 25.10.19 09:11
Сообщение было скрыто модератором.
...
5. пользователь 25.10.19 10:42
Сообщение было скрыто модератором.
...
6. пользователь 25.10.19 10:59
Сообщение было скрыто модератором.
...
8. ZergKRSK 130 25.10.19 11:03 Сейчас в теме
(6)
Я не умничаю, я констатирую Факт, что в ответ на запрос Выбрать работающих сотрудников , вы предлагаете своим кодом не работающих , а уволенных!

прочитайте уже вопрос автора, там кажется русский язык используется. Автору как раз и нужны уволенные сотрудники.
9. YannikAlx 27 25.10.19 11:14 Сейчас в теме
(8) Спасибо, что имели терпение , наставить меня на путь истинный!
Мои глаза реально затмились врагом человеческим...
Простите , я был не прав!
10. ZergKRSK 130 25.10.19 11:18 Сейчас в теме
(9) Т.к. автор в изначальном запросе использовал срез последних (не объяснив почему) я тоже использовал срез последних. И проверку делал с использование одной даты - даты среза. В моем варианте получим всех уволенных с не ограниченной даты начала.
Если всё же надо её ограничивать то тогда да, Ваше условие будет верное.
11. YannikAlx 27 25.10.19 11:24 Сейчас в теме
(10) Я уже увидел , что мое условие - тоже неверное... Потому и удалил его...
12. YannikAlx 27 25.10.19 11:27 Сейчас в теме
(10) Кроме того увидел , что вопрос автора не определен в части нужны ли только те кто успел поработать в определенный период, или именно те кто ВЕСЬ указанный период отработали. Ибо это 2 разных условия...
13. ZergKRSK 130 25.10.19 11:30 Сейчас в теме
(12) согласен, постановка задачи не чёткая.
16. Intercititude 25.10.19 13:17 Сейчас в теме
(12)Я так понимаю, что при указаний ДатыНачала и ДатыКонца выводятся все сотрудники которые работали в этот промежуток.
17. YannikAlx 27 25.10.19 14:08 Сейчас в теме
(16) Но вы понимаете , что работать можно по разному ?
Вы имеете период, о котором упоминаете, но сотрудник может весь период отработать, а может скажем только 1 день в этом периоде.
Это принципиальная разница! Вам как нужно-то?*
18. Intercititude 25.10.19 16:20 Сейчас в теме
(17) главное чтобы попадал в этот период. Хоть один день.
19. YannikAlx 27 25.10.19 16:38 Сейчас в теме
(18) Я уже дал ответы для 2 вариантов...
Intercititude; +1 Ответить
7. Den75Ch 25.10.19 11:01 Сейчас в теме
(5) Александр, у янченко видно больная тема по поводу "заблуждения". Не обращайте внимание :)
3. nomad_irk 76 25.10.19 07:21 Сейчас в теме
(1)не так делаете - обращаетесь только к срезу последних на конец периода. Необходимо выбирать срез последних на начало периода для всех работающих сотрудников + из основной таблицы данные за период, все что в него попадет с любым видом кадрового события.
14. YannikAlx 27 25.10.19 11:39 Сейчас в теме +0.35 $m
Если нужны те кто успел хоть день отработать в указанном периоде, то такое условие

ГДЕ
( (СотрудникиОрганизаций.ДатаПриемаНаРаботу < КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ
И СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) )
ИЛИ
( (СотрудникиОрганизаций.ДатаПриемаНаРаботу< КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
И СотрудникиОрганизаций.ДатаУвольнения >=НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ) )
20. Intercititude 26.10.19 15:01 Сейчас в теме
(14) Задание для ЗУП 2.5 . В нём нету такого регистра,который Вы указали.
Сделал по Вашему примеру. Но что то не так помоему. Выводит вообще всех сотрудников.

ВЫБРАТЬ
	РаботникиОрганизацийСрезПоследних.Сотрудник,
	РаботникиОрганизацийСрезПоследних.ПричинаИзмененияСостояния КАК Причина
ИЗ
	РегистрСведений.РаботникиОрганизаций.СрезПоследних(&ДатаОкончания, ) КАК РаботникиОрганизацийСрезПоследних
ГДЕ
	(РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу < КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
				И РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
			ИЛИ РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаПриемаНаРаботу < КОНЕЦПЕРИОДА(&ДатаОкончания, ДЕНЬ)
				И РаботникиОрганизацийСрезПоследних.Сотрудник.ДатаУвольнения >= НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ))
Показать
21. YannikAlx 27 28.10.19 09:35 Сейчас в теме
(20) Суть не в регистре... Суть в условии выбора данных...
Вы в скобках запутались и сделали совершенно бессмысленное условие в результате.
Постарайтесь вникнуть в условия и все получится!
15. YannikAlx 27 25.10.19 11:44 Сейчас в теме
Если нужны те кто отработал в указанном периоде весь срок

ГДЕ
( (СотрудникиОрганизаций.ДатаПриемаНаРаботу <= НАЧАЛОПЕРИОДА(&ДатаНачала, ДЕНЬ
И ( СотрудникиОрганизаций.ДатаУвольнения = ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0) ИЛИ
СотрудникиОрганизаций.ДатаУвольнения >=НАЧАЛОПЕРИОДА(&ДатаОкончания, ДЕНЬ) )
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот