Документ ПриемНаРаботуСотрудника - формирование ПФ Контракт (Трудовой договор)
Добрый день! Имеется следующая внешняя обработка которая в документе ПриемНаРаботуСотрудника формирует ПФ Контракт (Трудовой договор) нанимателя с сотрудником.
Необходима помощь в выводе на ПФ следующих значений:
1) Значение Тарифная ставка (оклад): 809.4 - необходимо вывести сумму которая станет на этом месте, если в таблице Повышение тарифной ставки удалить (15% По декрету №29) (скрин 1-2)
2) Часовая тарифная ставка: 4.84 - вывести сумму без повышения. (скрин 1-2)
В самом документе ПриемНаРаботуСотрудника значения этих двух строчек находятся под надписью НадписьСтавки, код этого фрагмента:
Код самой внешней обработки:
Также ещё будет вопрос еще по выводу еще двух значений.
Необходима помощь в выводе на ПФ следующих значений:
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);
Возврат ТабДокумент;
КонецФункции
ПоказатьТакже ещё будет вопрос еще по выводу еще двух значений.
Прикрепленные файлы:
Ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот