Поменять местами фамилию и инициалы

1. user1416843 29.07.22 09:31 Сейчас в теме
Добрый день! нужно поменять местами инициалы и фамилию во ВПФ Т1 в подписи ответственного (Чтобы инициалы стояли после фамилии), что-то не получается, подскажите, пожалуйста, как правильно)
Если что Конф ЗКГУ 3.1
Я там делала жалкие попытки выполнить задачу, но получилось плохо)
ТаблицаОтветственныхЛиц = Новый ТаблицаЗначений;
	ТаблицаОтветственныхЛиц.Колонки.Добавить("Организация", Новый ОписаниеТипов("СправочникСсылка.Организации"));
	ТаблицаОтветственныхЛиц.Колонки.Добавить("РуководительРасшифровкаПодписи", Новый ОписаниеТипов("Строка"));
	
	Сведения = Новый СписокЗначений;
	// Получаем данные из глобальной общей функции.
	Сведения.Добавить("", "ФИОРук");
	
	Выборка = Запрос.Выполнить().Выбрать();
	Пока Выборка.Следующий() Цикл
		
		Если ЗначениеЗаполнено(Выборка.Организация) Тогда
			
			НоваяСтрокаОтветственныхЛиц = ТаблицаОтветственныхЛиц.Добавить();
			НоваяСтрокаОтветственныхЛиц.Организация = Выборка.Организация;
			
			ОргСведения = РегламентированнаяОтчетностьВызовСервера.ПолучитьСведенияОбОрганизации(Выборка.Организация, Выборка.Период, Сведения);
			ОргСведения.Свойство("ФИОРук", 		НоваяСтрокаОтветственныхЛиц.РуководительРасшифровкаПодписи);

			//ОргСведения.Свойство("ФИОРук", 		НоваяСтрокаОтветственныхЛиц.РуководительРасшифровкаПодписи);
			//ОргСведения.Свойство("ФИОРук", 		(НоваяСтрокаОтветственныхЛиц.РуководительРасшифровкаПодписи.Фамилия + Лев(НоваяСтрокаОтветственныхЛиц.РуководительРасшифровкаПодписи.Имя, 1) + ". " +  лев(НоваяСтрокаОтветственныхЛиц.РуководительРасшифровкаПодписи.Отчество, 1) + ". "));

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

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

Функция КадровыеДанныеДляПечатиКадровыхПриказов() Экспорт
	
	Возврат "ФИОПолные,Пол,ТабельныйНомер,Организация,Подразделение,Должность,ДатаПриема,ДатаУвольнения" + ",ТрудовойДоговорНомер,ТрудовойДоговорДата,РазрядКатегория";
	
КонецФункции

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

Процедура ВывестиДанныеКадровогоПриказаВТабличныйДокумент(Макет, ТабличныйДокумент, МассивДанныхЗаполнения, ОбъектыПечати)
	
	Макет = ПолучитьМакет("ПФ_MXL_Т1");
	
	Если Макет <> Неопределено Тогда
		
		ПервыйПриказ = Истина;
		Для каждого ПараметрыМакета Из МассивДанныхЗаполнения Цикл
			Если Не ПервыйПриказ Тогда
				ТабличныйДокумент.ВывестиГоризонтальныйРазделительСтраниц();
			Иначе
				ПервыйПриказ = Ложь;
			КонецЕсли;
			
			НомерСтрокиНачало = ТабличныйДокумент.ВысотаТаблицы + 1;
			
			Макет.Параметры.Заполнить(ПараметрыМакета);
			ОбластьМакетаШапка = Макет.ПолучитьОбласть("Шапка"); // Шапка документа
			ТабличныйДокумент.Вывести(ОбластьМакетаШапка);
			ОбластьМакетаРаботник = Макет.ПолучитьОбласть("Работник");
			ТабличныйДокумент.Вывести(ОбластьМакетаРаботник);
			//VL НАДБАВКИ
			if МассивДанныхЗаполнения[0].Цел_01 > 0 then
				ОбластьМакетаНадбавка_01 = Макет.ПолучитьОбласть("Надбавка_01");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_01);
			endif;
			if МассивДанныхЗаполнения[0].Цел_02 > 0 then
				ОбластьМакетаНадбавка_02 = Макет.ПолучитьОбласть("Надбавка_02");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_02);
			endif;
			if МассивДанныхЗаполнения[0].Цел_03 > 0 then
				ОбластьМакетаНадбавка_03 = Макет.ПолучитьОбласть("Надбавка_03");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_03);
			endif;
			if МассивДанныхЗаполнения[0].Цел_04 > 0 then			
				ОбластьМакетаНадбавка_04 = Макет.ПолучитьОбласть("Надбавка_04");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_04);
			endif;
			if МассивДанныхЗаполнения[0].Цел_05 > 0 then			
				ОбластьМакетаНадбавка_05 = Макет.ПолучитьОбласть("Надбавка_05");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_05);
			endif;
			if МассивДанныхЗаполнения[0].Цел_06 > 0 then						
				ОбластьМакетаНадбавка_06 = Макет.ПолучитьОбласть("Надбавка_06");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_06);
			endif;
			if МассивДанныхЗаполнения[0].Цел_07 > 0 then									
				ОбластьМакетаНадбавка_07 = Макет.ПолучитьОбласть("Надбавка_07");
				ТабличныйДокумент.Вывести(ОбластьМакетаНадбавка_07);
			endif;
			
			ОбластьМакетаНизы = Макет.ПолучитьОбласть("Низы");
			ТабличныйДокумент.Вывести(ОбластьМакетаНизы);
			ОбластьМакетаПодвал = Макет.ПолучитьОбласть("Подвал");
			ТабличныйДокумент.Вывести(ОбластьМакетаПодвал);
			
			//ТабличныйДокумент.Вывести(Макет);
			
			ТабличныйДокумент.НижнийКолонтитул.ВертикальноеПоложение = ВертикальноеПоложение.Верх;    
			ТабличныйДокумент.НижнийКолонтитул.НачальнаяСтраница = 1;
			ТабличныйДокумент.НижнийКолонтитул.Шрифт = Новый Шрифт("Arial", 7);
			ТабличныйДокумент.НижнийКолонтитул.ТекстСлева = "Исполнитель: " + ПользователиИнформационнойБазы.ТекущийПользователь().ПолноеИмя;
			ТабличныйДокумент.РазмерКолонтитулаСнизу = 50;		
			ТабличныйДокумент.НижнийКолонтитул.Выводить = Истина;			
			
			УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабличныйДокумент, НомерСтрокиНачало, ОбъектыПечати, ПараметрыМакета.Ссылка);	
			
		КонецЦикла;
		
	КонецЕсли;
	
КонецПроцедуры	

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

	Возврат Параметры;
	
КонецФункции	

Процедура ЗаполнитьПараметрыКадровогоПриказа(Параметры, КадровыеДанные, УчитыватьНастройкиФормированияПечатныхФорм = Истина)
	
	ЗаполнитьЗначенияСвойств(Параметры, КадровыеДанные);
	
	НастройкиПечатныхФорм = ЗарплатаКадрыПовтИсп.НастройкиПечатныхФорм();
	
	Если НЕ УчитыватьНастройкиФормированияПечатныхФорм
		ИЛИ НастройкиПечатныхФорм.УдалятьПрефиксыОрганизацииИИБИзНомеровКадровыхПриказов Тогда
		
		Параметры.НомерДок = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Параметры.НомерДок, Истина, Истина);
		
	КонецЕсли;
	
	Если УчитыватьНастройкиФормированияПечатныхФорм
		И НастройкиПечатныхФорм.ВыводитьПолнуюИерархиюПодразделений
		И ЗначениеЗаполнено(Параметры.Подразделение) Тогда
		
		Параметры.Подразделение = Параметры.Подразделение.ПолноеНаименование();
		
	КонецЕсли; 
	
	Параметры.ДатаДок = ?(ЗначениеЗаполнено(Параметры.ДатаДок), Параметры.ДатаДок, ТекущаяДатаСеанса());
	Параметры.ТабельныйНомер = ПрефиксацияОбъектовКлиентСервер.УдалитьПрефиксыИзНомераОбъекта(Параметры.ТабельныйНомер, Истина, Истина);
	
	Если ЗначениеЗаполнено(Параметры.ТрудовойДоговорДата) Тогда
		
		ПредставлениеДатыТрудовогоДоговора  = Формат(Параметры.ТрудовойДоговорДата, "ДЛФ=DD");
		
		Параметры.ТрудовойДоговорЧисло = СокрЛП(Лев(ПредставлениеДатыТрудовогоДоговора,2));
		Параметры.ТрудовойДоговорМесяцГод = СокрЛП(Прав(ПредставлениеДатыТрудовогоДоговора, СтрДлина(ПредставлениеДатыТрудовогоДоговора)-2));
		
	КонецЕсли; 
	
	Если ЗначениеЗаполнено(Параметры.РазрядКатегория) Тогда
		Параметры.РазрядКатегория = ", " + Параметры.РазрядКатегория;
	КонецЕсли; 
	
	
КонецПроцедуры	

Функция ПараметрыКадровогоПриказа() Экспорт
	
	СтруктураПараметровКадровогоПриказа = Новый Структура;
	
	СтруктураПараметровКадровогоПриказа.Вставить("Ссылка");
	СтруктураПараметровКадровогоПриказа.Вставить("НазваниеОрганизации", "");
	СтруктураПараметровКадровогоПриказа.Вставить("КодПоОКПО", "");
	СтруктураПараметровКадровогоПриказа.Вставить("НомерДок", "");
	СтруктураПараметровКадровогоПриказа.Вставить("ДатаДок", '00010101');
	СтруктураПараметровКадровогоПриказа.Вставить("Работник", "");
	СтруктураПараметровКадровогоПриказа.Вставить("Пол");
	СтруктураПараметровКадровогоПриказа.Вставить("ТрудовойДоговорЧисло", "    ");
	СтруктураПараметровКадровогоПриказа.Вставить("ТрудовойДоговорМесяцГод", "______________ 20__");
	СтруктураПараметровКадровогоПриказа.Вставить("ТрудовойДоговорДата", '00010101');
	СтруктураПараметровКадровогоПриказа.Вставить("ТрудовойДоговорНомер", "____");
	СтруктураПараметровКадровогоПриказа.Вставить("ТабельныйНомер", "");
	СтруктураПараметровКадровогоПриказа.Вставить("Подразделение");
	СтруктураПараметровКадровогоПриказа.Вставить("Должность");
	СтруктураПараметровКадровогоПриказа.Вставить("РазрядКатегория");
	СтруктураПараметровКадровогоПриказа.Вставить("ДолжностьРуководителя", "");
	СтруктураПараметровКадровогоПриказа.Вставить("РуководительРасшифровкаПодписи", ""); 
	//ПараметрыПодвал.Вставить("РуководительРасшифровкаПодписи", лев(док.Руководитель.Имя, 1) + ". " +  лев(док.Руководитель.Отчество, 1) + ". " + док.Руководитель.Фамилия);

	
	Возврат СтруктураПараметровКадровогоПриказа;
		
Показать
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. _liana 29.07.22 09:38 Сейчас в теме
Сейчас как выходит?
так: И.О. Фамилия?
3. user1416843 29.07.22 09:38 Сейчас в теме
4. _liana 29.07.22 09:44 Сейчас в теме
Сред("И.О. Фамилия",6,СтрДлина("И.О. Фамилия")-5)+" "+Лев("И.О. Фамилия",4)

Вместо "И.О. Фамилия" поставить переменную с ФИО без кавычек
5. _liana 29.07.22 09:45 Сейчас в теме
Это примитивно и сработает только если всегда есть Имя и Отчество
6. _liana 29.07.22 09:45 Сейчас в теме
Сред(РуководительРасшифровкаПодписи,6,СтрДлина(РуководительРасшифровкаПодписи)-5)+" "+Лев(РуководительРасшифровкаПодписи,4)
8. user1416843 29.07.22 09:57 Сейчас в теме
(6) это же уже в самом выводе параметров прописывать?
7. ilnur75 29.07.22 09:46 Сейчас в теме
так Вы непосредственно перед заполнением параметра сделайте преобразование ФиоРук
9. Vladimir-R 168 29.07.22 10:02 Сейчас в теме
	ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, ФизическоеЛицоСсылка, "ФамилияИО", ТекущаяДатаСеанса());
	Если ТаблицаСКадровымиДанными.Количество() > 0 Тогда
		ФамилияИО = ТаблицаСКадровымиДанными[0].ФамилияИО;
	Иначе
		ФамилияИО = ФизическоеЛицоСсылка.ФИО;
	КонецЕсли;
10. Vladimir-R 168 29.07.22 10:05 Сейчас в теме
или попробовать дополнить
Функция КадровыеДанныеДляПечатиКадровыхПриказов() Экспорт
    
    Возврат "ФИОПолные,Пол,ТабельныйНомер,Организация,Подразделение,Должность,ДатаПриема,ДатаУвольнения" + ",ТрудовойДоговорНомер,ТрудовойДоговорДата,РазрядКатегория" + ",ФамилияИО, ИОФамилия";
    
КонецФункции
11. user1416843 29.07.22 10:16 Сейчас в теме
(9)
ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, ФизическоеЛицоСсылка, "ФамилияИО", ТекущаяДатаСеанса());
Если ТаблицаСКадровымиДанными.Количество() > 0 Тогда
ФамилияИО = ТаблицаСКадровымиДанными[0].ФамилияИО;
Иначе
ФамилияИО = ФизическоеЛицоСсылка.ФИО;
КонецЕсли;

(10)теперь совсем параметр не выводится)
12. Vladimir-R 168 29.07.22 10:21 Сейчас в теме
(11) так а где в параметры выводите ФамилияИО ?
где то в Процедура ЗаполнитьПараметрыКадровогоПриказа надо вставить
ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, ФизическоеЛицоСсылка, "ФамилияИО", ТекущаяДатаСеанса());
Если ТаблицаСКадровымиДанными.Количество() > 0 Тогда
ФамилияИО = ТаблицаСКадровымиДанными[0].ФамилияИО;
Иначе
ФамилияИО = ФизическоеЛицоСсылка.ФИО;
КонецЕсли;
Параметры.РуководительРасшифровкаПодписи=ФамилияИО ;
13. user1416843 29.07.22 10:24 Сейчас в теме
(12)
	ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, , "ФамилияИО", ТекущаяДатаСеанса());
	Если ТаблицаСКадровымиДанными.Количество() > 0 Тогда
		ФамилияИО = ТаблицаСКадровымиДанными[0].ФамилияИО;
	Иначе
		
	КонецЕсли; 

	СтруктураПараметровКадровогоПриказа.Вставить("РуководительРасшифровкаПодписи", ФамилияИО ); 
Показать
17. Vladimir-R 168 29.07.22 10:51 Сейчас в теме
(13)
ТаблицаСКадровымиДанными = КадровыйУчет.КадровыеДанныеФизическихЛиц(Истина, , "ФамилияИО", ТекущаяДатаСеанса());


так а вы для кого ищите ФамилияИО? вы зачем ФизическоеЛицоСсылка убрали?
сюда надо ссылку на физ лицо для которого формируем строку
18. user1416843 29.07.22 10:59 Сейчас в теме
(17){ВнешняяОбработка.ПриказТ1.МодульОбъекта(854,19)}: Переменная не определена (ФизическоеЛицоСсылка)
20. Vladimir-R 168 29.07.22 12:45 Сейчас в теме
(18) так вы для какого физЛица хотите получить ФамилияИО?
21. user1416843 29.07.22 12:56 Сейчас в теме
(20)Для ответственного лица, т.е для руководителя. Извините, за то что я не понимаю(
14. user1416843 29.07.22 10:24 Сейчас в теме
(12)в самой процедуре вывода параметров
15. ishelper 29.07.22 10:42 Сейчас в теме
Эххх, 1Сники... совсем разучились со строками работать.
поз = СтрНайти(ИОФамилия, ".", НаправлениеПоиска.СКонца);
Если поз > 0 Тогда
   ФамилияИО = СокрЛП(Сред(ИОФамилия,поз+1)) + " " + Лев(ИОФамилия,поз);
Иначе
   ФамилияИО = ИОФамилия;
КонецЕсли;
16. user1416843 29.07.22 10:50 Сейчас в теме
(15)
поз = СтрНайти(ИОФамилия, ".", НаправлениеПоиска.СКонца));
Если поз > 0 Тогда
ФамилияИО = СокрЛП(Сред(ИОФамилия,поз+1)) + " " + Лев(ИОФамилия,поз);
Иначе
ФамилияИО = ИОФамилия;
КонецЕсли;


{ВнешняяОбработка.ПриказТ1.МодульОбъекта(850,81)}: Неопознанный оператор
поз = СтрНайти("РуководительРасшифровкаПодписи", ".", НаправлениеПоиска.СКонца)<<?>>); (Проверка: Сервер)
19. ishelper 29.07.22 11:00 Сейчас в теме
(16)
Неопознанный оператор
Так я вам подсказал направление, с помощью которого можно решить такую задачу, а не готовый код для копипаста.

Тем более - в вашу безразмерную простыню, которую вы нам тут вывалили в (1).

Впрочем, мои подсказки и нравоучения - впустую, это я уже понял. Ну что ж, удачи.
Оставьте свое сообщение

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