Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 11:12

список работающих сотрудников да дату

Автор tavka, 06 дек 2017, 11:00

0 Пользователей и 1 гость просматривают эту тему.

tavka

добрый день
Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.2.183) пытаюсь вывести список работающих сотрудников
есть какие-то более оптимальные варианты?

ВЫБРАТЬ
ДанныеСостоянийСотрудников.Сотрудник,
МАКСИМУМ(ДанныеСостоянийСотрудников.Начало) КАК Начало
ПОМЕСТИТЬ врРаботающие
ИЗ   РегистрСведений.ДанныеСостоянийСотрудников КАК ДанныеСостоянийСотрудников
ГДЕ  ДанныеСостоянийСотрудников.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение)
и  ДанныеСостоянийСотрудников.Начало<=&д
СГРУППИРОВАТЬ ПО  ДанныеСостоянийСотрудников.Сотрудник ;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
ДанныеСостоянийСотрудников.Сотрудник,
ДанныеСостоянийСотрудников.Состояние,
МАКСИМУМ(ДанныеСостоянийСотрудников.Начало) КАК Начало
ПОМЕСТИТЬ врУволен
ИЗ    РегистрСведений.ДанныеСостоянийСотрудников КАК ДанныеСостоянийСотрудников
ГДЕ  ДанныеСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение)
и  ДанныеСостоянийСотрудников.Начало<=&д
СГРУППИРОВАТЬ ПО ДанныеСостоянийСотрудников.Сотрудник, ДанныеСостоянийСотрудников.Состояние;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
врРаботающие.Сотрудник,
врРаботающие.Начало,
врУволен.Сотрудник КАК Сотрудник1,
врУволен.Состояние КАК Состояние1,
врУволен.Начало КАК Начало1
ПОМЕСТИТЬ врВсе
ИЗ
врРаботающие КАК врРаботающие
ЛЕВОЕ СОЕДИНЕНИЕ врУволен КАК врУволен
ПО врРаботающие.Сотрудник = врУволен.Сотрудник
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
врВсе.Сотрудник,
врВсе.Начало,
врВсе.Сотрудник1,
врВсе.Состояние1,
врВсе.Начало1
ПОМЕСТИТЬ врВсе2
ИЗ
врВсе КАК врВсе
ГДЕ
врВсе.Начало > ЕСТЬNULL(врВсе.Начало1, ДАТАВРЕМЯ(1, 1, 1))
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
врВсе2.Сотрудник,
врВсе2.Начало,
врВсе2.Сотрудник1,
врВсе2.Состояние1,
врВсе2.Начало1
ИЗ
врВсе2 КАК врВсе2

УПОРЯДОЧИТЬ ПО    врВсе2.Сотрудник

LexaK

а зачем такие сложности? у меня такой базы Зарплата и кадры государственного учреждения, редакция 3.1 (3.1.2.183)  = нет
но очень уверен что регистр ДанныеСостоянийСотрудников переодический
поэтому запрос по отбору текущих работающих сотрудников будет выглядеть так (примерно, базы нет не могу в консоли проверить)

ВЫБРАТЬ
    Рег.Сотрудник,
    Рег.Состояние
ИЗ   
    РегистрСведений.ДанныеСостоянийСотрудников.СрезПоследних() КАК Рег
ГДЕ
    рег.Состояние <> ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Увольнение) //все не уволенные на данный момент

если помогло нажмите: Спасибо!

pavl_vs

Если это не попытка получения навыков 1С-программирования, то оптимальным будет воспользоваться каким-либо штатным кадровым отчетом, например, Штатные сотрудники, либо Универсальным отчетом.
Спектр настроек этих отчетов "выше крыши".

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск