ЗУП программно создать элементы справочника на основе имеющихся

1. user1934472 13.11.23 16:47 Сейчас в теме
Доброго дня!
Подскажите пожалуйста с таким вопросом:
Необходимо программно создать элементы справочника Штатное Расписание, на основании существующий штатки.
Только нужно будет поменять пару реквизитов.
Запросом получаю имеющуюся штатку и в обходе выборки создаю новый элемент справочника записывая туда значения из выборки, но не могу понять как записать табличную часть.

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

	
	РезультатЗапроса = Запрос.Выполнить();
	
	ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
	
	Пока ВыборкаДетальныеЗаписи.Следующий() Цикл  
		
		
		//Создаем новый элемент справочника для  штатки
		
		//Шапка//
		
		НовыйЭлементШтатки = Справочники.ШтатноеРасписание.СоздатьЭлемент();  
		НовыйЭлементШтатки.Владелец = ВыборкаДетальныеЗаписи.Владелец;
		НовыйЭлементШтатки.Наименование = ВыборкаДетальныеЗаписи.Наименование;
		НовыйЭлементШтатки.Подразделение = ВыборкаДетальныеЗаписи.Подразделение;
		НовыйЭлементШтатки.Должность = ВыборкаДетальныеЗаписи.Должность;
		НовыйЭлементШтатки.РазрядКатегория = ВыборкаДетальныеЗаписи.РазрядКатегория; 
		НовыйЭлементШтатки.ГрафикРаботыСотрудников = ВыборкаДетальныеЗаписи.ГрафикРаботыСотрудников;
		НовыйЭлементШтатки.КоличествоСтавок = ВыборкаДетальныеЗаписи.КоличествоСтавок;
		НовыйЭлементШтатки.Утверждена = ВыборкаДетальныеЗаписи.Утверждена;
		НовыйЭлементШтатки.ДатаУтверждения = ВыборкаДетальныеЗаписи.ДатаУтверждения;
		НовыйЭлементШтатки.Закрыта = ВыборкаДетальныеЗаписи.Закрыта;
		НовыйЭлементШтатки.ДатаЗакрытия = ВыборкаДетальныеЗаписи.ДатаЗакрытия;      
		//
		
		//ТабЧасть//
		
		
		Для каждого стрТЧ из  НовыйЭлементШтатки.Начисления Цикл  
			
			НоваяСтрТЧ = НовыйЭлементШтатки.Начисления.Добавить();
			НоваяСтрТЧ.Начисление = ВыборкаДетальныеЗаписи.Начисление;
			НоваяСтрТЧ.Размер = ВыборкаДетальныеЗаписи.Размер;
			НоваяСтрТЧ.РазмерМин = ВыборкаДетальныеЗаписи.РазмерМин;
			НоваяСтрТЧ.РазмерМакс = ВыборкаДетальныеЗаписи.РазмерМакс;
			
		КонецЦикла;     
		
   		НовыйЭлементШтатки.Записать();	
		
	КонецЦикла;
	

КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. laperuz 46 13.11.23 17:46 Сейчас в теме
А что, просто Скопировать() нельзя вызвать, зачем эти километры кода?
3. user1934472 13.11.23 17:55 Сейчас в теме
(2) Просто в них во всех нужно будет при создании подменить подразделение.
4. laperuz 46 13.11.23 18:15 Сейчас в теме
(3)И?
НоваяПозиция = СтараяПозиция.Скопировать();
НоваяПозиция.Подразделение = НовоеПодразделение;
НоваяПозиция.Записать()
5. user1934472 13.11.23 21:19 Сейчас в теме
(4)ну вообще да , логично .
Туплю )
Спасибо
Оставьте свое сообщение

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