Добрый день. Будьте добры подскажите пожалуйста, Имеется регистр сведений ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам он не непериодический, в него попадают записи о том какие есть карты у сотрудников, подскажите как с помощью запроса выбрать последнюю карту сотрудников??? У меня через запрос он выбирает обе карты.

```1c
    Запрос.Текст = ("ВЫБРАТЬ
    | КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
    | КадроваяИсторияСотрудников.Организация КАК Организация,
    | КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    | КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник
    |ПОМЕСТИТЬ ВТСотрудники
    |ИЗ
    | РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
    |ГДЕ
    | КадроваяИсторияСотрудников.ФизическоеЛицо В(&ФизическоеЛицо)
    |
    |СГРУППИРОВАТЬ ПО
    | КадроваяИсторияСотрудников.ФизическоеЛицо,
    | КадроваяИсторияСотрудников.Подразделение,
    | КадроваяИсторияСотрудников.Сотрудник,
    | КадроваяИсторияСотрудников.Организация
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | МАКСИМУМ(ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета) КАК ДатаОткрытияЛицевогоСчета
    |ПОМЕСТИТЬ ВТЛицевыеСчета
    |ИЗ
    | ВТСотрудники КАК ВТСотрудники
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ПО ВТСотрудники.ФизическоеЛицо = ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |
    |СГРУППИРОВАТЬ ПО
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТСотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
    | &текущийобъектЗарплатныйпроект КАК ЗП,
    | ВТЛицевыеСчета.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета
    |ИЗ
    | ВТСотрудники КАК ВТСотрудники
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТЛицевыеСчета КАК ВТЛицевыеСчета
    | ПО ВТСотрудники.ФизическоеЛицо = ВТЛицевыеСчета.ФизическоеЛицо
    |
    |СГРУППИРОВАТЬ ПО
    | ВТСотрудники.ФизическоеЛицо,
    | ВТЛицевыеСчета.ЗарплатныйПроект,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета");
```
---
Какую запись считать последней? Ту в которой самая поздняя дата открытия счета? А если есть несколько счетов открытых в одну дату?

```1c
    "ВЫБРАТЬ
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета
    |ПОМЕСТИТЬ ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |ИЗ
    | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | МАКСИМУМ(ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета) КАК ДатаОткрытияЛицевогоСчета
    |ПОМЕСТИТЬ ВТ_ПоследнийЛС
    |ИЗ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |
    |СГРУППИРОВАТЬ ПО
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета
    |ИЗ
    | ВТ_Сотрудники КАК ВТ_Сотрудники
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследнийЛС КАК ВТ_ПоследнийЛС
    | ПО ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо = ВТ_ПоследнийЛС.ФизическоеЛицо
    | И ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета = ВТ_ПоследнийЛС.ДатаОткрытияЛицевогоСчета
    | ПО ВТ_Сотрудники.ФизическоеЛицо = ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
```
---
Скорее всего ЗарплатныйПроект - это измерение, следовательно и Максимум отрабатывает по каждому измерению. Попробуйте в запросе, где формируется ВТЛицевыеСчета убрать выбор ЗарплатногоПроекта, оставив только максимум по дате и физическое лицо, а потом уже к этой таблице добавить зарплатный проект связав по дата = дата и физлицо = физлицо
---
спасибо за ответ, но все равно по некоторым сотрудника запрос выбирает несколько карт

```1c
    &НаСервере
    Процедура ПередЗаписьюНаСервере(Отказ, ТекущийОбъект, ПараметрыЗаписи)
    Запрос = Новый Запрос;
    Запрос.Текст = ("ВЫБРАТЬ
    | КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
    | КадроваяИсторияСотрудников.Организация КАК Организация,
    | КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    | КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник
    |ПОМЕСТИТЬ ВТСотрудники
    |ИЗ
    | РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
    |ГДЕ
    | КадроваяИсторияСотрудников.ФизическоеЛицо В(&ФизическоеЛицо)
    |
    |СГРУППИРОВАТЬ ПО
    | КадроваяИсторияСотрудников.ФизическоеЛицо,
    | КадроваяИсторияСотрудников.Подразделение,
    | КадроваяИсторияСотрудников.Сотрудник,
    | КадроваяИсторияСотрудников.Организация
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | МАКСИМУМ(ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета) КАК ДатаОткрытияЛицевогоСчета,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо
    |ПОМЕСТИТЬ ВТЛицевыеСчета
    |ИЗ
    | ВТСотрудники КАК ВТСотрудники
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ПО ВТСотрудники.ФизическоеЛицо = ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |
    |СГРУППИРОВАТЬ ПО
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета
    |ПОМЕСТИТЬ ВТЗп
    |ИЗ
    | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТЛицевыеСчета КАК ВТЛицевыеСчета
    | ПО ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета = ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета
    | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо = ВТЛицевыеСчета.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТСотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
    | &текущийобъектЗарплатныйпроект КАК ЗП,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ВТЗп.ЗарплатныйПроект КАК ЗарплатныйПроект
    |ИЗ
    | ВТСотрудники КАК ВТСотрудники
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТЛицевыеСчета КАК ВТЛицевыеСчета
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТЗп КАК ВТЗп
    | ПО ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета = ВТЗп.ДатаОткрытияЛицевогоСчета
    | ПО ВТСотрудники.ФизическоеЛицо = ВТЛицевыеСчета.ФизическоеЛицо
    |
    |СГРУППИРОВАТЬ ПО
    | ВТСотрудники.ФизическоеЛицо,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета,
    | ВТЗп.ЗарплатныйПроект");
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.ВыгрузитьКолонку("ФизическоеЛицо"));
    Запрос.УстановитьПараметр("ТекущийОбъектЗарплатныйПроект", ТекущийОбъект.ЗарплатныйПроект);
    Выборка = Запрос.Выполнить().Выбрать();
    пока Выборка.Следующий() Цикл

    Если Выборка.ЗарплатныйПроект <> Выборка.ЗП тогда
    Отказ = истина;
    Сообщить("Проверьте зарплатный проект сотрудника!" + " " + Выборка.ФизическоеЛицо + " " + Выборка.ЗарплатныйПроект);
    КонецЕсли;
    КонецЦикла;
```
---
выбираем 65 сотрудников, по ним этот запрос выбирает 162 карты, хотя должен 65. 65 актуальных карт
---
В таблице ВТЗп поменяйте левое соединение на правое.
---
количество карт уменьшилось до 79, все равно по некоторым сотрудника он выбирает по 2 карты
---
а сколько записей в втсотрудники?
---
65 человек
---
запрос выбирает сотрудников из документа, текущегообъекта, в документе таблица в ней 65 человек
---
просто я смотрю и там запрос выбирает данные не из документа, а из регистра с отбором по физлицу, поэтому и возникло предположение, что уже в первой Вт данных больше, чем надо
---
может быть я ошибся, суть такова открываем документ в нем список сотрудников в таблице, при проведении документа нужно сверять зарплатный проект из документа с зарплатным проектом в регистре сведений, так как у людей меняется иногда он, в регистре 2-3 записи по одному сотруднику, нужно что бы обработка сверяла только с последней записью по сотруднику
---
Так может добавить все-таки связь по зарплатному проекту? В итоговом запросе карты могут двоиться, если есть одинаковые даты открытия.
---
Ну как я вижу эту ситуацию. Есть РС "КадроваяИсторияСотрудников". В нем есть измерение сотрудник. Далее - сотрудник обычно связан с физическим лицом, при этом у одного физического лица может быть несколько сотрудников, например совместители. Следовательно, когда устанавливается отбор по физическому лицу, вероятнее всего, в запросе оказывается на 65 записей, как планировалось, а чуть больше, в вашем случае 79. В данном случае правильнее в 1-м запросе, где формируется ВТСотрудники, устанавливать отбор не по физлицу, а по сотруднику. Но вот смотрю я на запрос и не могу понять зачем вообще вам первый запрос? Ведь отбор по физлицу можно установить в ВТЛицевыеСчета, а дальше уже оставить как есть.
---
наверняка в этой же конфе уже есть решение, пройдись поиском
---
решения нету в ведомости добавляют сотрудников в ручную не через кнопку заполнить, бывают такие ошибки что в в газпромовскую ведомость добавляют сотрудника с карточкой ВТБ, и на оборот
---
Еще раз: если у вас в документе есть сотрудник и зарплатный проект, выбирайте с отбором по зарплатному проекту.
---
У вас на картинке есть колонка дата открытия лицевого счета. - судя по всему вам нужна последняя открытая карта. запрос сортируете по убыванию и берете первый... в остальное не вникал но список карт можно получить таким способом.
---
таким образом он выбирает только одного сотрудника а не то кол-во какое в документе
---
в запросе не хватает опции ИМЕЮЩИЕ
---
я даже не писал какой именно запрос, очевидно что вам нужна таблица с сотрудниками имеющие лицевые счета с отбором по 1 лицевому счету... это была идея, а не ее решение. ;)
---
```1c
    |ВЫБРАТЬ
    | МАКСИМУМ(ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета) КАК ДатаОткрытияЛицевогоСчета,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо
    |ПОМЕСТИТЬ ВТЛицевыеСчета
    |ИЗ
    | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |ГДЕ ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо В (&ФизическиеЛица)
    |
    |СГРУППИРОВАТЬ ПО
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета
    |ПОМЕСТИТЬ ВТЗп
    |ИЗ
    | ВТЛицевыеСчета КАК ВТЛицевыеСчета
    | ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ПО ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета = ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета
    | И ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо = ВТЛицевыеСчета.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТЛицевыеСчета.ФизическоеЛицо КАК ФизическоеЛицо,
    | &текущийобъектЗарплатныйпроект КАК ЗП,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ВТЗп.ЗарплатныйПроект КАК ЗарплатныйПроект
    |ИЗ
    | ВТЛицевыеСчета КАК ВТЛицевыеСчета
    | ЛЕВОЕ СОЕДИНЕНИЕ ВТЗп КАК ВТЗп
    | ПО ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета = ВТЗп.ДатаОткрытияЛицевогоСчета
    |
    |СГРУППИРОВАТЬ ПО
    | ВТЛицевыеСчета.ФизическоеЛицо,
    | ВТЛицевыеСчета.ДатаОткрытияЛицевогоСчета,
    | ВТЗп.ЗарплатныйПроект");
```

может так сработает?
---
Какую запись считать последней? Ту в которой самая поздняя дата открытия счета? А если есть несколько счетов открытых в одну дату?

```1c
    "ВЫБРАТЬ
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета
    |ПОМЕСТИТЬ ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |ИЗ
    | РегистрСведений.ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | МАКСИМУМ(ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета) КАК ДатаОткрытияЛицевогоСчета
    |ПОМЕСТИТЬ ВТ_ПоследнийЛС
    |ИЗ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    |
    |СГРУППИРОВАТЬ ПО
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
    |;
    |
    |////////////////////////////////////////////////////////////­////////////////////
    |ВЫБРАТЬ
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо КАК ФизическоеЛицо,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ЗарплатныйПроект КАК ЗарплатныйПроект,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета КАК ДатаОткрытияЛицевогоСчета,
    | ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.НомерЛицевогоСчета КАК НомерЛицевогоСчета
    |ИЗ
    | ВТ_Сотрудники КАК ВТ_Сотрудники
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам КАК ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам
    | ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_ПоследнийЛС КАК ВТ_ПоследнийЛС
    | ПО ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо = ВТ_ПоследнийЛС.ФизическоеЛицо
    | И ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ДатаОткрытияЛицевогоСчета = ВТ_ПоследнийЛС.ДатаОткрытияЛицевогоСчета
    | ПО ВТ_Сотрудники.ФизическоеЛицо = ВТ_ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам.ФизическоеЛицо
```
---
да самую последнюю, счетов открытых в одну дату нету и не будет не когда
---
Если необходимо для сотрудника найти запись с самой поздней датой открытия счета и ситуаций когда у одного сотрудника есть более одной записи с одинаковой датой открытия счета нет, то (22)
---
спасибо огромное, помогло