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

Запрос на получение лицевых счетов уволенных сотрудников

Автор Geronimo_, 10 окт 2018, 16:11

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

Geronimo_

Всем привет
Работаю в 1С:ЗУП. Необходимо написать запрос, который бы выводил лицевые счета по уволенным сотрудникам.
Уволенных сотрудников получаю из регистра сведений ДанныеСостоянийСотрудников.
А лицевые счета из регистра сведений ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.

Написал такой запрос:

Цитировать
ВЫБРАТЬ
   ДанныеСостоянийСотрудников.Начало КАК Начало,
   ДанныеСостоянийСотрудников.Сотрудник.ФизическоеЛицо КАК СотрудникФизическоеЛицо
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
   РегистрСведений.ДанныеСостоянийСотрудников КАК ДанныеСостоянийСотрудников
ГДЕ
   ДанныеСостоянийСотрудников.ДокументОснование ССЫЛКА Документ.Увольнение
{ГДЕ
   (ДанныеСостоянийСотрудников.Начало МЕЖДУ &НачалоПериода И &КонецПериода)}
;

////////////////////////////////////////////////////////////////////////////////
ВЫБРАТЬ
   ВременнаяТаблица.Начало КАК ДатаУвольнения,
   ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо КАК ФизическоеЛицо,
   ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.НомерЛицевогоСчета КАК НомерЛицевогоСчета,
   ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.Период КАК Период
ИЗ
   РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.СрезПоследних КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних
      ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВременнаяТаблица КАК ВременнаяТаблица
      ПО ЛицевыеСчетаСотрудниковПоЗарплатнымПроектамСрезПоследних.ФизическоеЛицо = ВременнаяТаблица.СотрудникФизическоеЛицо


Проблема в том что если сотрудника уволили и опять приняли назад с внесением нового лицевого счета, то в результате выведет не актуальный номер лицевого счета на момент увольнения, а просто последний актуальный.
Как я понял можно это исправить если написать: РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.СрезПоследних("НаДатуУвольнения"), но как установить этот параметр если я его получаю в предыдущем запросе?

alex0402

Цитата: Geronimo_ от 10 окт 2018, 16:11но как установить этот параметр если я его получаю в предыдущем запросе?

никак!
Нужно в первом запросе
ВЫБРАТЬ
   ДанныеСостоянийСотрудников.Начало КАК Начало,
   ДанныеСостоянийСотрудников.Сотрудник.ФизическоеЛицо КАК СотрудникФизическоеЛицо,
МАКСИМУМ(ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.Период)
ПОМЕСТИТЬ ВременнаяТаблица
ИЗ
   РегистрСведений.ДанныеСостоянийСотрудников КАК ДанныеСостоянийСотрудников
    ЛЕВОЕ Соединение  РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
ПО Период <= ДатаУвольнения
И Физлицо = Физлицо
ГДЕ
   ДанныеСостоянийСотрудников.ДокументОснование ССЫЛКА Документ.Увольнение
{ГДЕ
   (ДанныеСостоянийСотрудников.Начало МЕЖДУ &НачалоПериода И &КонецПериода)}

СГРУППИРОВАТЬ ПО
   ДанныеСостоянийСотрудников.Начало,
   ДанныеСостоянийСотрудников.Сотрудник.ФизическоеЛицо

;


и уже во втором запросе связать по дате и физлицу получить лицевой счет из регистра ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам

З.Ы.
Запрос набросан только, что бы дать саму идею формирования запроса,
синтаксис не верный...
Удачи
Спасибо за Сказать спасибо

Geronimo_


Теги:

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

Рейтинг@Mail.ru

Поиск