Сравнение объекта в документе с регистром сведений

1. CD_SVEN 23.11.18 12:30 Сейчас в теме
Добрый день. Имеется обработка, которая должна сравнивать данные из документа с данными из регистра сведений. Пожалуйста помогите разобраться в данной проблеме.

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


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

 Пока Выборка.Следующий() Цикл
        Если ТекущийОбъект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда    
            Отказ = Истина;
            Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо);
        
        Иначе
                      
            ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
            Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
                Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
                    Отказ = Истина;
                    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);
                
                КонецЕсли;
        КонецЦикла;
        КонецЕсли;
            
        КонецЦикла;
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
18. user700035_6550355 29 23.11.18 14:46 Сейчас в теме
(1) вместо такого кода, лучше в запросе получите физических лиц из состава и поставьте в условиях Регистра сведений (ГДЕ РС.КадроваяИстория.ФизЛицо В (Выбрать физлицо из Ваш документ Где Вашдокумент = &ВашДокумент))
2. Andr_ 23.11.18 12:50 Сейчас в теме
Что такое Объект.Состав ? При отладке какое значение показывает?
4. CD_SVEN 23.11.18 13:00 Сейчас в теме
(2) это пусть к табличной части
Прикрепленные файлы:
3. antz 23.11.18 12:50 Сейчас в теме
В обработчике ПередЗаписьюНаСервере обращаться надо к переменной ТекущийОбъект (см. параметры процедуры). Объект там уже недоступен, хотя доступны данные формы.
5. CD_SVEN 23.11.18 13:05 Сейчас в теме
(3)я в программировании новичок, мне сказали что в запросе нужно подгружать данные из документа. я указал <КадроваяИсторияСотрудников.ФизическоеЛицо В (&ФизическоеЛицо)>
6. antz 23.11.18 13:07 Сейчас в теме
(5) Просто в этой процедуре в коде вместо Объект надо писать ТекущийОбъект, то есть

Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.Выгрузить().ВыгрузитьКолонку("ФизическоеЛицо"));
7. CD_SVEN 23.11.18 13:08 Сейчас в теме
(6)пробовал тогда он не видит объект ФизическоеЛицо
{Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1576)}: Поле объекта не обнаружено (ФизическоеЛицо)
	Запрос.УстановитьПараметр("ФизическоеЛицо", ТекущийОбъект.Состав.ФизическоеЛицо.Выгрузить());
8. antz 23.11.18 13:09 Сейчас в теме
(7) см внимательно как в (6)
9. CD_SVEN 23.11.18 13:13 Сейчас в теме
(8)тоже самое объект не обнаружен, заранее извиняюсь за то что не понимаю, буду благодарен за помощь
10. antz 23.11.18 13:15 Сейчас в теме
(9) я правил сообщение после отправки, в общем вот так должно работать

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

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

КонецПроцедуры
Показать
15. antz 23.11.18 13:31 Сейчас в теме
(14) немножко неправильно. Вместо ИначеЕсли нужно Иначе. Если так:

 Пока Выборка.Следующий() Цикл
        Если ТекущийОбъект.ЗарплатныйПроект <> Выборка.МестоВыплаты тогда    
            Отказ = Истина;
            Сообщить("Карта не используется!" + Выборка.ФизическоеЛицо);
        
        Иначе
                      
            ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
            Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
                Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
                    Отказ = Истина;
                    Сообщить("Карта не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);
                
                КонецЕсли;
        КонецЦикла;
        КонецЕсли;
            
        КонецЦикла;
Показать
16. CD_SVEN 23.11.18 13:43 Сейчас в теме
(15)Нет там должно быть ИначеЕсли, там проверяется 2 условия
17. antz 23.11.18 13:52 Сейчас в теме
(16) Сейчас второе условие - равны ли найденные в табличной части Зарплата по отбору строки некоей переменной ИскомыеСтроки:

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


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

Иначе                      
            ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
            Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
и так далее
11. antz 23.11.18 13:17 Сейчас в теме
(9) даже не так, тут же у нас уже ДокументОбъект, так что просто

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


все поправил как вы говорили, все равно зацикливается, и такая ситуация происходит что при проведении документа с правильными данными все равно выдает "Сообщение" и документ не проводится
20. CD_SVEN 26.11.18 06:50 Сейчас в теме
(11)проверил через отладку, на сотруднике на ком должна выводится ошибка, выборка работает, на том сотруднике у кого все указано верно выборка "МестоВыплаты" не работает
21. CD_SVEN 26.11.18 10:43 Сейчас в теме
(20)с первой проверкой разобрался, все отлично работает, а вот вторая выдает ошибку
{Документ.ВедомостьНаВыплатуЗарплатыВБанк.Форма.ФормаДокумента.Форма(1585)}: Слишком много фактических параметров
            ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);


Иначе  
                      
            ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки("ФизическоеЛицо", Выборка.ФизическоеЛицо);
            Для каждого ИскомаяСтрока из ИскомыеСтроки Цикл
                Если ИскомаяСтрока.НомерЛицевогоСчета <> Выборка.НомерЛицевогоСчета Тогда
                    Отказ = Истина;
                    Сообщить("Лицевой счет не используется!" + ИскомаяСтрока.НомерЛицевогоСчета);
22. antz 26.11.18 10:57 Сейчас в теме
(55) ИскомыеСтроки = ТекущийОбъект.Зарплата.НайтиСтроки(Новый Структура("ФизическоеЛицо", Выборка.ФизическоеЛицо));
23. CD_SVEN 26.11.18 11:14 Сейчас в теме
(22)спасибо, осталась одна проблема, эта обработка зацикливается вместо одной строки выводит несколько)))
24. antz 26.11.18 11:19 Сейчас в теме
(23) Попробуй результат запроса выгрузить в таблицу значений и в отладчике посмотреть - что там и совпадает ли оно с ожидаемым от запроса результатом. Я не вникал, но возможно, там косяки с соединениями.
25. CD_SVEN 26.11.18 12:11 Сейчас в теме
(24)с зацикливанием разобрался, нужно было добивать группировку. вылезла новая проблема в запросе из регистра сведений выбираются последние 2 строки

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

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

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

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

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

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

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


можете посмотреть пожалуйста
26. antz 26.11.18 12:31 Сейчас в теме
27. CD_SVEN 26.11.18 12:33 Сейчас в теме
(26) регистр ЛицевыеСчетаСотрудниковПоЗарплатнымПроектам, хотя я использую срезпоследних
28. CD_SVEN 26.11.18 12:52 Сейчас в теме
(26) я так понял он выводит 2 строки потому что в одной из них присудствует пустая ячейка
Прикрепленные файлы:
29. CD_SVEN 26.11.18 13:02 Сейчас в теме
(28)как я понимаю необходимо прописать условие что то типо если есть пустое значение то не выводить его
31. antz 26.11.18 13:10 Сейчас в теме
(29) да, говорю же с соединениями что-то.
30. antz 26.11.18 13:10 Сейчас в теме
(27) значит там две последних записи по разным измерениям.
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот