Документ ПриемНаРаботуСотрудника - формирование ПФ Контракт (Трудовой договор)

1. Alex_BLR 8 01.12.19 11:25 Сейчас в теме
Добрый день! Имеется следующая внешняя обработка которая в документе ПриемНаРаботуСотрудника формирует ПФ Контракт (Трудовой договор) нанимателя с сотрудником.

Необходима помощь в выводе на ПФ следующих значений:
1) Значение Тарифная ставка (оклад): 809.4 - необходимо вывести сумму которая станет на этом месте, если в таблице Повышение тарифной ставки удалить (15% По декрету №29) (скрин 1-2)
2) Часовая тарифная ставка: 4.84 - вывести сумму без повышения. (скрин 1-2)

В самом документе ПриемНаРаботуСотрудника значения этих двух строчек находятся под надписью НадписьСтавки, код этого фрагмента:
Процедура ОбновлениеОтображения()
	ЗаполнитьЗначенияСвойств(СтруктураКоэффициентов, ЭтотОбъект);
	СтруктураКоэффициентов.ТарифнаяСтавка1Разряда = ТС1Разряда;
	СтруктураКоэффициентов.КоэффициентЕТС = РазрядЕТС.Коэффициент;
	СтруктураКоэффициентов.Ставка = ЗанимаемыхСтавок;
	Для ААА = 1 По 15 Цикл
		
		СтруктураКоэффициентов["К"+ААА] = 0;
		
	КонецЦикла;
	Для Каждого Стр Из ПовышенияТарифнойСтавки Цикл
		Если ЗначениеЗаполнено(Стр.ПовышениеТарифнойСтавки) Тогда
			СтруктураКоэффициентов["К"+Стр.ПовышениеТарифнойСтавки.Код] = Стр.Размер;
		КонецЕсли;
	КонецЦикла;
	Оклад = ПроведениеРасчетов.ПолучитьМесячнуюСтавкуПоСтруктуре(СтруктураКоэффициентов);
	Если СпособРасчета = Перечисления.СпособыРасчета.Повременная ИЛИ
		СпособРасчета = Перечисления.СпособыРасчета.ПовременноПремиальная  Тогда
		
		Если ИспользуетМесячнуюСтавку Тогда
			ЧасоваяСтавка = "нет";
		Иначе
			ЧасоваяСтавка = ПроведениеРасчетов.ПолучитьЧасовуюТарифнуюСтавкуПоСтруктуре(ПроведениеРасчетов.ПрочитатьСреднемесячнуюНормуЧасов(ДатаПриема), СтруктураКоэффициентов);
		КонецЕсли;
		
	ИначеЕсли СпособРасчета = Перечисления.СпособыРасчета.Сдельная ИЛИ
		СпособРасчета = Перечисления.СпособыРасчета.СдельноПремиальная Тогда
		ЧасоваяСтавка = ПроведениеРасчетов.ПолучитьЧасовуюТарифнуюСтавкуПоСтруктуре(ПроведениеРасчетов.ПрочитатьСреднемесячнуюНормуЧасов(ДатаПриема), СтруктураКоэффициентов);
	Иначе
		ЧасоваяСтавка = "нет";
	КонецЕсли;
	
	ЧасоваяТарифнаяСтавкаПечать =   ЧасоваяСтавка;
	ОкладПечать = Оклад;
	ЭлементыФормы.НадписьСтавки.Заголовок = 	"Тарифная ставка (оклад):		"+Оклад+ Символы.ПС+Символы.ПС+
												"Часовая тарифная ставка:		"+ЧасоваяСтавка;//+ Символы.ПС+
	ЭлементыФормы.НадписьТН.Заголовок = СокрЛП(ФизЛицо.Код);
	
	ЭлементыФормы.НадписьКоэф.Заголовок 	=	"К: " + Формат(РазрядЕТС.Коэффициент, "ЧДЦ=3");
КонецПроцедуры
Показать


Код самой внешней обработки:
Функция  ПолучитьТабДок( СсылкаНаОбъект, ДополнительныеПараметры=неопределено)
	
	ТабДокумент = Новый ТабличныйДокумент;
	ТабДокумент.ИмяПараметровПечати ="24072018";
	Макет = ПолучитьМакет("Макет");
	ДанныеОбъекта = Новый Структура;
		
	ДанныеФизЛица 					= ОбщегоНазначения.ДанныеФизЛица(СсылкаНаОбъект.Организация,СсылкаНаОбъект.Физлицо,СсылкаНаОбъект.Дата);
 	ОтветственныеЛицаОрганизаций 	= РегламентированнаяОтчетность.ОтветственныеЛицаОрганизаций(СсылкаНаОбъект.Организация,СсылкаНаОбъект.Дата,,Истина);

	ДанныеОбъекта = ОбщегоНазначенияЛокализация.ПолучитьРеквизитыВОРД(ДанныеОбъекта,СсылкаНаОбъект.ФизЛицо,СсылкаНаОбъект.Дата,ДанныеФизЛица.Должность,СсылкаНаОбъект.ПодразделениеОрганизации);
	//ЗаполнитьЗначенияСвойств(ДанныеОбъекта,Результат);
	
	ДанныеОбъекта.Вставить("ФИОДир");
	ДанныеОбъекта.Вставить("Контракт");
	ДанныеОбъекта.Вставить("ОснованиеПриема");
	ДанныеОбъекта.Вставить("СистемаОплаты");
	ДанныеОбъекта.Вставить("ДатаПлюсТриМесяца");
	ДанныеОбъекта.Вставить("Ответственный");
	ДанныеОбъекта.Вставить("РазрядЕТС");
	ДанныеОбъекта.Вставить("ТелефонПользователя");
	ДанныеОбъекта.вставить("Год",Формат(СсылкаНаОбъект.Дата, "ДФ=yyyy"));
	ДанныеОбъекта.Вставить("ИспСрок");
	ДанныеОбъекта.Вставить("ДатаПриема",Формат(СсылкаНаОбъект.ДатаПриема,"ДЛФ=ДД"));
	ДанныеОбъекта.Вставить("ВидЗанятости");
	ДанныеОбъекта.Вставить("ЗанимаемыхСтавок");
	ДанныеОбъекта.Вставить("ДоплатаЗаКонтракт"); 
	ДанныеОбъекта.Вставить("ПовышениеТарифнойСтавкиПроцент"); 
	ДанныеОбъекта.Вставить("ПовышениеТарифнойСтавкиПроцентНазвание");	
	ДанныеОбъекта.Вставить("ЧасоваяСтавка");	
	ДанныеОбъекта.Вставить("Оклад");	
	
	
	
	//СРОК КОНТРАКТА	
	Если СсылкаНаОбъект.Контракт Тогда 
		КолЛетСтр		= ЧислоПрописью(СсылкаНаОбъект.КонтрактЛет, "L=ru_RU", "год,года,лет, м,,,,, 0");
		КолЛетПрописью	= ЧислоПрописью(СсылкаНаОбъект.КонтрактЛет, "L=ru_RU", ",,,,,,,, 0");
		ЛетСтр 	    	= СтрЗаменить(КолЛетСтр, КолЛетПрописью, "");
		КонтрЛет 		= Строка(СсылкаНаОбъект.КонтрактЛет)+" "+ ЛетСтр;
		//Результат.Вставить("КонтрактЛет",КонтрЛет);
		////////////////////////////////////////////////////////////­///////////////////////////////// 				
		ДанныеОбъекта.Контракт = "сроком на " + КонтрЛет + " с " + Формат(СсылкаНаОбъект.ДатаПриема,"ДЛФ=ДД")+ " по " + Формат(СсылкаНаОбъект.КонтрактПо,"ДЛФ=ДД")+ " включительно"	
	КонецЕсли;
	
	ДанныеОбъекта.ДатаПлюсТриМесяца = Формат(ДобавитьМесяц(СсылкаНаОбъект.ДатаПриема,3),"ДФ=dd.MM.yyyy"); 
	
	//СРОК ИСПЫТАТЕЛЬНОГО СРОКА	
	Если СсылкаНаОбъект.Контракт Тогда     // контракт заменить на нужное значение
		//КолЛетСтр		= ЧислоПрописью(СсылкаНаОбъект.КонтрактЛет, "L=ru_RU", "год,года,лет, м,,,,, 0");
		//КолЛетПрописью	= ЧислоПрописью(СсылкаНаОбъект.КонтрактЛет, "L=ru_RU", ",,,,,,,, 0");
		//ЛетСтр 	    	= СтрЗаменить(КолЛетСтр, КолЛетПрописью, "");
		//КонтрЛет 		= Строка(СсылкаНаОбъект.КонтрактЛет)+" "+ ЛетСтр;
		//Результат.Вставить("КонтрактЛет",КонтрЛет);
		////////////////////////////////////////////////////////////­///////////////// 				
		ДанныеОбъекта.ИспСрок = "с испытательным сроком 3 месяца" + " с " + Формат(СсылкаНаОбъект.ДатаПриема,"ДЛФ=ДД")+ " по " + Формат(ДобавитьМесяц(СсылкаНаОбъект.ДатаПриема,3),"ДЛФ=ДД")	
	КонецЕсли;
		
	Если ЗначениеЗаполнено(СсылкаНаОбъект.РазрядЕТС) Тогда 
		ДанныеОбъекта.РазрядЕТС = СсылкаНаОбъект.РазрядЕТС.Разряд + " разряда";
	КонецЕсли;
	
	ДанныеОбъекта.ФИОДир 		= ОтветственныеЛицаОрганизаций.Руководитель;
	//ДанныеОбъекта.Ответственный = СокрЛП(СсылкаНаОбъект.Ответственный);
	 	 
	//ИДЕТ ПЕРЕИМЕНОВАНИЕ ВИДОВ ЗАНЯТОСТИ
	Если СсылкаНаОбъект.ВидЗанятости = Перечисления.ВидыЗанятостиВОрганизации.ОсновноеМестоРаботы Тогда
		ДанныеОбъекта.ВидЗанятости = "основной работе";	
	ИначеЕсли СсылкаНаОбъект.ВидЗанятости = Перечисления.ВидыЗанятостиВОрганизации.ВнутреннееСовместительство Тогда
		ДанныеОбъекта.ВидЗанятости = "внутреннему совместительству";
	ИначеЕсли СсылкаНаОбъект.ВидЗанятости = Перечисления.ВидыЗанятостиВОрганизации.Совместительство Тогда
		ДанныеОбъекта.ВидЗанятости = "внешнему совместительству";	
	КонецЕсли;	
		
	//ИДЕТ ПЕРЕИМЕНОВАНИЕ СИСТЕМЫ ОПЛАТЫ ТРУДА
	Если СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.Сдельная Тогда
		ДанныеОбъекта.СистемаОплаты = "сдельно-премиальная";
	ИначеЕсли СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.СдельноПремиальная Тогда
		ДанныеОбъекта.СистемаОплаты = "сдельно-премиальная";
	ИначеЕсли СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.Повременная Тогда
		ДанныеОбъекта.СистемаОплаты = "повременно-премиальная";
	ИначеЕсли СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.ПовременноПремиальная Тогда
		ДанныеОбъекта.СистемаОплаты = "повременно-премиальная";
	ИначеЕсли СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.Оклад Тогда
		ДанныеОбъекта.СистемаОплаты = "оклад";
	КонецЕсли;
		
	//ВЫВОД % ПОВЫШЕНИЯ ТАРИФНОЙ СТАВКИ (ОКЛАДА)	
	Для Каждого Строка Из СсылкаНаОбъект.ПовышенияТарифнойСтавки Цикл 
		
		Если Строка.ПовышениеТарифнойСтавки = Справочники.ВидыПовышенийТарифнойСтавки.Контракт Тогда 
			ДанныеОбъекта.ДоплатаЗаКонтракт = Строка.Размер; 	
		Иначе
			ДанныеОбъекта.ПовышениеТарифнойСтавкиПроцент = Строка.Размер;
			ДанныеОбъекта.ПовышениеТарифнойСтавкиПроцентНазвание = НРег(Строка.ПовышениеТарифнойСтавки) + "."; 
		КонецЕсли;
	
	КонецЦикла;
		
	Область = Макет.ПолучитьОбласть("Шапка1");
	Область.Параметры.Заполнить(ДанныеОбъекта);
	ТабДокумент.Вывести(Область);
	
	//ВЫВОД ОБЛАСТИ ЗАНИМАЕМЫХ СТАВОК	
	Если СсылкаНаОбъект.ЗанимаемыхСтавок < 1.00 тогда	
		ДанныеОбъекта.ЗанимаемыхСтавок = "на условиях неполного рабочего времени (неполный рабочий день, " + СсылкаНаОбъект.ЗанимаемыхСтавок + " ставки).";		
		Область2 = Макет.ПолучитьОбласть("ЗанимаемыеСтавки");
		Область2.Параметры.Заполнить(ДанныеОбъекта);
		ТабДокумент.Вывести(Область2);
	КонецЕсли;
	
	Если ЗначениеЗаполнено(СсылкаНаОбъект.ДатаПриема) И ЗначениеЗаполнено(СсылкаНаОбъект.ТарифнаяСтавка1Разряда) Тогда
		ТС1Разряда = РегистрыСведений.РазмерТарифныхСтавок.ПолучитьПоследнее(СсылкаНаОбъект.ДатаПриема, Новый Структура("ТарифныйРазряд", СсылкаНаОбъект.ТарифнаяСтавка1Разряда)).Размер;
		Если ТС1Разряда = 0 Тогда
			ТС1Разряда = РегистрыСведений.РазмерТарифныхСтавок.ПолучитьПоследнее(ОбщегоНазначения.ПолучитьРабочуюДату(), Новый Структура("ТарифныйРазряд", СсылкаНаОбъект.ТарифнаяСтавка1Разряда)).Размер;	
		КонецЕсли;
	Иначе
		ТС1Разряда = 0;
	КонецЕсли;
	
	СтруктураКоэффициентов = Новый Структура("ТарифнаяСтавка1Разряда, КоэффициентЕТС, КоэфТехнВидовРабот, К1, К2, К3, К4, К5, К6, К7, К8, К9, К10, К11, К12, К13, К14, К15, Ставка", 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0);
	ЗаполнитьЗначенияСвойств(СтруктураКоэффициентов, СсылкаНаОбъект);
	СтруктураКоэффициентов.ТарифнаяСтавка1Разряда = ТС1Разряда;
	СтруктураКоэффициентов.КоэффициентЕТС = СсылкаНаОбъект.РазрядЕТС.Коэффициент;
	СтруктураКоэффициентов.Ставка = СсылкаНаОбъект.ЗанимаемыхСтавок;
	Для ААА = 1 По 15 Цикл
		
		СтруктураКоэффициентов["К"+ААА] = 0;
		
	КонецЦикла;
	
	Для Каждого Стр Из СсылкаНаОбъект.ПовышенияТарифнойСтавки Цикл
		Если ЗначениеЗаполнено(Стр.ПовышениеТарифнойСтавки) Тогда
			СтруктураКоэффициентов["К"+Стр.ПовышениеТарифнойСтавки.Код] = Стр.Размер;
		КонецЕсли;
	КонецЦикла;
	
	
	//ДОДЕЛАТЬ, ЕСЛИ РАЗДЕЛ РазделШтатногоРасписания СЛУЖАЩИЕ выводить - (1), ЕСЛИ РАБОЧИЕ - (2)
	
	//ВЫВОД СУММЫ ОКЛАДА С ПОВЫШЕНИЕМ ДЛЯ СЛУЖАЩИХ (1)
	Оклад = ПроведениеРасчетов.ПолучитьМесячнуюСтавкуПоСтруктуре(СтруктураКоэффициентов);
	ДанныеОбъекта.Оклад = СтрЗаменить(Оклад,",", " руб. ") + " коп.";
	
	//ВЫВОД ЧАСОВОЙ ТАРИФНОЙ СТАВКИ (8.2 +8.3 (процент от п.8.2)+8.4 (процент от пункта 8.2)) (2)
	ЧасоваяСтавка = ПроведениеРасчетов.ПолучитьЧасовуюТарифнуюСтавкуПоСтруктуре(ПроведениеРасчетов.ПрочитатьСреднемесячнуюНормуЧасов(СсылкаНаОбъект.ДатаПриема), СтруктураКоэффициентов);
	Если НЕ ЧасоваяСтавка  = "нет" Тогда
		ДанныеОбъекта.ЧасоваяСтавка = СтрЗаменить(ЧасоваяСтавка,",", " руб. ") + " коп.";
	 КонецЕсли;
	
	//Если СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.Повременная ИЛИ
	//	 СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.ПовременноПремиальная  Тогда
	//	 ЧасоваяСтавка = ПроведениеРасчетов.ПолучитьЧасовуюТарифнуюСтавкуПоСтруктуре(ПроведениеРасчетов.ПрочитатьСреднемесячнуюНормуЧасов(СсылкаНаОбъект.ДатаПриема), СтруктураКоэффициентов);
	// ИначеЕсли 
	//	 СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.Сдельная ИЛИ
	//	 СсылкаНаОбъект.СпособРасчета = Перечисления.СпособыРасчета.СдельноПремиальная Тогда
	//	 ЧасоваяСтавка = ПроведениеРасчетов.ПолучитьЧасовуюТарифнуюСтавкуПоСтруктуре(ПроведениеРасчетов.ПрочитатьСреднемесячнуюНормуЧасов(СсылкаНаОбъект.ДатаПриема), СтруктураКоэффициентов);
	//Иначе
	//	ЧасоваяСтавка = "нет";
	//КонецЕсли;
	
	
	//ДанныеОбъекта.ОснованиеПриема 		= СсылкаНаОбъект.ОснованиеПриема;
	//ДанныеОбъекта.ТелефонПользователя 	= КонтактнаяИнформация.ПолучитьТелефонИзКонтактнойИнформации(СсылкаНаОбъект.Ответственный, "Пользователя");
	
	Область3 = Макет.ПолучитьОбласть("Шапка2");
	Область3.Параметры.Заполнить(ДанныеОбъекта);	
	ТабДокумент.Вывести(Область3);
		
	Возврат ТабДокумент;	
КонецФункции
Показать


Также ещё будет вопрос еще по выводу еще двух значений.
Прикрепленные файлы:
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Alex_BLR 8 01.12.19 11:33 Сейчас в теме
Данные кода после:
// ВЫВОД ЧАСТИ ПРИЕМА НА РАБОТУ

взяты с приказа на работу можно не обращать внимания, но там выводится значение Часовая тарифная ставка 4.84
Оставьте свое сообщение

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