Шаблон данных для печатных форм ЗУП

ArtVadan 53 1 2

Шаблон кода основных данных, который поможет быстро формировать печатные формы для ЗУП. Функция ПолучитьДанные() Возвращает структуру параметров. Функция принимает следующие параметры: ОбъектНаПечать (Объект, откуда была вызвана команда), Отказ (Задал шаблон для механизма отказа, но не развивал его) ТекстОшибокОтказ (Так же для механизма отказа) Документ (необязательный параметр, но если требуются брать данные из документа, например дату документа или длительность испытательного срока из приема на работу) *В ЗУП КОРП есть возможность из регистра получить испытательный срок, но данный механизм еще не реализовывал). UPD: 25.10.2023 - Добавлены новые данные по сотруднику, новые данные по организации. Исправлена ошибка по надбавке за вредность (сделана проверка на использование данной ФО).

//---------- Сбор Данных ----------//
&НаСервере
Функция ПолучитьДанные(ОбъектНаПечать, Отказ, ТекстОшибокОтказ, Документ = Неопределено)
	
	Если ТипЗнч(ОбъектнаПечать) = Тип("СправочникСсылка.Сотрудники") Тогда
		Сотрудник = ОбъектнаПечать;
	Иначе	
		Сотрудник = ОбъектнаПечать.Сотрудник;
	КонецЕсли;
 
	Ошибки = "";
	
	Если НЕ ЗначениеЗаполнено(Сотрудник.ФизическоеЛицо) Тогда
		ТекстОшибокОтказ = ТекстОшибокОтказ + ("Требуется указать физическое лицо сотруднику") + Символы.ПС; 
		Отказ = Истина;
		Возврат Неопределено;
	КонецЕсли;
	
	Структура = Новый Структура;
	
	//-------------------------------------------------------------------------//
	Структура.Вставить("ДатаАктуальностиДанных",	ТекущаяДатаСеанса());		// Специальный параметр для получения данных
	
	//Получаем общие данные
	ПолучитьОбщиеДанные(Структура, Ошибки);
	
	//Получаем всю необходимую информацию по сотруднику
	ПолучитьДанныеСотрудника(Сотрудник, Структура, Ошибки);
	
	//Получаем все данные организации 
	Организация = ОпределитьОрганизацию(Сотрудник, Документ); 
	ПолучитьДанныеОрганизации(Организация, Структура, Ошибки);
	
	//Получаем кадровые данные сотрудника
	ПолучитьКадровыеДанныеСотрудника(Сотрудник, Структура, Ошибки);
	
	//Получить общие данные документа
	Если ЗначениеЗаполнено(Документ) Тогда
		ПолучитьОбщиеДанныеДокумента(Документ, Структура, Ошибки);
	КонецЕсли;

	//-------------------------------------------------------------------------//
	
	//Получить данные документа "Прием на работу"
	Если ЗначениеЗаполнено(Документ) И ТипЗнч(Документ) = Тип("ДокументСсылка.ПриемНаРаботу") Тогда
		ПолучитьДанныеПримемаНаРаботу(Документ, Структура, Ошибки);	
	Иначе
		Если Структура.Свойство("ПриказОприеме") И Структура.ПриказОПриеме <> Неопределено Тогда
			ПолучитьДанныеПримемаНаРаботу(Структура.ПриказОПриеме, Структура, Ошибки);
			Структура.ПриказОПриеме = " ";
		КонецЕсли;
	КонецЕсли;
	
	//Получить данные документа "ГПХ"
	Если ЗначениеЗаполнено(Документ) И ТипЗнч(Документ) = Тип("ДокументСсылка.ДоговорРаботыУслуги") Тогда
		ПолучитьДанныеГПХ(Документ, Структура, Ошибки);	
	КонецЕсли;
	
	//-------------------------------------------------------------------------//
	
	//Дополняем дополнительными данными клиента
	ЗаполнитьДополнительныеДанные(Сотрудник, Документ, Структура, Ошибки);

	//-------------------------------------------------------------------------//
	
	Если ЗначениеЗаполнено(Ошибки) Тогда
		Сообщить(Ошибки);
	КонецЕсли; 
	
	Возврат Структура;
	
КонецФункции   

&НаСервере
Процедура ПолучитьОбщиеДанные(Структура, Ошибки)
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	Структура.Вставить("ТекущаяДатаД", 				"«_____» ___________ 20__ г.");	// 01.01.2005
	Структура.Вставить("ТекущаяДатаДД", 			"«_____» ___________ 20__ г.");	// 1 января 2005 г.
	Структура.Вставить("ТекущийГод",				"20__ г.");  					// 2005
    //--------------------------------------------------------------------------------------------------------------------------------------//
	
	Структура.ТекущаяДатаД		= Формат(ТекущаяДата(), "ДЛФ=Д");	// 01.01.2005
	Структура.ТекущаяДатаДД 	= Формат(ТекущаяДата(), "ДЛФ=ДД");	// 1 января 2005 г.
	Структура.ТекущийГод 		= Формат(ТекущаяДата(), "ДФ=гггг");  // 2005
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьДанныеСотрудника(Сотрудник, Структура, Ошибки)

	//--------------------------------------------------------------------------------------------------------------------------------------//
	Структура.Вставить("ФИО", 						"_____________________");	// Иванов Иван Иванович
	Структура.Вставить("ФИОСклРодительный", 		"_____________________");	// Иванова Ивана Ивановича
	Структура.Вставить("ФИОСклДательный", 			"_____________________");	// Иванову Ивану Ивановичу
	Структура.Вставить("ФИОСклВинительный", 		"_____________________");	// Иванова Ивана Ивановича
	Структура.Вставить("ФИОСклТворительный", 		"_____________________");	// Ивановым Иваном Ивановичем
	Структура.Вставить("ФИОСклПредложный", 			"_____________________");	// Иванове Иване Ивановиче
	
	Структура.Вставить("ФамилияИнициалы", 			"_____________________");	// Михейцева Н. А. 
	Структура.Вставить("ФамилияИнициалыРод",		"_____________________");   // Михейцевой Н. А.
	Структура.Вставить("ФамилияИнициалыДат",		"_____________________");   // Михейцевой Н. А.
	Структура.Вставить("ФамилияИнициалыВин",		"_____________________");	// Михейцеву Н. А.  
	Структура.Вставить("ФамилияИнициалыТвор",		"_____________________");   // Михейцевой Н. А.
	Структура.Вставить("ФамилияИнициалыПред",		"_____________________");   // Михейцевой Н. А.   
	
	Структура.Вставить("ИнициалыФамилия", 			"_____________________");	// Н. А. Михейцева  
	Структура.Вставить("ИнициалыФамилияРод",		"_____________________");   // Н. А. Михейцевой
	Структура.Вставить("ИнициалыФамилияДат",		"_____________________");   // Н. А. Михейцевой
	Структура.Вставить("ИнициалыФамилияВин",		"_____________________");	// Н. А. Михейцеву 
	Структура.Вставить("ИнициалыФамилияТвор",		"_____________________");   // Н. А. Михейцевой
	Структура.Вставить("ИнициалыФамилияПред",		"_____________________");   // Н. А. Михейцевой
			
	Структура.Вставить("ТелефонМобильныйСотрудника","___________"); 			// 88005553535
	Структура.Вставить("EmailСотрудника",			"___________"); 			// example@mail.ru	 
	Структура.Вставить("ИННСотрудника",				"_____________________");	//123456789012
	Структура.Вставить("СнилсСотрудника",			"_____________________");	// 123-456-789 00
    
	Структура.Вставить("ДокументПредставление",				"__________________________________________"); 	// Паспорт гражданина РФ, серия: 12 34, № 111126, выдан: 01 января 2000 года, ПВР №1
	Структура.Вставить("ДокументСерия",						"__________________________________________"); 	// 12 34
    Структура.Вставить("ДокументНомер",						"__________________________________________"); 	// 56789
    Структура.Вставить("КемВыдан",							"__________________________________________"); 	// ПВР №1 
    Структура.Вставить("КодПодразделения",					"__________________________________________"); 	// 650-001 
	Структура.Вставить("ДатаВыдачиД",						"__________________________________________"); 	// 01.01.2005 
	Структура.Вставить("ДатаВыдачиДД",						"__________________________________________"); 	// 1 января 2005 г. 
	
	Структура.Вставить("Страна",							"____________"); 								// Россия 

	Структура.Вставить("АдресПоПропискеПредставление",		"__________________________________________"); 	// РОССИЯ, 105122, Москва г, Амурская ул, дом № 1, квартира 2
	Структура.Вставить("АдресПроживанияСотрудника",			"__________________________________________"); 	// РОССИЯ, 105122, Москва г, Амурская ул, дом № 1, квартира 2
	
	Структура.Вставить("ДатаРожденияСотрудникаД",			"«_____» ___________ 20__ г."); 				// 01.01.2005
	Структура.Вставить("ДатаРожденияСотрудникаДД",			"«_____» ___________ 20__ г.");					// 1 января 2005 г.	
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	// Удостоверение личности
	УдостоверенияЛичности = Неопределено;
	ДокументыСотрудника = КадровыйУчет.ДокументыФизическихЛиц(Сотрудник.ФизическоеЛицо, Истина); 
	Если ДокументыСотрудника.Количество() > 0 Тогда 
		
		ПриоритетВидовДокумента = Новый Массив();
		ПриоритетВидовДокумента.Добавить(Справочники.ВидыДокументовФизическихЛиц.ПаспортРФ);
		ПриоритетВидовДокумента.Добавить(Справочники.ВидыДокументовФизическихЛиц.НайтиПоНаименованию("Иностранный паспорт"));
		
		Для каждого ВидДокумента из ПриоритетВидовДокумента Цикл 
			Если НЕ ЗначениеЗаполнено(ВидДокумента) Тогда Продолжить КонецЕсли;
			Отбор = Новый Структура("ВидДокумента", ВидДокумента);
			НайденныеДокументы = ДокументыСотрудника.НайтиСтроки(Отбор);
			Если НайденныеДокументы.Количество() > 0 Тогда
				УдостоверенияЛичности = НайденныеДокументы[0];
				Прервать;
			КонецЕсли;
		КонецЦикла;   
		
		Если УдостоверенияЛичности = неопределено Тогда
			УдостоверенияЛичности = ДокументыСотрудника[0];
		КонецЕсли;
	КонецЕсли;
	
    ДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(Истина, 
		ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), 
		"АдресМестаПроживания, АдресМестаПроживанияПредставление, АдресПоПрописке, АдресПоПропискеПредставление, Страна,
		| ТелефонМобильныйПредставление, ТелефонДомашнийПредставление, ТелефонРабочий, ТелефонРабочийПредставление, EMail, EMailПредставление", ТекущаяДата())[0];

		
	//Общие
	Структура.ФИО						= Сотрудник.Наименование;
	Структура.ФИОСклРодительный			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.Наименование, 2, Сотрудник.ФизическоеЛицо.Пол);	//Иванова Ивана Ивановича
	Структура.ФИОСклДательный			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.Наименование, 3, Сотрудник.ФизическоеЛицо.Пол);	//Иванову Ивану Ивановичу
	Структура.ФИОСклВинительный			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.Наименование, 4, Сотрудник.ФизическоеЛицо.Пол);	//Иванова Ивана Ивановича
	Структура.ФИОСклТворительный		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.Наименование, 5, Сотрудник.ФизическоеЛицо.Пол);	//Ивановым Иваном Ивановичем
	Структура.ФИОСклПредложный			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.Наименование, 6, Сотрудник.ФизическоеЛицо.Пол);	//Иванове Иване Ивановиче
	
	Структура.ФамилияИнициалы			= Сотрудник.ФизическоеЛицо.Фамилия + " " +Сотрудник.ФизическоеЛицо.Инициалы; 
	Структура.ФамилияИнициалыРод		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 2, Сотрудник.ФизическоеЛицо.Пол) + " " + Сотрудник.ФизическоеЛицо.Инициалы;
	Структура.ФамилияИнициалыДат		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 3, Сотрудник.ФизическоеЛицо.Пол) + " " + Сотрудник.ФизическоеЛицо.Инициалы;
	Структура.ФамилияИнициалыВин		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 4, Сотрудник.ФизическоеЛицо.Пол) + " " + Сотрудник.ФизическоеЛицо.Инициалы;
	Структура.ФамилияИнициалыТвор		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 5, Сотрудник.ФизическоеЛицо.Пол) + " " + Сотрудник.ФизическоеЛицо.Инициалы;
	Структура.ФамилияИнициалыПред		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 6, Сотрудник.ФизическоеЛицо.Пол) + " " + Сотрудник.ФизическоеЛицо.Инициалы; 
	
	Структура.ИнициалыФамилия			= Сотрудник.ФизическоеЛицо.Инициалы + " " + Сотрудник.ФизическоеЛицо.Фамилия; 
	Структура.ИнициалыФамилияРод		= Сотрудник.ФизическоеЛицо.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 2, Сотрудник.ФизическоеЛицо.Пол);
	Структура.ИнициалыФамилияДат		= Сотрудник.ФизическоеЛицо.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 3, Сотрудник.ФизическоеЛицо.Пол);
	Структура.ИнициалыФамилияВин		= Сотрудник.ФизическоеЛицо.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 4, Сотрудник.ФизическоеЛицо.Пол);
	Структура.ИнициалыФамилияТвор		= Сотрудник.ФизическоеЛицо.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 5, Сотрудник.ФизическоеЛицо.Пол);
	Структура.ИнициалыФамилияПред		= Сотрудник.ФизическоеЛицо.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(Сотрудник.ФизическоеЛицо.Фамилия, 6, Сотрудник.ФизическоеЛицо.Пол);
	
	
	//ТелефонМобильныйСотрудника
	Если ЗначениеЗаполнено(ДанныеСотрудника.ТелефонМобильныйПредставление) Тогда
		Структура.ТелефонМобильныйСотрудника = ДанныеСотрудника.ТелефонМобильныйПредставление;
	Иначе
		//Ошибки = Ошибки + "Не заполнен Мобильный телефон у сотрудника" + Символы.ПС;	
	КонецЕсли;
	
	//EmailСотрудника
	Если ЗначениеЗаполнено(ДанныеСотрудника.EMAILПРЕДСТАВЛЕНИЕ) Тогда
		Структура.EmailСотрудника = ДанныеСотрудника.EMAILПРЕДСТАВЛЕНИЕ;
	Иначе
		//Ошибки = Ошибки + "Не заполнен Email у сотрудника" + Символы.ПС;
	КонецЕсли;
		
	//ИННСотрудника
	Если ЗначениеЗаполнено(Сотрудник.ФизическоеЛицо.ИНН) Тогда
		Структура.ИННСотрудника = Сотрудник.ФизическоеЛицо.ИНН;
	Иначе
		//Ошибки = Ошибки + "Не заполнен ИНН у сотрудника" + Символы.ПС;	
	КонецЕсли;
	
	//СнилсСотрудника
	Если ЗначениеЗаполнено(Сотрудник.ФизическоеЛицо.СтраховойНомерПФР) Тогда
		Структура.СнилсСотрудника = Сотрудник.ФизическоеЛицо.СтраховойНомерПФР;
	Иначе
		//Ошибки = Ошибки + "Не заполнен СНИЛС у сотрудника" + Символы.ПС;	
	КонецЕсли;

	
	Если ЗначениеЗаполнено(УдостоверенияЛичности) Тогда
		
		//ДокументПредставление
		Если ЗначениеЗаполнено(УдостоверенияЛичности.Представление) Тогда
			Структура.ДокументПредставление = УдостоверенияЛичности.Представление;
			Структура.ДокументСерия = УдостоверенияЛичности.Серия;
			Структура.ДокументНомер = УдостоверенияЛичности.Номер;
			Структура.КемВыдан 		= УдостоверенияЛичности.КемВыдан;
			Структура.КодПодразделения = УдостоверенияЛичности.КодПодразделения; 
			Структура.ДатаВыдачиД 	= Формат(УдостоверенияЛичности.ДатаВыдачи, "ДЛФ=Д"); 
			Структура.ДатаВыдачиДД 	= Формат(УдостоверенияЛичности.ДатаВыдачи, "ДЛФ=ДД"); 	
		Иначе
			//Ошибки = Ошибки + "Не удалось определить паспортные данные сотрудника" + Символы.ПС;		
		КонецЕсли;
		
	КонецЕсли;
	
	// Страна
	Если ЗначениеЗаполнено(ДанныеСотрудника.Страна) Тогда
		Структура.Страна = Строка(ДанныеСотрудника.Страна);
	Иначе
		//Ошибки = Ошибки + "Не удалось определить Страну сотрудника" + Символы.ПС;	
	КонецЕсли;
	
	// Адрес по прописке
	Если ЗначениеЗаполнено(ДанныеСотрудника.АДРЕСПОПРОПИСКЕПРЕДСТАВЛЕНИЕ) Тогда
		Структура.АдресПоПропискеПредставление = Строка(ДанныеСотрудника.АДРЕСПОПРОПИСКЕПРЕДСТАВЛЕНИЕ);
	Иначе
		//Ошибки = Ошибки + "Не удалось определить Адрес по прописке сотрудника" + Символы.ПС;	
	КонецЕсли;

	//ДатаРожденияСотрудникаД и ДД
	Если ЗначениеЗаполнено(ДанныеСотрудника.ФизическоеЛицо.ДатаРождения) Тогда
		Структура.ДатаРожденияСотрудникаД			= Формат(ДанныеСотрудника.ФизическоеЛицо.ДатаРождения, "ДЛФ=Д"); // 01.01.2005
		Структура.ДатаРожденияСотрудникаДД			= Формат(ДанныеСотрудника.ФизическоеЛицо.ДатаРождения, "ДЛФ=ДД");// 1 января 2005 г.	
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату рождения сотрудника" + Символы.ПС;	
	КонецЕсли;
	
КонецПроцедуры   

&НаСервере
Процедура ПолучитьДанныеОрганизации(Организация, Структура, Ошибки)  

	//--------------------------------------------------------------------------------------------------------------------------------------//
	Структура.Вставить("Организация",					"");						// Ссылка Крон-Ц. Филиал в г. Калининград
	Структура.Вставить("ОрганизацияНаименование", 		"_______________________"); // Крон-Ц. Филиал в г. Калининград
	Структура.Вставить("ОрганизацияНаименованиеПолное", "_______________________"); // Открытое акционерное общество "Крон-Ц". Филиал в г. Калининград
	Структура.Вставить("ОрганизацияНаименованиеСокр", 	"_______________________"); // ОАО "Крон-Ц". Филиал в г. Калининград
	
	Структура.Вставить("ИННОрг",						"_______________"); 	// 500100732259
	Структура.Вставить("КППОрг",						"_______________"); 	// 773301001
	Структура.Вставить("ОГРНОрг",						"_______________"); 	// 1117746358608
	
	Структура.Вставить("ТелОрганизации",		       	"+7-___-___-____."); 	// +7-800-555-3535.
	Структура.Вставить("Имейл",		       				""); 					// example@mail.com
	Структура.Вставить("ЮрАдресОргПредставление",		"_______________________________"); 	// 127083, Москва г, ул 8 Марта, д. 4   
	Структура.Вставить("ФактАдресОрганизации",			"_______________________________"); 	// 127083, Москва г, ул 8 Марта, д. 4   
	
	Структура.Вставить("ФиоРукИменительный", 		"_____________________");	// Иванов Иван Иванович
	Структура.Вставить("ФиоРукРодительный", 		"_____________________");	// Иванова Ивана Ивановича
	Структура.Вставить("ФиоРукДательный",			"_____________________");	// Иванову Ивану Ивановичу
	Структура.Вставить("ФиоРукВинительный", 		"_____________________");	// Иванова Ивана Ивановича
	Структура.Вставить("ФиоРукТворительный", 		"_____________________");	// Ивановым Иваном Ивановичем
	Структура.Вставить("ФиоРукПредложный", 			"_____________________");	// Иванове Иване Ивановиче
	
	Структура.Вставить("ФамилияИнициалыРук", 		"_____________________");	// Иванов И. И.
	Структура.Вставить("ФамилияИнициалыРукРод",		"_____________________");   // Иванова И. И.
	Структура.Вставить("ФамилияИнициалыРукДат",		"_____________________");   // Иванову И. И.
	Структура.Вставить("ФамилияИнициалыРукВин",		"_____________________");   // Иванова И. И.
	Структура.Вставить("ФамилияИнициалыРукТвор",	"_____________________");   // Ивановым И. И.
	Структура.Вставить("ФамилияИнициалыРукПред",	"_____________________");   // Иванове И. И.
	
	Структура.Вставить("ИнициалыФамилияРук",		"_____________________");	// И. И. Иванов
	Структура.Вставить("ИнициалыФамилияРукРод",		"_____________________");	// И. И. Иванова
	Структура.Вставить("ИнициалыФамилияРукДат",		"_____________________");	// И. И. Иванову
	Структура.Вставить("ИнициалыФамилияРукВин",		"_____________________");	// И. И. Иванова
	Структура.Вставить("ИнициалыФамилияРукТвор",	"_____________________");	// И. И. Ивановым
	Структура.Вставить("ИнициалыФамилияРукПрод",	"_____________________");	// И. И. Иванове
	
	Структура.Вставить("ДолжностьРуководителя", 		"_____________________"); // Генеральный директор 
	Структура.Вставить("ДолжностьРуководителяРод",		"_____________________"); // Генерального директора
	Структура.Вставить("ДолжностьРуководителяДат",		"_____________________"); // Генеральному директору 
	Структура.Вставить("ДолжностьРуководителяВин",		"_____________________"); // Генеральном директоре
	Структура.Вставить("ДолжностьРуководителяТвор",		"_____________________"); // Генерального директора
	Структура.Вставить("ДолжностьРуководителяПред",		"_____________________"); // Генеральным директором  
	
	Структура.Вставить("ДолжностьРуководителяНРег", 		"_____________________"); // генеральный директор 
	Структура.Вставить("ДолжностьРуководителяРодНРег",		"_____________________"); // генерального директора
	Структура.Вставить("ДолжностьРуководителяДатНРег",		"_____________________"); // генеральному директору 
	Структура.Вставить("ДолжностьРуководителяВинНРег",		"_____________________"); // генеральном директоре
	Структура.Вставить("ДолжностьРуководителяТворНРег",		"_____________________"); // генерального директора
	Структура.Вставить("ДолжностьРуководителяПредНРег",		"_____________________"); // генеральным директором
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	Если ЗначениеЗаполнено(Организация) Тогда 
		СписокПОказателей = Новый Массив;
		СписокПоказателей.Добавить("ДолжнРук");
		СписокПоказателей.Добавить("ИННЮЛ");
		СписокПоказателей.Добавить("КППЮЛ");
		СписокПоказателей.Добавить("ОГРН");
		СписокПоказателей.Добавить("РукСсылка");
		СписокПоказателей.Добавить("ТелОрганизации");
        СписокПоказателей.Добавить("АдресЭлектроннойПочтыОрганизации");

		СведенияОбОрганизации = ЗарплатаКадрыБазовый.ПолучитьСведенияОбОрганизации(Организация, ТекущаяДата(), СписокПОказателей); 
		
		Структура.Организация						= Организация.Ссылка;
		Структура.ОрганизацияНаименование			= Организация.Наименование;
		Структура.ОрганизацияНаименованиеПолное		= Организация.НаименованиеПолное;
		Структура.ОрганизацияНаименованиеСокр		= Организация.НаименованиеСокращенное;
		
		Структура.ИННОрг			= Организация.Инн;
		Структура.КППОрг			= ?(Организация.Метаданные().Реквизиты.Найти("КПП") = Неопределено, СведенияОбОрганизации.КППЮЛ, Организация.Кпп);
		Структура.ОГРНОрг			= Организация.ОГРН;
		
		//ТелОрганизации
		Если ЗначениеЗаполнено(СведенияОбОрганизации.ТелОрганизации) Тогда
			Структура.ТелОрганизации = СведенияОбОрганизации.ТелОрганизации;
		Иначе
			//Ошибки = Ошибки + "Не удалось определить телефон организации" + Символы.ПС;
		КонецЕсли;
		
		//Имейл
		Если ЗначениеЗаполнено(СведенияОбОрганизации.АдресЭлектроннойПочтыОрганизации) Тогда
			Структура.Имейл = СведенияОбОрганизации.АдресЭлектроннойПочтыОрганизации;
		Иначе
			//Ошибки = Ошибки + "Не удалось определить имейл организации" + Символы.ПС;
		КонецЕсли;

		
		//ЮрАдресОргПредставление
		Если ЗначениеЗаполнено(Организация) Тогда
			ЮрАдресОргПредставление = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Организация, Справочники.ВидыКонтактнойИнформации.ЮрАдресОрганизации, ТекущаяДатаСеанса(), Истина);
			Структура.ЮрАдресОргПредставление = ?(ЗначениеЗаполнено(ЮрАдресОргПредставление), ЮрАдресОргПредставление, Структура.ЮрАдресОргПредставление);
		Иначе
			//Ошибки = Ошибки + "Не удалось определить юридический адрес организации" + Символы.ПС;
		КонецЕсли;
		
		//ФактАдресОрганизации
		Если ЗначениеЗаполнено(Организация) Тогда
			ФактАдресОрганизации = УправлениеКонтактнойИнформацией.КонтактнаяИнформацияОбъекта(Организация, Справочники.ВидыКонтактнойИнформации.ФактАдресОрганизации, ТекущаяДатаСеанса(), Истина);
			Структура.ФактАдресОрганизации = ?(ЗначениеЗаполнено(ФактАдресОрганизации), ФактАдресОрганизации, Структура.ФактАдресОрганизации);
		Иначе
			//Ошибки = Ошибки + "Не удалось определить Фактический адрес организации" + Символы.ПС;
		КонецЕсли;

		
		Если ЗначениеЗаполнено(СведенияОбОрганизации.РукСсылка) Тогда
			РуководительОрганизации = СведенияОбОрганизации.РукСсылка; 
		Иначе
			Ошибки = Ошибки + "Не удалось определить руководителя организации" + Символы.ПС;	
		КонецЕсли;
	
		Если ЗначениеЗаполнено(РуководительОрганизации) Тогда
		
			Структура.ФиоРукИменительный			= РуководительОрганизации.Наименование;																			// Иванов Иван Иванович
			Структура.ФиоРукРодительный				= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Наименование, 2, РуководительОрганизации.Пол);	// Иванова Ивана Ивановича
			Структура.ФиоРукДательный				= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Наименование, 3, РуководительОрганизации.Пол);	// Иванову Ивану Ивановичу
			Структура.ФиоРукВинительный				= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Наименование, 4, РуководительОрганизации.Пол);	// Иванова Ивана Ивановича
			Структура.ФиоРукТворительный			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Наименование, 5, РуководительОрганизации.Пол);	// Ивановым Иваном Ивановичем
			Структура.ФиоРукПредложный				= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Наименование, 6, РуководительОрганизации.Пол);	// Иванове Иване Ивановиче
			
			Структура.ФамилияИнициалыРук			= РуководительОрганизации.Фамилия + " " +РуководительОрганизации.Инициалы;										// Иванов И. И.
			Структура.ФамилияИнициалыРукРод			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 2, РуководительОрганизации.Пол) + " " + РуководительОрганизации.Инициалы;
			Структура.ФамилияИнициалыРукДат			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 3, РуководительОрганизации.Пол) + " " + РуководительОрганизации.Инициалы;
			Структура.ФамилияИнициалыРукВин			= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 4, РуководительОрганизации.Пол) + " " + РуководительОрганизации.Инициалы;
			Структура.ФамилияИнициалыРукТвор		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 5, РуководительОрганизации.Пол) + " " + РуководительОрганизации.Инициалы;
			Структура.ФамилияИнициалыРукПред		= ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 6, РуководительОрганизации.Пол) + " " + РуководительОрганизации.Инициалы;
			
			Структура.ИнициалыФамилияРук			= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 1, РуководительОрганизации.Пол);
			Структура.ИнициалыФамилияРукРод			= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 2, РуководительОрганизации.Пол);
			Структура.ИнициалыФамилияРукДат			= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 3, РуководительОрганизации.Пол);
			Структура.ИнициалыФамилияРукВин			= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 4, РуководительОрганизации.Пол);
			Структура.ИнициалыФамилияРукТвор		= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 5, РуководительОрганизации.Пол);
			Структура.ИнициалыФамилияРукПрод		= РуководительОрганизации.Инициалы + " " + ЗарплатаКадрыОтчеты.ПросклоненныеФИО(РуководительОрганизации.Фамилия, 6, РуководительОрганизации.Пол);
			
		КонецЕсли;
		
		Если ЗначениеЗаполнено(СведенияОбОрганизации.ДолжнРук) Тогда
			Структура.ДолжностьРуководителя			= СведенияОбОрганизации.ДолжнРук.Наименование;
			Структура.ДолжностьРуководителяРод		= СклонениеПредставленийОбъектов.ПросклонятьПредставление(СведенияОбОрганизации.ДолжнРук, 2);
			Структура.ДолжностьРуководителяДат		= СклонениеПредставленийОбъектов.ПросклонятьПредставление(СведенияОбОрганизации.ДолжнРук, 3);
			Структура.ДолжностьРуководителяВин		= СклонениеПредставленийОбъектов.ПросклонятьПредставление(СведенияОбОрганизации.ДолжнРук, 4);
			Структура.ДолжностьРуководителяТвор		= СклонениеПредставленийОбъектов.ПросклонятьПредставление(СведенияОбОрганизации.ДолжнРук, 5);
			Структура.ДолжностьРуководителяПред		= СклонениеПредставленийОбъектов.ПросклонятьПредставление(СведенияОбОрганизации.ДолжнРук, 6);
			
			Структура.ДолжностьРуководителяНРег			= НРег(Структура.ДолжностьРуководителя);
			Структура.ДолжностьРуководителяРодНРег		= НРег(Структура.ДолжностьРуководителяРод);
			Структура.ДолжностьРуководителяДатНРег		= НРег(Структура.ДолжностьРуководителяДат);
			Структура.ДолжностьРуководителяВинНРег		= НРег(Структура.ДолжностьРуководителяВин);
			Структура.ДолжностьРуководителяТворНРег		= НРег(Структура.ДолжностьРуководителяТвор);
			Структура.ДолжностьРуководителяПредНРег		= НРег(Структура.ДолжностьРуководителяПред);

		Иначе
			//Ошибки = Ошибки + "Не удалось определить должность руководителя организации" + Символы.ПС;
		КонецЕсли;	
		
	Иначе
		//Ошибки = Ошибки + "Не удалось определить данные организации" + Символы.ПС; 
	КонецЕсли;
	
				
	
	
КонецПроцедуры

&НаСервере
Процедура ПолучитьКадровыеДанныеСотрудника(Сотрудник, Структура, Ошибки)
	
	//--------------------------------------------------------------------------------------------------------------------------------------/	
	Структура.Вставить("Должность", 				"_____________________");	// Эксперт
	Структура.Вставить("ДолжностьРод",				"_____________________");	// Эксперта
	Структура.Вставить("ДолжностьДат",				"_____________________");	// Эксперту
	Структура.Вставить("ДолжностьВин",				"_____________________");	// Эксперта
	Структура.Вставить("ДолжностьТвор",				"_____________________"); 	// Экспертом
	Структура.Вставить("ДолжностьПред",				"_____________________");	// Эксперте
	
	Структура.Вставить("ДолжностьШР",	 			"_____________________");	// Эксперт
	Структура.Вставить("ДолжностьШРРод",			"_____________________");	// Эксперта
	Структура.Вставить("ДолжностьШРДат",			"_____________________");	// Эксперту
	Структура.Вставить("ДолжностьШРВин",			"_____________________");	// Эксперта
	Структура.Вставить("ДолжностьШРТвор",			"_____________________"); 	// Экспертом
	Структура.Вставить("ДолжностьШРПред",			"_____________________");	// Эксперте 
	
	Структура.Вставить("ДолжностьИРазряд",	 		"_____________________");	// Эксперт, 1 категория
	Структура.Вставить("ДолжностьИРазрядРод",		"_____________________");	// Эксперта, 1 категории
	Структура.Вставить("ДолжностьИРазрядДат",		"_____________________");	// Эксперту, 1 категории
	Структура.Вставить("ДолжностьИРазрядВин",		"_____________________");	// Эксперта, 1 категории
	Структура.Вставить("ДолжностьИРазрядТвор",		"_____________________"); 	// Экспертом, 1 категории
	Структура.Вставить("ДолжностьИРазрядПред",		"_____________________");	// Эксперте, 1 категории 
	
	Структура.Вставить("ТекущаяДолжность", 			"_____________________");	// Эксперт
	Структура.Вставить("ТекущаяДолжностьРод",		"_____________________");	// Эксперта
	Структура.Вставить("ТекущаяДолжностьДат",		"_____________________");	// Эксперту
	Структура.Вставить("ТекущаяДолжностьВин",		"_____________________");	// Эксперта
	Структура.Вставить("ТекущаяДолжностьТвор",		"_____________________"); 	// Экспертом
	Структура.Вставить("ТекущаяДолжностьПред",		"_____________________");	// Эксперте
		
	Структура.Вставить("Подразделение",				"_____________________");	// Служба безопасности 
	
	Структура.Вставить("ПроцентСевернойНадбавки",		"_______");				// 50 
	Структура.Вставить("РайонныйКоэффициент",			"_______");				// 1,6
	Структура.Вставить("ПроцентРайонныйКоэффициент",	"_______");				// 60%
	Структура.Вставить("ПроцентНадбавкиЗаВредность",	"—");					// 4%
	
	Структура.Вставить("ТарифнаяСтавка", 				"________");  			// 102,00
	Структура.Вставить("ТарифнаяСтавкаЧисло", 			"________");  			// 102,00
	Структура.Вставить("ТарифнаяСтавкаНаПечать",		"__________________");  // 102 руб. 00 коп.
	Структура.Вставить("ТарифнаяСтавкаПрописью",		"__________________");  // сто два рубля 00 коп.
	
	Структура.Вставить("ТарифнаяСтавкаПочасоваяЧисло",	"_______");				// 
	Структура.Вставить("ТарифнаяСтавкаПочасоваяНаПечать","__________________"); // 102 руб. 00 коп.
	Структура.Вставить("ТарифнаяСтавкаПочасоваяПрописью","__________________"); // сто два рубля 00 коп.
	
	Структура.Вставить("ДатаПриемаД",					"__________________");  // 01.01.2005
	Структура.Вставить("ДатаПриемаДД",					"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("ДатаУвольненияД",				"__________________");	// 01.01.2005
	Структура.Вставить("ДатаУвольненияДД",				"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("НомерТрудовогоДоговора",		"____");				// 182
	Структура.Вставить("ДатаТрудовогоДоговораД",		"__________________");	// 01.01.2005
	Структура.Вставить("ДатаТрудовогоДоговораДД",		"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("ДатаНачалаТрудовогоДоговора",	ТекущаяДата());			// 01.01.2005
	Структура.Вставить("ДатаНачалаТрудовогоДоговораД",	"__________________");	// 01.01.2005
	Структура.Вставить("ДатаНачалаТрудовогоДоговораДД",	"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("ДатаОкончанияТрудовогоДоговораД",	"__________________");	// 01.01.2005
	Структура.Вставить("ДатаОкончанияТрудовогоДоговораДД",	"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("СрокЗаключенияДоговора",			"неопределенный срок");	
	Структура.Вставить("СрокЗаключенияДоговораОписание",	""); //На время исполнения государственного контракта № 02-22-2 от 11.04.2022г.	
	Структура.Вставить("ОснованиеСрочногоДоговора",			"");
	
	Структура.Вставить("ПродолжительностьРабочейНедели",	"___"); 			// 48
		
	Структура.Вставить("НомерПриказа",					"____");                // 182
	Структура.Вставить("ДатаПриказаД",					"__________________");	// 01.01.2005
	Структура.Вставить("ДатаПриказаДД",					"__________________");	// 1 января 2005 г.
	
	Структура.Вставить("ВидЗанятости",				"_____________________");	// Основное место работы
	Структура.Вставить("ВидЗанятостиРод",			"_____________________");	// Основного места работы
    Структура.Вставить("ВидЗанятостиДат",			"_____________________");	// Основному месту работы
	Структура.Вставить("ВидЗанятостиВин",			"_____________________");	// Основное место работы
	Структура.Вставить("ВидЗанятостиТвор",			"_____________________");	// Основным местом работы
	Структура.Вставить("ВидЗанятостиПред",			"_____________________");	// об Основном месте работы
	
	Структура.Вставить("ОтпускОсновной",			"___");						// 24
	Структура.Вставить("ОтпускЗаВредность",			"___");						// 5 
	Структура.Вставить("ОтпускСеверные",			"___");						// 18 
	
	Структура.Вставить("КоличествоСтавок",			" - "); // 1 / 0,5 / 0,25 - В зависимости от ставки
	Структура.Вставить("ДоляСтавки", 				" - "); // на полную ставку / на 0,5 ставки / на 0,25 ставки 
	
	Структура.Вставить("КлассУсловийСпецоценка",	""); // Подкласс 3.1 класса условий труда "вредный"
	
	
	Структура.Вставить("БанкСотрудника",	""); 		// Филиал № 2754 ВТБ (ПАО) 
	Структура.Вставить("БанкИННСотрудника",	""); 		// 7702070139 
	Структура.Вставить("БанкКППСотрудника",	""); 		// 272143002 
	Структура.Вставить("БанкКорСчетСотрудника",	""); 	// 30101810708130000713 
	Структура.Вставить("БанкБИКСотрудника",	""); 		// 040813713 
	Структура.Вставить("БанкСчетСотрудника","");		// 4**17*10**023**00**7
	//--------------------------------------------------------------------------------------------------------------------------------------//	
	
	КадровыеДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(Истина, 
    ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), 
    "Организация,ФизическоеЛицо,ТабельныйНомер,Подразделение,Должность,ВидЗанятости,ДолжностьПоШтатномуРасписанию, ПроцентСевернойНадбавки, 
	| ТарифнаяСтавка, ТекущаяТарифнаяСтавка, Надбавка, ДатаДоговораКонтракта, НомерДоговораКонтракта, ДатаНачала, ДатаОкончания, СрочныйДоговор, ОснованиеСрочногоДоговора, СрокЗаключенияДоговора, 
	| КоличествоСтавок,ДатаПриема,ДатаУвольнения,ГрафикРаботы,СтатьяФинансирования, РазрядКатегория, ТекущаяДолжность, ПриказОПриеме, МестоВыплаты", ТекущаяДата())[0];  

	
	// Заполняем параметр актуальности данных
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ПриказОПриеме) И 
		ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаПриема) Тогда
		Структура.ДатаАктуальностиДанных = КадровыеДанныеСотрудника.ДатаПриема; 
		ДатаАктуальности = КонецДня(Структура.ДатаАктуальностиДанных);
	КонецЕсли;
	
	//Должность
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.Должность) Тогда
		Структура.Должность					= КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование;
		Структура.ДолжностьРод				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.Должность.Наименование, 2);
		Структура.ДолжностьДат				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.Должность.Наименование, 3);
		Структура.ДолжностьВин				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.Должность.Наименование, 4);
		Структура.ДолжностьТвор				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.Должность.Наименование, 5);
		Структура.ДолжностьПред				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.Должность.Наименование, 6);
	КонецЕсли;

	//ДолжностьПоШтатномуРасписанию
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию) Тогда	
		Структура.ДолжностьШР					= КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование;
		Структура.ДолжностьШРРод				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Наименование, 2);
		Структура.ДолжностьШРДат				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Наименование, 3);
		Структура.ДолжностьШРВин				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Наименование, 4);
		Структура.ДолжностьШРТвор				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Наименование, 5);
		Структура.ДолжностьШРПред				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Наименование, 6);
	КонецЕсли; 
	
	//Должность и разряд
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию) Тогда
		РазрядКатегория = КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.РазрядКатегория; 
		Если ЗначениеЗаполнено(РазрядКатегория) Тогда
			Структура.ДолжностьИРазряд				= КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
				            + ", " + РазрядКатегория.Наименование;
			Структура.ДолжностьИРазрядРод			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
							+ ", " + РазрядКатегория.Наименование, 2);
			Структура.ДолжностьИРазрядДат			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
							+ ", " + РазрядКатегория.Наименование, 3);
			Структура.ДолжностьИРазрядВин			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
							+ ", " + РазрядКатегория.Наименование, 4);
			Структура.ДолжностьИРазрядТвор			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
							+ ", " + РазрядКатегория.Наименование, 5);
			Структура.ДолжностьИРазрядПред			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование
							+ ", " + РазрядКатегория.Наименование, 6);  
		Иначе
			Структура.ДолжностьИРазряд				= КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование;
			Структура.ДолжностьИРазрядРод			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование, 2);
			Структура.ДолжностьИРазрядДат			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование, 3);
			Структура.ДолжностьИРазрядВин			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование, 4);
			Структура.ДолжностьИРазрядТвор			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование, 5);
			Структура.ДолжностьИРазрядПред			= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию.Должность.Наименование, 6);
		КонецЕсли;
							
	КонецЕсли;
	
	//ТекущаяДолжность
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ТекущаяДолжность) Тогда
		Структура.ТекущаяДолжность					= КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование;
		Структура.ТекущаяДолжностьРод				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование, 2);
		Структура.ТекущаяДолжностьДат				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование, 3);
		Структура.ТекущаяДолжностьВин				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование, 4);
		Структура.ТекущаяДолжностьТвор				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование, 5);
		Структура.ТекущаяДолжностьПред				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(КадровыеДанныеСотрудника.ТекущаяДолжность.Наименование, 6);
	КонецЕсли; 
	
	//Подразделение
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.Подразделение) Тогда
		Структура.Подразделение					= КадровыеДанныеСотрудника.Подразделение.Наименование;	
	Иначе
		//Ошибки = Ошибки + "Не удалось определить подразделение" + Символы.ПС;			
	КонецЕсли;
	
	//Процент северной надбавки
	Если ЗначениеЗАполнено(КадровыеДанныеСотрудника.ПроцентСевернойНадбавки) Тогда
		Структура.ПроцентСевернойНадбавки = КадровыеДанныеСотрудника.ПроцентСевернойНадбавки;
	Иначе
		//Ошибки = Ошибки + "Не удалось определить процент северной надбавки" + Символы.ПС;		
	КонецЕсли;
	
	//Районный коэффициент
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ РАЗЛИЧНЫЕ
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель КАК Показатель,
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение,
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ДействуетДо КАК ДействуетДо,
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Организация КАК Организация
		|ИЗ
		|	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(
		|			&ТекДата,
		|			Показатель = &Показатель
		|				И Сотрудник = &Сотрудник) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних";
	
	Попытка
		// Попытка сделана для разных версий ЗУП
		Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.РайонныйКоэффициент);
	Исключение
		Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.РайонныйКоэффициентРФ);
    КонецПопытки;
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
	Запрос.УстановитьПараметр("ТекДата", ДатаАктуальности);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Структура.РайонныйКоэффициент = ВыборкаДетальныеЗаписи.Значение;
		Структура.ПроцентРайонныйКОэффициент = (ВыборкаДетальныеЗаписи.Значение - 1) * 100;
	КонецЦикла;
	
	//Надбавка за вредность
	Если ПолучитьФункциональнуюОпцию("ИспользоватьНадбавкуЗаВредность") Тогда
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ РАЗЛИЧНЫЕ
			|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Показатель КАК Показатель,
			|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение,
			|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.ДействуетДо КАК ДействуетДо,
			|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Организация КАК Организация
			|ИЗ
			|	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(
			|			&ТекДата,
			|			Показатель = &Показатель
			|				И Сотрудник = &Сотрудник) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних";
		
		Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.ПроцентНадбавкиЗаВредность);
		Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
		Запрос.УстановитьПараметр("ТекДата", ДатаАктуальности);
		
		РезультатЗапроса = Запрос.Выполнить();
		
		ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
		
		Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
			Структура.ПроцентНадбавкиЗаВредность = Строка(ВыборкаДетальныеЗаписи.Значение) + "%";
		КонецЦикла;
	КонецЕсли;
	
	//Тарифная ставка
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ТарифнаяСтавка) Тогда
		Структура.ТарифнаяСтавка = КадровыеДанныеСотрудника.ТарифнаяСтавка;
		Структура.ТарифнаяСтавкаЧисло = Формат(КадровыеДанныеСотрудника.ТарифнаяСтавка, "ЧДЦ=2");
		Структура.ТарифнаяСтавкаНаПечать = ЗарплатаКадрыОтчеты.ТарифнаяСтавкаНаПечать(КадровыеДанныеСотрудника.ТарифнаяСтавка, Истина);
		Структура.ТарифнаяСтавкаПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(КадровыеДанныеСотрудника.ТарифнаяСтавка, Справочники.Валюты.НайтиПоКоду(643));
	Иначе
		//Ошибки = Ошибки + "Не удалось определить тарифную ставку" + Символы.ПС;	
	КонецЕсли;
	
	//Тарифная ставка почасовая
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних.Значение КАК Значение
		|ИЗ
		|	РегистрСведений.ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудников.СрезПоследних(
		|			&ДатаПриема,
		|			Сотрудник = &Сотрудник
		|				И Организация = &Организация
		|				И Показатель = &Показатель) КАК ЗначенияПериодическихПоказателейРасчетаЗарплатыСотрудниковСрезПоследних";
	
	Запрос.УстановитьПараметр("ДатаПриема", ДатаАктуальности);	
	Запрос.УстановитьПараметр("Организация", Структура.Организация);
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
	Запрос.УстановитьПараметр("Показатель", Справочники.ПоказателиРасчетаЗарплаты.ТарифнаяСтавкаЧасовая);

	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Структура.ТарифнаяСтавкаПочасоваяЧисло = Формат(ВыборкаДетальныеЗаписи.Значение, "ЧДЦ=2");
		Структура.ТарифнаяСтавкаПочасоваяНаПечать = ЗарплатаКадрыОтчеты.ТарифнаяСтавкаНаПечать(ВыборкаДетальныеЗаписи.Значение, Истина);
		Структура.ТарифнаяСтавкаПочасоваяПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(ВыборкаДетальныеЗаписи.Значение,
									Справочники.Валюты.НайтиПоКоду(643));
	КонецЦикла;
	
		
	//Дата приема на работу
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаПриема) Тогда
		Структура.ДатаПриемаД =	Формат(КадровыеДанныеСотрудника.ДатаПриема, "ДЛФ=Д");	// 01.01.2005   
		Структура.ДатаПриемаДД = Формат(КадровыеДанныеСотрудника.ДатаПриема, "ДЛФ=ДД");	// 1 января 2005 г.		
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату приема на работу сотрудника" + Символы.ПС	
	КонецЕсли; 
	
	//Дата увольнения
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаУвольнения) Тогда
		Структура.ДатаУвольненияД = Формат(КадровыеДанныеСотрудника.ДатаУвольнения, "ДЛФ=Д");	// 01.01.2005   
		Структура.ДатаУвольненияДД = Формат(КадровыеДанныеСотрудника.ДатаУвольнения, "ДЛФ=ДД");	// 1 января 2005 г.		
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату увольнения сотрудника" + Символы.ПС	
	КонецЕсли;

	
	
	//Трудовой договор номер
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.НомерДоговораКонтракта) Тогда
		Структура.Вставить("НомерТрудовогоДоговора",	КадровыеДанныеСотрудника.НомерДоговораКонтракта);	// 182
	Иначе
		//Ошибки = Ошибки + "Не удалось определить номер договора сотрудника" + Символы.ПС;
	КонецЕсли;
	
	//Трудовой договор Дата
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаДоговораКонтракта) Тогда
		Структура.Вставить("ДатаТрудовогоДоговораД",	Формат(КадровыеДанныеСотрудника.ДатаДоговораКонтракта, "ДЛФ=Д"));	// 01.01.2005   
		Структура.Вставить("ДатаТрудовогоДоговораДД",	Формат(КадровыеДанныеСотрудника.ДатаДоговораКонтракта, "ДЛФ=ДД"));	// 1 января 2005 г.
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату договора сотрудника" + Символы.ПС;
	КонецЕсли; 

	//Номер приказа и дата
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ПриказОПриеме) Тогда
		Структура.Вставить("ПриказОПриеме",	КадровыеДанныеСотрудника.ПриказОПриеме);					// ссылка  
		Структура.Вставить("ПриказОПриемеНомер",	КадровыеДанныеСотрудника.ПриказОПриеме.Номер);		// 0П00-000182  
		Структура.Вставить("ДатаПриказаД",	Формат(КадровыеДанныеСотрудника.ПриказОПриеме.Дата, "ДЛФ=Д"));	// 01.01.2005   
		Структура.Вставить("ДатаПриказаДД",	Формат(КадровыеДанныеСотрудника.ПриказОПриеме.Дата, "ДЛФ=ДД"));	// 1 января 2005 г.
	Иначе
		//Ошибки = Ошибки + "Не удалось определить приказ у сотрудника" + Символы.ПС;
	КонецЕсли; 
	
	//Дата начала трудового договора
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаНачала) Тогда
		Структура.Вставить("ДатаНачалаТрудовогоДоговора",	КадровыеДанныеСотрудника.ДатаНачала);	// 01.01.2005   
		Структура.Вставить("ДатаНачалаТрудовогоДоговораД",	Формат(КадровыеДанныеСотрудника.ДатаНачала, "ДЛФ=Д"));	// 01.01.2005   
		Структура.Вставить("ДатаНачалаТрудовогоДоговораДД",	Формат(КадровыеДанныеСотрудника.ДатаНачала, "ДЛФ=ДД"));	// 1 января 2005 г.
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату начала трудового договора у сотрудника" + Символы.ПС;
	КонецЕсли;  
	
	//Дата окончания трудового договора
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ДатаНачала) Тогда
		Структура.Вставить("ДатаОкончанияТрудовогоДоговораД",	Формат(КадровыеДанныеСотрудника.ДатаОкончания, "ДЛФ=Д"));	// 01.01.2005   
		Структура.Вставить("ДатаОкончанияТрудовогоДоговораДД",	Формат(КадровыеДанныеСотрудника.ДатаОкончания, "ДЛФ=ДД"));	// 1 января 2005 г.
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату окончания трудового договора у сотрудника" + Символы.ПС;
	КонецЕсли; 
	
	
	//Срок Заключения Договора
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.СрочныйДоговор) И КадровыеДанныеСотрудника.СрочныйДоговор Тогда
		Структура.СрокЗаключенияДоговора			= "Определенный срок" + " до " + Структура.ДатаОкончанияТрудовогоДоговораДД;  
		Структура.СрокЗаключенияДоговораОписание	= КадровыеДанныеСотрудника.СрокЗаключенияДоговора ;
		Структура.ОснованиеСрочногоДоговора 		= КадровыеДанныеСотрудника.ОснованиеСрочногоДоговора;	
	КонецЕсли;
	
	//ПродолжительностьРабочейНедели
	Если ЗначениеЗАполнено(КадровыеДанныеСотрудника.ГрафикРаботы) Тогда
		Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ГрафикРаботы.ДлительностьРабочейНедели) Тогда
			Структура.ПродолжительностьРабочейНедели = КадровыеДанныеСотрудника.ГрафикРаботы.ДлительностьРабочейНедели;	
		Иначе
			//Ошибки = Ошибки + "Не удалось определить продолжительность рабочей недели в графике" + Символы.ПС;			
		КонецЕсли;
	Иначе
		//Ошибки = Ошибки + "Не удалось определить график работы в документе" + Символы.ПС;				
	КонецЕсли;

	//ВидЗанятости
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.ВидЗанятости) Тогда
		Структура.ВидЗанятости					= Строка(КадровыеДанныеСотрудника.ВидЗанятости);
		Структура.ВидЗанятостиРод				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(КадровыеДанныеСотрудника.ВидЗанятости), 2);
		Структура.ВидЗанятостиДат				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(КадровыеДанныеСотрудника.ВидЗанятости), 3);
		Структура.ВидЗанятостиВин				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(КадровыеДанныеСотрудника.ВидЗанятости), 4);
		Структура.ВидЗанятостиТвор				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(КадровыеДанныеСотрудника.ВидЗанятости), 5);
		Структура.ВидЗанятостиПред				= СклонениеПредставленийОбъектов.ПросклонятьПредставление(Строка(КадровыеДанныеСотрудника.ВидЗанятости), 6);
	Иначе
		//Ошибки = Ошибки + "Не заполнен вид занятости в документе" + Символы.ПС;		
	КонецЕсли;
	
	// Оптуска
	ЗаполнитьОтпускаИзРегистра(Структура, Сотрудник);
	
	// Количество ставок
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КадроваяИсторияСотрудниковСрезПоследних.КоличествоСтавок КАК КоличествоСтавок
		|ИЗ
		|	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(&ДатаОкончания, Сотрудник = &Сотрудник) КАК КадроваяИсторияСотрудниковСрезПоследних";
	
	Запрос.УстановитьПараметр("ДатаОкончания", ТекущаяДата());
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Структура.КоличествоСтавок = ВыборкаДетальныеЗаписи.КоличествоСтавок;
	КонецЦикла;
	
	// Доля ставки
	Если Структура.КоличествоСтавок = 1 Тогда
		Структура.ДоляСтавки = "на полную ставку";
	ИначеЕсли Структура.КоличествоСтавок <> " - " Тогда
		Структура.ДоляСтавки = " на " + Структура.КоличествоСтавок + " ставки";	
	КонецЕсли;    
	
	// Класс условий (спецоценка)
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	КлассыУсловийТрудаПоДолжностямСрезПоследних.КлассУсловийТруда КАК КлассУсловийТруда
		|ИЗ
		|	РегистрСведений.КлассыУсловийТрудаПоДолжностям.СрезПоследних(&ДатаПриема, Должность = &Должность) КАК КлассыУсловийТрудаПоДолжностямСрезПоследних";
	 
	Запрос.УстановитьПараметр("ДатаПриема", ДатаАктуальности);
	Запрос.УстановитьПараметр("Должность", КадровыеДанныеСотрудника.ДолжностьПоШтатномуРасписанию);
	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
		Структура.КлассУсловийСпецоценка = ВыборкаДетальныеЗаписи.КлассУсловийТруда;
	КонецЦикла;
	
	//МестоВыплаты
	Если ЗначениеЗАполнено(КадровыеДанныеСотрудника.МестоВыплаты) Тогда
		Если ТипЗнч(КадровыеДанныеСотрудника.МестоВыплаты) = ТИП("СправочникСсылка.БанковскиеСчетаКонтрагентов") Тогда 
			Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.МестоВыплаты.Банк) Тогда
				Структура.БанкИННСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.Банк.ИНН;	
				Структура.БанкКорСчетСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.Банк.КоррСчет;
				//Структура.БанкКППСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.Банк.ИНН;
				Структура.БанкБИКСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.Банк.БИКРКЦ;
				Структура.БанкСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.Банк.Наименование;
			КонецЕсли;
			
			Структура.БанкСчетСотрудника = КадровыеДанныеСотрудника.МестоВыплаты.НомерСчета;
		КонецЕсли;
	Иначе
		//Ошибки = Ошибки + "Не удалось определить место выплаты" + Символы.ПС;		
	КонецЕсли;

	
КонецПроцедуры	

&НаСервере
Процедура ПолучитьОбщиеДанныеДокумента(Документ, Структура, Ошибки)
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	Структура.Вставить("ДатаДокументаД", 			"«_____» ___________ 20__ г.");	// 01.01.2005
	Структура.Вставить("ДатаДокументаДД", 			"«_____» ___________ 20__ г.");	// 1 января 2005 г.
		
	Структура.Вставить("НомерДокумента", 			"___"); // ПП-1 / 14, типовой механизм при печати номеров в документах
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	Структура.ДатаДокументаД	= Формат(Документ.Дата, "ДЛФ=Д");	// 01.01.2005
	Структура.ДатаДокументаДД	= Формат(Документ.Дата, "ДЛФ=ДД");	// 1 января 2005 г.
	
	Структура.НомерДокумента 	= ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Документ.Номер, Ложь, Истина);

КонецПроцедуры	

&НаСервере
Процедура ПолучитьДанныеПримемаНаРаботу(Документ, Структура, Ошибки)
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	Структура.Вставить("ИспытательныйСрокЧисло", 	"без срока испытания");							// 3
	Структура.Вставить("ИспытательныйСрокПрописью", "без срока испытания");							// Три
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	//Испытательный Срок
	ПараметрыПредметаИсчисления = "месяц,месяца,месяцев,м,,,,,0";
	ФорматнаяСтрока = "Л=ru_RU"; 
      
   Попытка
		Если ЗначениеЗаполнено(Документ.ДлительностьИспытательногоСрока) Тогда 
			Структура.Вставить("ИспытательныйСрокЧисло", Документ.ДлительностьИспытательногоСрока);
			Структура.Вставить("ИспытательныйСрокПрописью", ЧислоПрописью(Документ.ДлительностьИспытательногоСрока,ФорматнаяСтрока,
																			ПараметрыПредметаИсчисления));
			
		КонецЕсли;
	Исключение КонецПопытки;
		
	
		
КонецПроцедуры	

&НаСервере
Процедура ПолучитьДанныеГПХ(Документ, Структура, Ошибки)

	//--------------------------------------------------------------------------------------------------------------------------------------//
	Структура.Вставить("ДатаДНачалаГПХ",			"«_____» ___________ 20__ г."); 	// 01.01.2005
	Структура.Вставить("ДатаДДНачалаГПХ",			"«_____» ___________ 20__ г."); // 1 января 2005 г.

	Структура.Вставить("ДатаДОкончаниеГПХ",			"«_____» ___________ 20__ г."); 	// 01.01.2005
	Структура.Вставить("ДатаДДОкончаниеГПХ",		"«_____» ___________ 20__ г."); // 1 января 2005 г.
	
	Структура.Вставить("НомерПервичногоДокумента",	"_____"); 				// 123
    Структура.Вставить("НомерГПХ",					"_____"); 				// 123


	Структура.Вставить("СуммаДоговора", 			"________");  			// 102,00
	Структура.Вставить("СуммаДоговораНаПечать",		"__________________");  // 102 руб. 00 коп.
	Структура.Вставить("СуммаДоговораПрописью",		"__________________");  // сто два рубля 00 коп. 
	
	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	//ДатаДНачалаГПХ
	Если ЗначениеЗаполнено(Документ.ДатаОкончания) Тогда
		Структура.ДатаДНачалаГПХ	 	= Формат(Документ.ДатаНачала, "ДЛФ=Д");		// 01.01.2005
		Структура.ДатаДДНачалаГПХ		= Формат(Документ.ДатаНачала, "ДЛФ=ДД");		// 1 января 2005 г. 
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату окончания договора" + Символы.ПС;	
	КонецЕсли;

	//ДатаДОкончаниеГПХ
	Если ЗначениеЗаполнено(Документ.ДатаОкончания) Тогда
		Структура.ДатаДОкончаниеГПХ	 	= Формат(Документ.ДатаОкончания, "ДЛФ=Д");		// 01.01.2005
		Структура.ДатаДДОкончаниеГПХ	= Формат(Документ.ДатаОкончания, "ДЛФ=ДД");		// 1 января 2005 г. 
	Иначе
		//Ошибки = Ошибки + "Не удалось определить дату окончания договора" + Символы.ПС;	
	КонецЕсли; 
	
	//Номер первичного документа и номер гпх
	Если ЗначениеЗаполнено(Документ.НомерПервичногоДокумента) Тогда
		Структура.НомерГПХ	 					= ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Документ.Номер, Ложь, Истина); 
		Если ЗначениеЗаполнено(Документ.НомерПервичногоДокумента) Тогда
			Структура.НомерПервичногоДокумента	= Документ.НомерПервичногоДокумента;
		Иначе
			Структура.НомерПервичногоДокумента	= Структура.НомерГПХ;
		КонецЕсли;
	Иначе
		//Ошибки = Ошибки + "Не удалось определить номер договора" + Символы.ПС;	
	КонецЕсли;


	
	//СуммаДоговора
	Если ЗначениеЗаполнено(Документ.Сумма) Тогда
		Структура.СуммаДоговора = Документ.Сумма;
		Структура.СуммаДоговораНаПечать = ЗарплатаКадрыОтчеты.ТарифнаяСтавкаНаПечать(Документ.Сумма, Истина);
		Структура.СуммаДоговораПрописью = РаботаСКурсамиВалют.СформироватьСуммуПрописью(Документ.Сумма, Справочники.Валюты.НайтиПоКоду(643));
	Иначе
		//Ошибки = Ошибки + "Не удалось определить сумму договора" + Символы.ПС;	
	КонецЕсли;	

КонецПроцедуры	
	
&НаСервере
Процедура ЗаполнитьДополнительныеДанные(Сотрудник, Документ, Структура, Ошибки)
	
	//--------------------------------------------------------------------------------------------------------------------------------------// 
	
	// Дополнительные данные на те случаи, когда нужны параметры применымие только к конкретному клиенту
	
	//Структура.Вставить("СпециалистПоКадрам",	СпециалистПоКадрам); 	// 48    
	//Структура.Вставить("ДопПремия",				""); 	// 48  
	Структура.Вставить("ОтпускЗаНенормируемость",	"___");						// 10 
	Структура.Вставить("ПроцентнаяНадбавкаЗаРазделениеДняНаЧасти", "50");

	//--------------------------------------------------------------------------------------------------------------------------------------//
	
	//Отпуск за ненормируемость и др. отпуска по их видам
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.КоличествоДнейВГод КАК КоличествоДнейВГод,
		|	ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
		|ИЗ
		|	РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(&Дата, Сотрудник = &Сотрудник) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних";
	
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
	Если Структура.Свойство("ПриказОПриеме") Тогда // на сотрудника заведен прием и берем дату начала трудового договора.
		Запрос.УстановитьПараметр("Дата", КонецДня(Структура.ДатаНачалаТрудовогоДоговора));	
	Иначе // Значит сотрудник занесен начальным ШР 
		Запрос.УстановитьПараметр("Дата", КонецДня(ТекущаяДата()));
	КонецЕсли;
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Если Выборка.ВидЕжегодногоОтпуска.Наименование = "Отпуск за ненормированный рабочий день" Тогда
			Структура["ОтпускЗаНенормируемость"] = Выборка.КоличествоДнейВГод; 
		КонецЕсли;
	КонецЦикла;
	
	// Выбор оклада или ставки
	Если Структура.ТарифнаяСтавкаПочасоваяЧисло <> "_______" Тогда
		Структура.ТарифнаяСтавкаЧисло = "—";
	Иначе
		Структура.ТарифнаяСтавкаПочасоваяЧисло = "—";	
	КонецЕсли;   
	
	// Испытательный срок из дополнительного реквизита
	Если НЕ Структура.Свойство("ИспытательныйСрокЧисло") Тогда 
		Структура.Вставить("ИспытательныйСрокЧисло", 	"без срока испытания");							// 3
		Структура.Вставить("ИспытательныйСрокПрописью", "без срока испытания");							// Три
		
		ИспытательныйСрокВСотруднике = ПолучитьЗначениеДопРеквизитаСведения(Сотрудник, "itpИспытательныйСрок");
		Если ЗначениеЗаполнено(ИспытательныйСрокВСотруднике) Тогда 
			//Испытательный Срок
			ПараметрыПредметаИсчисления = "месяц,месяца,месяцев,м,,,,,0";
			ФорматнаяСтрока = "Л=ru_RU"; 
			Структура.ИспытательныйСрокЧисло = ИспытательныйСрокВСотруднике;
			Структура.ИспытательныйСрокПрописью = ЧислоПрописью(ИспытательныйСрокВСотруднике,ФорматнаяСтрока,
																			ПараметрыПредметаИсчисления)
		КонецЕсли;	
	КонецЕсли;
		
		
КонецПроцедуры	

#Область ВспомогательныеФункции

&НаСервере
Функция ОпределитьОрганизацию(Сотрудник, Документ = Неопределено) 
	
	КадровыеДанныеСотрудника = КадровыйУчет.КадровыеДанныеСотрудников(Истина, 
    ОбщегоНазначенияКлиентСервер.ЗначениеВМассиве(Сотрудник), 
    "Организация", ТекущаяДата())[0];  
	
	Если ЗначениеЗаполнено(КадровыеДанныеСотрудника.Организация) Тогда
		Возврат КадровыеДанныеСотрудника.Организация;
	КонецЕсли;
	
	Организация = Неопределено;
	
	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Организации.Ссылка КАК Ссылка
		|ИЗ
		|	Справочник.Организации КАК Организации
		|ГДЕ
		|	НЕ Организации.ПометкаУдаления";
	РезультатЗапроса = Запрос.Выполнить().Выгрузить();
	Если РезультатЗапроса.Количество() = 1 Тогда 
		//Если у нас только 1 организация
		Организация = РезультатЗапроса[0].Ссылка;
	Иначе
		//Если у нас несколько организаций, ищем по сотруднику документ принятия на работу и берем организацию оттуда.
		Запрос = Новый Запрос;
		Запрос.Текст = 
			"ВЫБРАТЬ ПЕРВЫЕ 1
			|	КадроваяИсторияСотрудниковСрезПоследних.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
			|	КадроваяИсторияСотрудниковСрезПоследних.Организация КАК Организация
			|ИЗ
			|	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних(, Сотрудник = &Сотрудник) КАК КадроваяИсторияСотрудниковСрезПоследних";	
		Запрос.УстановитьПараметр("Сотрудник", Сотрудник);
		РезультатЗапроса = Запрос.Выполнить().Выгрузить();
		Если РезультатЗапроса.Количество() = 1 Тогда
			Организация = ?(ЗначениеЗаполнено(РезультатЗапроса[0].Организация),РезультатЗапроса[0].Организация,РезультатЗапроса[0].ГоловнаяОрганизация);	
		КонецЕсли;
	КонецЕсли;

	Если НЕ ЗначениеЗаполнено(Организация) Тогда
		Попытка
			Организация = Документ.Организация;
		Исключение
		КонецПопытки;
	КонецЕсли;
	
	Возврат Организация;
	
КонецФункции

&НаСервере
Процедура ЗаполнитьОтпускаИзРегистра(Структура, Сотрудник)

	Запрос = Новый Запрос;
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.КоличествоДнейВГод КАК КоличествоДнейВГод,
		|	ПоложенныеВидыЕжегодныхОтпусковСрезПоследних.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска
		|ИЗ
		|	РегистрСведений.ПоложенныеВидыЕжегодныхОтпусков.СрезПоследних(, Сотрудник = &Сотрудник) КАК ПоложенныеВидыЕжегодныхОтпусковСрезПоследних";
	
	Запрос.УстановитьПараметр("Сотрудник", Сотрудник);	
	РезультатЗапроса = Запрос.Выполнить();
	Выборка = РезультатЗапроса.Выбрать();
	
	Пока Выборка.Следующий() Цикл
		Если Выборка.ВидЕжегодногоОтпуска = Справочники.ВидыОтпусков.Основной Тогда
			Структура["ОтпускОсновной"] = Выборка.КоличествоДнейВГод; 
		ИначеЕсли  ПолучитьФункциональнуюОпцию("ИспользоватьНадбавкуЗаВредность") И Выборка.ВидЕжегодногоОтпуска = Справочники.ВидыОтпусков.ОтпускЗаВредность Тогда
			Структура["ОтпускЗаВредность"] = Выборка.КоличествоДнейВГод;
		ИначеЕсли Выборка.ВидЕжегодногоОтпуска = Справочники.ВидыОтпусков.Северный Тогда
			Структура["ОтпускСеверные"] = Выборка.КоличествоДнейВГод;
		КонецЕсли;
	КонецЦикла;
	
	
КонецПроцедуры

#КонецОбласти

#Область РаботаСДополнительнымиРеквизитами

Процедура УстановитьЗначениеДопРеквизитаСведения(СсылкаНаОбъект, ИмяДляРазработчиков, Значение)  
	
	Таблица = Новый ТаблицаЗначений;
	Таблица.Колонки.Добавить("Свойство");
	Таблица.Колонки.Добавить("Значение");
	Таблица.Очистить();	
	
	Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяДляРазработчиков);	

	Строка = Таблица.Добавить();
	Строка.Свойство = Свойство;
	Строка.Значение = Значение;
	
	УправлениеСвойствами.ЗаписатьСвойстваУОбъекта(СсылкаНаОбъект, Таблица);
	
КонецПроцедуры

Функция ПолучитьЗначениеДопРеквизитаСведения(СсылкаНаОбъект, ИмяДляРазработчиков)  
	
	Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту("Имя", ИмяДляРазработчиков);
	Возврат УправлениеСвойствами.ЗначениеСвойства(СсылкаНаОбъект, Свойство);
	
КонецФункции

#КонецОбласти
0
{427} Высокая цикломатическая сложность: 32
Орфографическая ошибка в ПолучитьДанныеПримемаНаРаботу (найдено 3): Примема
Орфографическая ошибка в Михейцева (найдено 2): Михейцева
Орфографическая ошибка в Михейцевой (найдено 8): Михейцевой
Орфографическая ошибка в Михейцеву (найдено 2): Михейцеву
Орфографическая ошибка в СнилсСотрудника (найдено 3): Снилс
Орфографическая ошибка в ПросклоненныеФИО (найдено 31): Просклоненные
Орфографическая ошибка в Имейл (найдено 3): Имейл
Орфографическая ошибка в СписокПОказателей (найдено 2): Оказателей
Орфографическая ошибка в ДолжнРук (найдено 8): Должн
Орфографическая ошибка в имейл: имейл
Орфографическая ошибка в КлассУсловийСпецоценка (найдено 2): Спецоценка
Орфографическая ошибка в ПроцентРайонныйКОэффициент: Оэффициент
Орфографическая ошибка в Оптуска: Оптуска
Орфографическая ошибка в спецоценка: спецоценка
Орфографическая ошибка в применымие: применымие
Орфографическая ошибка в ОтпускЗаНенормируемость (найдено 2): Ненормируемость
Орфографическая ошибка в ненормируемость: ненормируемость

См. также

Шаблон внешней печатной формы

Шаблон внешней печатной формы

ФорматыСохраненияТабличногоДокумента (БСП)

МакетИзДвоичныхДанных (БСП)

Масштаб в печатной форме

ПараметрыШаблона (БСП)

ПечатныеФормыПоОбъектам (БСП)

ВидОбработкиПечатнаяФорма (БСП)

ИнициализироватьПечатнуюФорму (БСП)

Модератору