Имя: Пароль:
1C
1С v8
Найти дату приема на работу
0 prog365
 
12.02.24
19:51
Всем привет! Подскажите, есть РС Работники в котором может быть несколько записей о приеме (тогда ставка > 0) на работу или увольнения (ставка = 0), тех и тех записей может быть несколько, может быть несколько записей о приеме это смена должностей.
Мне надо найти первую дату о приеме: если нет увольнения, то просто беру срез первых и получаю первую дату. А вот если было увольнение и потом снова приняли, то как тут можно одним запросом получить запись о приеме после увольнения?
1 Волшебник
 
12.02.24
19:56
Увольнение работника должно стать окончанием "трудовой жизни" этого элемента справочника.

Ранее уволенные сотрудники не принимаются обратно, а заводятся как новые.
2 d4rkmesa
 
12.02.24
20:03
(0) О какой конфигурации речь?
3 prog365
 
12.02.24
20:49
(1) с этим согласен, но они так вот прилетают из другой базы (2) Розница старая, обычные формы
4 Волшебник
 
12.02.24
20:54
(3) Розница, сотрудники, ставки... Много думал...
5 Vaderonk
 
12.02.24
23:05
(0) найти максимальную дату увольнения по сотруднику и искать первую строку после этой даты
6 DrZombi
 
13.02.24
06:01
(0) Сперва получаете ВТ_Уволенные сотрудники.
Потом на основе уволенных используйте её в качестве минимальной даты.

Все что было до увольнения, вас не интересует.
Вам же нужны только работающие сотрудники, а не история по всем за все годы :)

Если увольнения нет, то и ограничения нет, т.е. тут все в вашей фантазии :)
7 Web00001
 
13.02.24
08:32
(5)(6) +1. Первый запрос к таблице "РС Работники" который формирует ВТ таблицу с датами увольнений. Состоит из объединений двух других запросов:
1. Выбрали всех у кого не было увольнений. У них дата увольнения пустая "ДатаВремя(1,1,1)"(ну или как-то так, лень смотреть)
2. Второй запрос, всех у кого увольнение было. Сгруппировать даты увольнений на максимум
Слдующим запросом делаем левое соединение к этой Временной таблице которая сформирована первым запросом, таблицей "РС Работники". По ТаблицаРегистра.ДатаПриема > ВТ.Дата увольнения. Полученную таблицу сгруппировать по полю Сотрудника а дату приема в минимум. Приблизительно так это должно работать.
Как понять где прием, где увольнение, как каждый раз не перебирать весь регистр и все даты, оставляю тебе, дальше уже дело техники
8 Мимохожий Однако
 
13.02.24
09:14
(3) ОФФ. Небрежность в ответах и вопросах порождает ошибки
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn