Внешняя печатная форма ЗУП Кадровый перевод

1. user1898973 15.08.24 05:10 Сейчас в теме
Здравствуйте,есть внешняя печатная форма кадровый перевод списком,кадровый перевод.Нужно в нее из начислений вытащить оклад и надбавку за сложность и напряженность труда.В кадровом переводе списком все работает,а вот просто в кадровом переводе выходит только надбавка за сложность и напряженность труда а оклад ставит 0.В чем может быть причина?Прошу подсказки.


Функция ТабличныйДокументТрудовойДоговор(ИмяМакета, МассивОбъектов, ОбъектыПечати, ПараметрыВывода) Экспорт
	
	Макет = ПолучитьМакет(ИмяМакета);
	
	Первый = Истина;
	СсылкаНаОбъект = МассивОбъектов.Получить(0).Ссылка; 	 
	
	ТабДокумент = Новый ТабличныйДокумент;
	ОбластьМакета = Макет.ПолучитьОбласть("Шапка"); 
	
	Запрос = Новый Запрос;
	Запрос.УстановитьПараметр("Ссылка", СсылкаНаОбъект);
	Запрос.УстановитьПараметр("Тип", Перечисления.ТипыКонтактнойИнформации.Адрес);
	Запрос.УстановитьПараметр("Вид", Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации); 
	Запрос.УстановитьПараметр("Дата",СсылкаНаОбъект.Дата);	
	Запрос.УстановитьПараметр("Показатель", "%Вредность%");
	Запрос.УстановитьПараметр("Действие",Перечисления.ДействияСНачислениямиИУдержаниями.Отменить);
	
	Если ТипЗнч(СсылкаНаОбъект)=Тип("ДокументСсылка.КадровыйПереводСписком") Тогда //КадровыйПереводСпискомСотрудники
		
		Запрос.Текст = 		
		"ВЫБРАТЬ
		|	КадровыйПеревод.Сотрудник КАК Сотрудник,
		|	КадровыйПеревод.ФизЛицо КАК ФизическоеЛицо,
		|	КадровыйПеревод.Ссылка.Организация.НаименованиеПолное КАК Организация,
		|	КадровыйПеревод.Ссылка.Организация.ИНН КАК ИНН,
		|	КадровыйПеревод.Ссылка.Организация КАК СсылкаОрганизация,
		|	КадровыйПеревод.ГрафикРаботы КАК ГрафикРаботыСотрудников,
		|	КадровыйПеревод.Должность КАК Должность,
		|	КадровыйПеревод.Ссылка.Организация.ОГРН КАК ОГРН,
		|	КадровыйПеревод.ДатаНачала КАК ДатаНачала,
		|	КадровыйПеревод.ТрудовойДоговорНомер КАК ТрудовойДоговорНомер,
		|	КадровыйПеревод.ТрудовойДоговорДата КАК ТрудовойДоговорДата,
		|	ДокументыФизическихЛиц.Серия КАК Серия,
		|	ДокументыФизическихЛиц.Номер КАК Номер,
		|	ДокументыФизическихЛиц.СрокДействия КАК СрокДействия,
		|	ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
		|	ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
		|	ДокументыФизическихЛиц.Представление КАК Представление,
		|	ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
		|	ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
		|	КадровыйПереводСпискомНачисления2.Начисление КАК Начисление,
		|	КадровыйПереводСпискомНачисления2.Размер КАК Размер,
		|	ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
		|	ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
		|	КонтактнаяИнформация.Представление КАК ЮрАдресОрганизации,
		|	ВЫБОР
		|		КОГДА ЕСТЬNULL(РК.Значение, 0) = 0
		|			ТОГДА 0
		|		ИНАЧЕ ЕСТЬNULL(РК.Значение, 0)
		|	КОНЕЦ КАК РКПроцент
		|ИЗ
		|	(ВЫБРАТЬ
		|		КадровыйПереводСпискомСотрудники.Сотрудник КАК Сотрудник,
		|		КадровыйПереводСпискомСотрудники.Сотрудник.ФизическоеЛицо КАК ФизЛицо,
		|		КадровыйПереводСпискомСотрудники.Ссылка КАК Ссылка,
		|		КадровыйПереводСпискомСотрудники.ИдентификаторСтрокиСотрудника КАК ИдентификаторСтрокиСотрудника,
		|		КадровыйПереводСпискомСотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|		КадровыйПереводСпискомСотрудники.Должность КАК Должность,
		|		КадровыйПереводСпискомСотрудники.ДатаНачала КАК ДатаНачала,
		|		КадровыйПереводСпискомСотрудники.ТрудовойДоговорНомер КАК ТрудовойДоговорНомер,
		|		КадровыйПереводСпискомСотрудники.ТрудовойДоговорДата КАК ТрудовойДоговорДата
		|	ИЗ
		|		Документ.КадровыйПереводСписком.Сотрудники КАК КадровыйПереводСпискомСотрудники
		|	ГДЕ
		|		КадровыйПереводСпискомСотрудники.Ссылка = &Ссылка) КАК КадровыйПеревод
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
		|			ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
		|			ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
		|			ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
		|			ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
		|			ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
		|			ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
		|			ДокументыФизическихЛицСрезПоследних.ВидДокумента КАК ВидДокумента,
		|			ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи
		|		ИЗ
		|			РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних) КАК ДокументыФизическихЛиц
		|		ПО КадровыйПеревод.ФизЛицо = ДокументыФизическихЛиц.Физлицо
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			КадровыйПереводСпискомНачисления.Ссылка КАК Ссылка,
		|			КадровыйПереводСпискомНачисления.ИдентификаторСтрокиСотрудника КАК ИдентификаторСтрокиСотрудника,
		|			КадровыйПереводСпискомНачисления.Начисление КАК Начисление,
		|			КадровыйПереводСпискомНачисления.Размер КАК Размер
		|		ИЗ
		|			Документ.КадровыйПереводСписком.Начисления КАК КадровыйПереводСпискомНачисления
		|		ГДЕ
		|			КадровыйПереводСпискомНачисления.Ссылка = &Ссылка) КАК КадровыйПереводСпискомНачисления2
		|		ПО КадровыйПеревод.ИдентификаторСтрокиСотрудника = КадровыйПереводСпискомНачисления2.ИдентификаторСтрокиСотрудника
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
		|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
		|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаНачала КАК ДатаНачала,
		|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник КАК Сотрудник
		|		ИЗ
		|			РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника.СрезПоследних КАК ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних) КАК ОсновныеДанныеКонтрактаДоговораСотрудника
		|		ПО КадровыйПеревод.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка,
		|			ОрганизацииКонтактнаяИнформация.Представление КАК Представление
		|		ИЗ
		|			Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
		|		ГДЕ
		|			ОрганизацииКонтактнаяИнформация.Тип = &Тип
		|			И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК КонтактнаяИнформация
		|		ПО КадровыйПеревод.Ссылка.Организация = КонтактнаяИнформация.Ссылка
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Сотрудник КАК Сотрудник,
		|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Значение КАК Значение
		|		ИЗ
		|			РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Дата, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних
		|		ГДЕ
		|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Показатель.Наименование ПОДОБНО ""%Вредность%"") КАК РК
		|		ПО КадровыйПеревод.Сотрудник = РК.Сотрудник
		|ИТОГИ ПО
		|	Сотрудник
		|АВТОУПОРЯДОЧИВАНИЕ";
		
	Иначе //Кадровый перевод
		
		Запрос.Текст = 		
			"ВЫБРАТЬ
			|	КадровыйПеревод.Ссылка.Организация.НаименованиеПолное КАК Организация,
			|	КадровыйПеревод.Ссылка.Организация.ИНН КАК ИНН,
			|	КадровыйПеревод.Ссылка.Организация КАК СсылкаОрганизация,
			|	ДокументыФизическихЛиц.Серия КАК Серия,
			|	ДокументыФизическихЛиц.Номер КАК Номер,
			|	ДокументыФизическихЛиц.СрокДействия КАК СрокДействия,
			|	ДокументыФизическихЛиц.КемВыдан КАК КемВыдан,
			|	ДокументыФизическихЛиц.КодПодразделения КАК КодПодразделения,
			|	ДокументыФизическихЛиц.Представление КАК Представление,
			|	ДокументыФизическихЛиц.ВидДокумента КАК ВидДокумента,
			|	ОсновныеДанныеКонтрактаДоговораСотрудника.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
			|	ОсновныеДанныеКонтрактаДоговораСотрудника.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
			|	ДокументыФизическихЛиц.ДатаВыдачи КАК ДатаВыдачи,
			|	КадровыйПеревод.ФизическоеЛицо КАК ФизическоеЛицо,
			|	ВЫБОР
			|		КОГДА ЕСТЬNULL(КадровыйПеревод.Ссылка.ГрафикРаботы, 0) = 0
			|			ТОГДА ГрафикРаботыСотрудников.ГрафикРаботы
			|		ИНАЧЕ КадровыйПеревод.Ссылка.ГрафикРаботы
			|	КОНЕЦ КАК ГрафикРаботыСотрудников,
			|	ВЫБОР
			|		КОГДА ЕСТЬNULL(РК.Значение, 0) = 0
			|			ТОГДА 0
			|		ИНАЧЕ ЕСТЬNULL(РК.Значение, 0)
			|	КОНЕЦ КАК РКПроцент,
			|	КонтактнаяИнформация.Представление КАК ЮрАдресОрганизации,
			|	КадровыйПеревод.Ссылка.Организация.ОГРН КАК ОГРН,
			|	КадровыйПеревод.Сотрудник КАК Сотрудник,
			|	КадровыйПеревод.ДатаНачала КАК ДатаНачала,
			|	КадровыйПеревод.Начисление КАК Начисление,
			|	КадровыйПеревод.Размер КАК Размер,
			|	КадровыйПеревод.Ссылка.Должность КАК Должность
			|ИЗ
			|	(ВЫБРАТЬ ПЕРВЫЕ 1
			|		КадровыйПереводНачисления.Ссылка КАК Ссылка,
			|		КадровыйПереводНачисления.Начисление КАК Начисление,
			|		КадровыйПереводНачисления.Размер КАК Размер,
			|		КадровыйПереводНачисления.Ссылка.Сотрудник КАК Сотрудник,
			|		КадровыйПереводНачисления.Ссылка.ФизическоеЛицо КАК ФизическоеЛицо,
			|		КадровыйПереводНачисления.Ссылка.ДатаНачала КАК ДатаНачала,
			|		КадровыйПереводНачисления.НомерСтроки КАК НомерСтроки
			|	ИЗ
			|		Документ.КадровыйПеревод.Начисления КАК КадровыйПереводНачисления
			|	ГДЕ
			|		КадровыйПереводНачисления.Ссылка = &Ссылка
			|		И (КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%клад%""
			|				ИЛИ КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%плата по часовому тарифу%""
			|				ИЛИ КадровыйПереводНачисления.Начисление.Наименование ПОДОБНО ""%сложность%"")
			|	
			|	УПОРЯДОЧИТЬ ПО
			|		НомерСтроки УБЫВ) КАК КадровыйПеревод
			|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			|			ДокументыФизическихЛицСрезПоследних.Серия КАК Серия,
			|			ДокументыФизическихЛицСрезПоследних.Номер КАК Номер,
			|			ДокументыФизическихЛицСрезПоследних.СрокДействия КАК СрокДействия,
			|			ДокументыФизическихЛицСрезПоследних.КемВыдан КАК КемВыдан,
			|			ДокументыФизическихЛицСрезПоследних.КодПодразделения КАК КодПодразделения,
			|			ДокументыФизическихЛицСрезПоследних.Физлицо КАК Физлицо,
			|			ДокументыФизическихЛицСрезПоследних.Представление КАК Представление,
			|			ДокументыФизическихЛицСрезПоследних.ВидДокумента КАК ВидДокумента,
			|			ДокументыФизическихЛицСрезПоследних.ДатаВыдачи КАК ДатаВыдачи
			|		ИЗ
			|			РегистрСведений.ДокументыФизическихЛиц.СрезПоследних КАК ДокументыФизическихЛицСрезПоследних) КАК ДокументыФизическихЛиц
			|		ПО КадровыйПеревод.ФизическоеЛицо = ДокументыФизическихЛиц.Физлицо
			|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.НомерДоговораКонтракта КАК НомерДоговораКонтракта,
			|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.ДатаДоговораКонтракта КАК ДатаДоговораКонтракта,
			|			ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних.Сотрудник КАК Сотрудник
			|		ИЗ
			|			РегистрСведений.ОсновныеДанныеКонтрактаДоговораСотрудника.СрезПоследних КАК ОсновныеДанныеКонтрактаДоговораСотрудникаСрезПоследних) КАК ОсновныеДанныеКонтрактаДоговораСотрудника
			|		ПО КадровыйПеревод.Сотрудник = ОсновныеДанныеКонтрактаДоговораСотрудника.Сотрудник
			|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			|			ГрафикРаботыСотрудниковСрезПоследних.Сотрудник КАК Сотрудник,
			|			ГрафикРаботыСотрудниковСрезПоследних.ГрафикРаботы КАК ГрафикРаботы
			|		ИЗ
			|			РегистрСведений.ГрафикРаботыСотрудников.СрезПоследних(&Дата, ) КАК ГрафикРаботыСотрудниковСрезПоследних) КАК ГрафикРаботыСотрудников
			|		ПО КадровыйПеревод.Сотрудник = ГрафикРаботыСотрудников.Сотрудник
			|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Сотрудник КАК Сотрудник,
			|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Значение КАК Значение
			|		ИЗ
			|			РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(&Дата, ) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних
			|		ГДЕ
			|			ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСр­езПоследних.Показатель.Наименование ПОДОБНО ""%Вредность%"") КАК РК
			|		ПО КадровыйПеревод.Сотрудник = РК.Сотрудник
			|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
			|			ОрганизацииКонтактнаяИнформация.Ссылка КАК Ссылка,
			|			ОрганизацииКонтактнаяИнформация.Представление КАК Представление
			|		ИЗ
			|			Справочник.Организации.КонтактнаяИнформация КАК ОрганизацииКонтактнаяИнформация
			|		ГДЕ
			|			ОрганизацииКонтактнаяИнформация.Тип = &Тип
			|			И ОрганизацииКонтактнаяИнформация.Вид = &Вид) КАК КонтактнаяИнформация
			|		ПО КадровыйПеревод.Ссылка.Организация = КонтактнаяИнформация.Ссылка
			|ИТОГИ ПО
			|	Сотрудник
			|АВТОУПОРЯДОЧИВАНИЕ";
		
	КонецЕсли;
	
	Валюта = Справочники.Валюты.НайтиПоКоду("643");
	
	ВыборкаСотрудники = Запрос.Выполнить().Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам,"Сотрудник");
	
	Пока ВыборкаСотрудники.Следующий() Цикл
		
		Если Не Первый 	Тогда 
			ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц(); 
		КонецЕсли;
		
		ВыборкаСотрудник = ВыборкаСотрудники.Выбрать(); 
		Оклад=0;
		Сложность = 0;
		Пока ВыборкаСотрудник.Следующий() Цикл 			
				
			Если Найти(ВыборкаСотрудник.Начисление,"клад")  ИЛИ Найти(ВыборкаСотрудник.Начисление,"плата по часовому тарифу") Тогда 
					Оклад = ВыборкаСотрудник.Размер;
				КонецЕсли;					
				
		Если Найти(ВыборкаСотрудник.Начисление,"сложность") Тогда
		     Сложность = ВыборкаСотрудник.Размер;
		КонецЕсли;
				
			ОбластьМакета.Параметры.Заполнить(ВыборкаСотрудник);
			ОбластьМакета.Параметры.ТрудовойДоговор = ""+ВыборкаСотрудник.НомерДоговораКонтракта+" от "+Формат(ВыборкаСотрудник.ДатаДоговораКонтракта,"ДЛФ=Д")+"г.";
						
			//Город Организации
			АдресаОрганизаций  = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресаОрганизаций(ВыборкаСотрудник.СсылкаОрганизация);
			ОписаниеЮридическогоАдреса = УправлениеКонтактнойИнформациейЗарплатаКадры.АдресОрганизации(АдресаОрганизаций, ВыборкаСотрудник.СсылкаОрганизация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
			СтруктураАдресаОрганизации = ЗарплатаКадры.СтруктураАдресаИзXML(ОписаниеЮридическогоАдреса.ЗначенияПолей, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации);
			ОбластьМакета.Параметры.Должность = ВыборкаСотрудник.Должность;
			ОбластьМакета.Параметры.Оклад = Оклад;
			ОбластьМакета.Параметры.Сложность = Сложность; 
			ОбластьМакета.Параметры.ОкладПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Оклад,Валюта);
			ОбластьМакета.Параметры.РКПроцент = ВыборкаСотрудник.РКПроцент;			
			ОбластьМакета.Параметры.ФИОРаботника = ВыборкаСотрудник.ФизическоеЛицо; 	
			ПаспортФИО = Строка(ВыборкаСотрудник.ВидДокумента)
				+", серия "
				+Строка(ВыборкаСотрудник.Серия)
				+", № "+Строка(ВыборкаСотрудник.Номер)
				+", выдан: "
				+Строка(Формат(ВыборкаСотрудник.ДатаВыдачи,"ДЛФ=Д"))
				+" "+Строка(ВыборкаСотрудник.КемВыдан)
				+", "
				+Строка(ВыборкаСотрудник.КодПодразделения);
			ОбластьМакета.Параметры.ПаспортФИО = ПаспортФИО; 	
		
		КонецЦикла;
					
		ТабДокумент.Вывести(ОбластьМакета); 
		
		Первый = Ложь; 
		

	КонецЦикла;
	Возврат ТабДокумент;     
	
Конецфункции
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. puzo50 15.08.24 07:34 Сейчас в теме
может из-за того, что "первые 1" ?
user1898973; +1 Ответить
3. user1898973 15.08.24 14:51 Сейчас в теме
Большое спасибо,все сработало
4. Vinzor 107 15.08.24 21:30 Сейчас в теме
Весь метод не читал, но присмотритесь к этому ЗУП-методу

ТекНачисления = КадровыйУчетРасширенный.ТекущиеНачисленияСотрудника(Сотрудник, ДатаПолученияДанных,,ложь);

Какие параметры передавать - разберётесь.
Получите назад коллекцию в виде соответствия, где ключ = Вид начисления, значение - сложная структура со всевозможными данными.
Обходите в цикле и тяните всё, что надо

В чем плюс этого: с релизами способы хранения данных в конфигурации о действующих начислениях могут меняться, и ваш оригинальный запрос и обход "упадут".
Метод, что я показал, упадёт самым последним :)
user1898973; +1 Ответить
5. user1898973 17.08.24 12:31 Сейчас в теме
(4) Спасибо за информацию
Оставьте свое сообщение

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