Добрый день. Имеется обработка, которая должна сравнивать данные из документа с данными из регистра сведений. Пожалуйста помогите разобраться в данной проблеме.

При выполнении выдает ошибку:

```1c
    {Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1575)}: Значение не является значением объектного типа (Состав)
    Запрос.УстановитьПараметр("ФизическоеЛицо", Объект.Состав.ФизическоеЛицо.Выгрузить());
```

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

    ИначеЕсли

    ИскомыеСтроки = Объект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо) тогда
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    КонецЦикла;
    //Возврат;
    КонецПроцедуры
```
---
немножко неправильно. Вместо ИначеЕсли нужно Иначе. Если так:

```1c
    Пока Выборка.Следующий() Цикл
    Если ТекущийОбъект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо);

    Иначе

    ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    КонецЦикла;
```
---
вместо такого кода, лучше в запросе получите физических лиц из состава и поставьте в условиях Регистра сведений (ГДЕ РС.КадроваяИстория.ФизЛицо В (Выбрать физлицо из Ваш документ Где Вашдокумент = &ВашДокумент))
---
Что такое Объект.Состав ? При отладке какое значение показывает?
---
это пусть к табличной части
---
В обработчике ПередЗаписьюНаСервере обращаться надо к переменной ТекущийОбъект (см. параметры процедуры). Объект там уже недоступен, хотя доступны данные формы.
---
я в программировании новичок, мне сказали что в запросе нужно подгружать данные из документа. я указал <КадроваяИсторияСотрудников.ФизическоеЛицо В (&ФизическоеЛицо)>
---
Просто в этой процедуре в коде вместо Объект надо писать ТекущийОбъект, то есть

```1c
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо"));
```
---
пробовал тогда он не видит объект ФизическоеЛицо

```1c
    {Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1576)}: Поле объекта не обнаружено (ФизическоеЛицо)
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.ФизическоеЛицо.Выгрузить());
```
---
см внимательно как в (6)
---
тоже самое объект не обнаружен, заранее извиняюсь за то что не понимаю, буду благодарен за помощь
---
я правил сообщение после отправки, в общем вот так должно работать

```1c
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо"));
```

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

    ИначеЕсли

    ИскомыеСтроки = Объект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо) тогда
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    КонецЦикла;

    //Возврат;

    КонецПроцедуры
```
---
немножко неправильно. Вместо ИначеЕсли нужно Иначе. Если так:

```1c
    Пока Выборка.Следующий() Цикл
    Если ТекущийОбъект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо);

    Иначе

    ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);

    КонецЕсли;
    КонецЦикла;
    КонецЕсли;

    КонецЦикла;
```
---
Нет там должно быть ИначеЕсли, там проверяется 2 условия
---
Сейчас второе условие - равны ли найденные в табличной части Зарплата по отбору строки некоей переменной ИскомыеСтроки:

```1c
    ИначеЕсли ИскомыеСтроки = Объект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо) Тогда
```

Второе условие у вас проверяется дальше во вложенном блоке Если. Так что все-таки нужно

```1c
    Иначе
    ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
```
 и так далее
---
даже не так, тут же у нас уже ДокументОбъект, так что просто

```1c
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.ВыгрузитьКолонку("ФизическоеЛицо"));
```
---
```1c
    Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.ВыгрузитьКолонку("ФизическоеЛицо"));
    //Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо"));
    Выборка = Запрос.Выполнить().Выбрать();
    пока Выборка.Следующий() Цикл
    Если ТекущийОбъект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда
    Отказ = Истина;
    Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо);

    Иначе

    ИскомыеСтроки = Объект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Лицевой счет не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);
    КонецЕсли;
    КонецЦикла;
    КонецЕсли;
    КонецЦикла;
    КонецПроцедуры
```

все поправил как вы говорили, все равно зацикливается, и такая ситуация происходит что при проведении документа с правильными данными все равно выдает "Сообщение" и документ не проводится
---
проверил через отладку, на сотруднике на ком должна выводится ошибка, выборка работает, на том сотруднике у кого все указано верно выборка "МестоВыплаты" не работает
---
с первой проверкой разобрался, все отлично работает, а вот вторая выдает ошибку

```1c
    {Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1585)}: Слишком много фактических параметров
    ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
```

```1c
    Иначе

    ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
    Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
    Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
    Отказ = Истина;
    Сообщить("Лицевой счет не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);
```
---
```1c
    (55) ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки(Новый Структура("ФизическоеЛицо", Выборка.ФизическоеЛицо));
```
---
спасибо, осталась одна проблема, эта обработка зацикливается вместо одной строки выводит несколько)))
---
Попробуй результат запроса выгрузить в таблицу значений и в отладчике посмотреть - что там и совпадает ли оно с ожидаемым от запроса результатом. Я не вникал, но возможно, там косяки с соединениями.
---
с зацикливанием разобрался, нужно было добивать группировку. вылезла новая проблема в запросе из регистра сведений выбираются последние 2 строки

```1c
    ВЫБРАТЬ
    КадроваяИсторияСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
    КадроваяИсторияСотрудников.Организация КАК Организация,
    КадроваяИсторияСотрудников.Подразделение КАК Подразделение,
    КадроваяИсторияСотрудников.Сотрудник КАК Сотрудник
    ПОМЕСТИТЬ ВТСотрудники
    ИЗ
    РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
    ГДЕ
    КадроваяИсторияСотрудников.ФизическоеЛицо В(&ФизическоеЛицо)

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

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

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

    ////////////////////////////////////////////////////////////­////////////////////
    ВЫБРАТЬ
    МестаВыплатыЗарплатыСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
    ЕСТЬNULL(МестаВыплатыЗарплатыСотрудников.МестоВыплаты, ЕСТЬNULL(МестаВыплатыЗарплатыПодразделений.МестоВыплаты, МестаВыплатыЗарплатыОрганизаций.МестоВыплаты)) КАК МестоВыплаты
    ПОМЕСТИТЬ ВТМестаВыплаты
    ИЗ
    ВТСотрудники КАК ВТСотрудники
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыСотрудников КАК МестаВыплатыЗарплатыСотрудников
    ПО (МестаВыплатыЗарплатыСотрудников.ФизическоеЛицо = ВТСотрудники.ФизическоеЛицо)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыОрганизаций КАК МестаВыплатыЗарплатыОрганизаций
    ПО (МестаВыплатыЗарплатыОрганизаций.Организация = ВТСотрудники.Организация)
    ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.МестаВыплатыЗарплатыПодразделений КАК МестаВыплатыЗарплатыПодразделений
    ПО (МестаВыплатыЗарплатыПодразделений.Подразделение = ВТСотрудники.Подразделение)
    ;

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

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

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