Исправить модуль проведения документа Начальная штатная расстановка

1. ivnik 591 23.06.21 10:11 Сейчас в теме
Всем доброго дня!
Выполнил перенос из ЗиК-7.7 (релиз 7.70.371) в ЗКГУ-3.1, используя типовой перенос. Выгрузка/загрузка данных без ошибок. Но проблема в том, что нужно чуток исправить модуль проведения документа Начальная штатная расстановка, т.е. заменить в модуле значение "ГоловнаяОрганизация" на реквизит документа "Организация" (чтобы при проведении в Регистры попадал реквизит из шапки документа).
P.S. Причина в том, что в ЗиК-7.7 в одной базе велось несколько организаций, разумеется как обособленные подразделения. После переноса в ЗКГУ-3.1 нужно их "разделить" на отдельные организации и документ Начальная штатная расстановка не позволяет это сделать.
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
3. andron77777 23.06.21 11:25 Сейчас в теме +3 $m
Модуль объекта, функция ДанныеДляПроведения (изменения выделены комментариями), актуально для релиза 3.1.18.82:

Функция ДанныеДляПроведения()
	
	ДанныеДляПроведения = Новый Структура; 
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Месяц КАК ДатаСобытия,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник КАК Сотрудник,
		//++
		//|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		||НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Организация КАК ГоловнаяОрганизация,
		//--
		|	НачальнаяШтатнаяРасстановкаСотрудники.ДолжностьПоШтатномуРасписанию КАК Позиция,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Подразделение КАК Подразделение,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Должность КАК Должность,
		|	НачальнаяШтатнаяРасстановкаСотрудники.РабочееМесто КАК РабочееМесто,
		|	НачальнаяШтатнаяРасстановкаСотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	НачальнаяШтатнаяРасстановкаСотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Аванс КАК Аванс,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости КАК ВидЗанятости,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.ВидДоговора КАК ВидДоговора,
		|	ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НачальныеДанные) КАК ВидСобытия,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник КАК ГоловнойСотрудник,
		|	ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК ОтсутствующийСотрудник,
		|	ВЫБОР
		|		КОГДА НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)
		|			ТОГДА ИСТИНА
		|		КОГДА НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник <> НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник
		|				И НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК ЭтоПодработка,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчетаСтоимостиЕдиницыВремени,
		|	НачальнаяШтатнаяРасстановкаСотрудники.СовокупнаяТарифнаяСтавка КАК СовокупнаяТарифнаяСтавка,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
		|	НачальнаяШтатнаяРасстановкаСотрудники.РазрядКатегория КАК РазрядКатегория,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Грейд КАК Грейд,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПКУ КАК ПКУ,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ДатаПрисвоения КАК ДатаПрисвоения,
		|	НачальнаяШтатнаяРасстановкаСотрудники.КлассныйЧинРанг КАК КлассныйЧинРанг,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВоинскоеСпециальноеЗвание КАК ВоинскоеСпециальноеЗвание,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ОсвобождатьСтавку КАК ОсвобождатьСтавку,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПланируемаяДатаВозврата КАК ПланируемаяДатаВозврата
		|ПОМЕСТИТЬ ВТСотрудники
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Сотрудники КАК НачальнаяШтатнаяРасстановкаСотрудники
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка = &Ссылка";
	
	Запрос.Выполнить();
	
	Запрос.УстановитьПараметр("ДатаНачала", ЗарплатаКадрыКлиентСервер.ДатаОтсчетаПериодическихСведений());
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.Позиция КАК Позиция,
		|	Сотрудники.Подразделение КАК Подразделение,
		|	Сотрудники.Должность КАК Должность,
		|	Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидДоговора КАК ВидДоговора,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник,
		|	Сотрудники.ОтсутствующийСотрудник КАК ОтсутствующийСотрудник,
		|	Сотрудники.ЭтоПодработка КАК ЭтоПодработка
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	&ДатаНачала,
		|	Сотрудники.ДействуетДо,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.Позиция,
		|	Сотрудники.Подразделение,
		|	Сотрудники.Должность,
		|	Сотрудники.КоличествоСтавок,
		|	Сотрудники.ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса,
		|	Сотрудники.Аванс,
		|	Сотрудники.ВидДоговора,
		|	ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НеподтвержденныеДанные),
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.ГоловнойСотрудник,
		|	Сотрудники.ОтсутствующийСотрудник,
		|	Сотрудники.ЭтоПодработка
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ДатаСобытия > &ДатаНачала";
	
	// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
	КадровыеДвижения = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("КадровыеДвижения", КадровыеДвижения);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК Период,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.Позиция КАК ПозицияШтатногоРасписания,
		|	ВЫБОР
		|		КОГДА Сотрудники.ЭтоПодработка
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
		|		ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
		|	КОНЕЦ КАК ВидЗанятостиПозиции,
		|	Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ПланируемаяДатаЗавершения,
		|	NULL КАК ЗамещаемыйСотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.Позиция,
		|	ВЫБОР
		|		КОГДА Сотрудники.ОсвобождатьСтавку
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Свободна)
		|		КОГДА Сотрудники.ЭтоПодработка
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
		|		ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
		|	КОНЕЦ,
		|	Сотрудники.КоличествоСтавок,
		|	Сотрудники.ПланируемаяДатаВозврата,
		|	Сотрудники.Сотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ОсвобождатьСтавку";
	
	// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
	ЗанятостьПозицийШтатногоРасписания = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ЗанятостьПозицийШтатногоРасписания", ЗанятостьПозицийШтатногоРасписания);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ГрафикРаботыСотрудниковДвижения = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ГрафикРаботыСотрудниковДвижения", ГрафикРаботыСотрудниковДвижения);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ПлановыеВыплаты = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПлановыеВыплаты", ПлановыеВыплаты);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК Период,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.ВидЗанятости,
		|	Сотрудники.ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ДвиженияВидовЗанятости = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДвиженияВидовЗанятости", ДвиженияВидовЗанятости);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаПоказатели.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаПоказатели.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаПоказатели.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Показатель КАК Показатель,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Значение КАК Значение
		|ПОМЕСТИТЬ ВТПоказателиДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Показатели КАК НачальнаяШтатнаяРасстановкаПоказатели
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаПоказатели.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаНачисления.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаНачисления.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаНачисления.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаНачисления.Начисление КАК Начисление,
		|	НачальнаяШтатнаяРасстановкаНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаНачисления.Размер КАК Размер,
		|	НачальнаяШтатнаяРасстановкаНачисления.ДатаНачала КАК ДатаНачала,
		|	НачальнаяШтатнаяРасстановкаНачисления.ДатаОкончания КАК ДатаОкончания
		|ПОМЕСТИТЬ ВТНачисленияДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Начисления КАК НачальнаяШтатнаяРасстановкаНачисления
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаНачисления.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаЛьготы.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаЛьготы.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Льгота КАК Льгота,
		|	НачальнаяШтатнаяРасстановкаЛьготы.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Размер КАК Размер
		|ПОМЕСТИТЬ ВТЛьготыДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Льготы КАК НачальнаяШтатнаяРасстановкаЛьготы
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаЛьготы.Ссылка = &Ссылка";
	
	Запрос.Выполнить();
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачисленияДокумента.Ссылка.Месяц
		|		ИНАЧЕ НачисленияДокумента.ДатаНачала
		|	КОНЕЦ КАК ДатаСобытия,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ДАТАВРЕМЯ(1, 1, 1)
		|		ИНАЧЕ ДОБАВИТЬКДАТЕ(НачисленияДокумента.ДатаОкончания, ДЕНЬ, 1)
		|	КОНЕЦ КАК ДействуетДо,
		|	НачисленияДокумента.Сотрудник КАК Сотрудник,
		|	НачисленияДокумента.Начисление КАК Начисление,
		|	ИСТИНА КАК Используется,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК ИспользуетсяПоОкончании,
		|	НачисленияДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		//++
		//|	НачисленияДокумента.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	НачисленияДокумента.Ссылка.Организация КАК ГоловнаяОрганизация,
		//--
		|	НачисленияДокумента.Размер КАК Размер
		|ИЗ
		|	ВТНачисленияДокумента КАК НачисленияДокумента
		|ГДЕ
		|	НачисленияДокумента.Начисление ССЫЛКА ПланВидовРасчета.Начисления
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЛьготыДокумента.Ссылка.Месяц,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ЛьготыДокумента.Сотрудник,
		|	ЛьготыДокумента.Льгота,
		|	ИСТИНА,
		|	ИСТИНА,
		|	ЛьготыДокумента.Сотрудник.ФизическоеЛицо,
		//++
		//|	ЛьготыДокумента.Сотрудник.ГоловнаяОрганизация,
		|	ЛьготыДокумента.Ссылка.Организация,
		//--
		|	ЛьготыДокумента.Размер
		|ИЗ
		|	ВТЛьготыДокумента КАК ЛьготыДокумента
		|ГДЕ
		|	ЛьготыДокумента.Льгота ССЫЛКА ПланВидовРасчета.Начисления";
	
	// Второй набор данных для проведения - таблица для формирования плановых начислений.
	ПлановыеНачисления = Запрос.Выполнить().Выгрузить();
	ПлановыеНачисления.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
	ДанныеДляПроведения.Вставить("ПлановыеНачисления", ПлановыеНачисления);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачисленияДокумента.Ссылка.Месяц
		|		ИНАЧЕ НачисленияДокумента.ДатаНачала
		|	КОНЕЦ КАК ДатаСобытия,
		|	НачисленияДокумента.Ссылка.Организация КАК Организация,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ДАТАВРЕМЯ(1, 1, 1)
		|		ИНАЧЕ ДОБАВИТЬКДАТЕ(НачисленияДокумента.ДатаОкончания, ДЕНЬ, 1)
		|	КОНЕЦ КАК ДействуетДо,
		|	ПоказателиДокумента.Сотрудник КАК Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель КАК Показатель,
		|	ПоказателиДокумента.Значение КАК Значение
		|ПОМЕСТИТЬ ВТПоказатели
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНачисленияДокумента КАК НачисленияДокумента
		|		ПО ПоказателиДокумента.Ссылка = НачисленияДокумента.Ссылка
		|			И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = НачисленияДокумента.ИдентификаторСтрокиВидаРасчета
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЛьготыДокумента.Ссылка.Месяц,
		|	ЛьготыДокумента.Ссылка.Организация,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ПоказателиДокумента.Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель,
		|	ПоказателиДокумента.Значение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТЛьготыДокумента КАК ЛьготыДокумента
		|		ПО ПоказателиДокумента.Ссылка = ЛьготыДокумента.Ссылка
		|			И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = ЛьготыДокумента.ИдентификаторСтрокиВидаРасчета
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ПоказателиДокумента.Ссылка.Месяц,
		|	ПоказателиДокумента.Ссылка.Организация,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ПоказателиДокумента.Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель,
		|	ПоказателиДокумента.Значение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|	И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	Показатели.ДатаСобытия КАК ДатаСобытия,
		|	Показатели.Организация КАК Организация,
		|	Показатели.ДействуетДо КАК ДействуетДо,
		|	Показатели.Сотрудник КАК Сотрудник,
		|	Показатели.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Показатели.Показатель КАК Показатель,
		|	МАКСИМУМ(Показатели.Значение) КАК Значение
		|ИЗ
		|	ВТПоказатели КАК Показатели
		|
		|СГРУППИРОВАТЬ ПО
		|	Показатели.ДатаСобытия,
		|	Показатели.Организация,
		|	Показатели.ДействуетДо,
		|	Показатели.Сотрудник,
		|	Показатели.ФизическоеЛицо,
		|	Показатели.Показатель";
	
	// Третий набор данных для проведения - таблица для формирования значений показателей начислений.
	ЗначенияПоказателей = Запрос.Выполнить().Выгрузить();
	ЗначенияПоказателей.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
	ДанныеДляПроведения.Вставить("ЗначенияПоказателейНачислений", ЗначенияПоказателей);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка.Месяц
		|		ИНАЧЕ ВЫБОР
		|				КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа)
		|					ТОГДА ДОБАВИТЬКДАТЕ(НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка, ДЕНЬ, 1)
		|				ИНАЧЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка
		|			КОНЕЦ
		|	КОНЕЦ КАК ДатаСобытия,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод КАК КоличествоДнейВГод,
		|	НЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.НеИспользовать КАК Используется,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ЕжегодныеОтпуска КАК НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыОтпусков КАК ВидыОтпусков
		|		ПО НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска = ВидыОтпусков.Ссылка
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка = &Ссылка
		|	И (НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод > 0
		|			ИЛИ ВидыОтпусков.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа))";
	
	// Четвертый набор данных для проведения - таблица для формирования положенных видов ежегодных отпусков.
	ПоложенныеЕжегодныеОтпуска = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ЕжегодныеОтпуска", ПоложенныеЕжегодныеОтпуска);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчета,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Пятый набор данных для проведения - таблица для формирования значений порядка пересчета тарифной ставки.
	ПорядокПересчетаТарифнойСтавки = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПорядокПересчетаТарифнойСтавки", ПорядокПересчетаТарифнойСтавки);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.СовокупнаяТарифнаяСтавка КАК Значение,
		|	ВЫБОР
		|		КОГДА Сотрудники.СовокупнаяТарифнаяСтавка = 0
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыТарифныхСтавок.ПустаяСсылка)
		|		ИНАЧЕ Сотрудники.ВидТарифнойСтавки
		|	КОНЕЦ КАК ВидТарифнойСтавки,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Шестой набор данных для проведения - таблица для формирования значений совокупной тарифной ставки.
	ДанныеСовокупныхТарифныхСтавок = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДанныеСовокупныхТарифныхСтавок", ДанныеСовокупныхТарифныхСтавок);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.РазрядКатегория КАК РазрядКатегория,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
		
	// Седьмой набор данных для проведения - таблица для формирования значений разряда сотрудника.
	РазрядыКатегорииСотрудников = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("РазрядыКатегорииСотрудников", РазрядыКатегорииСотрудников);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа) КАК Состояние,
		|	&ДатаНачала КАК Начало,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК Окончание,
		|	НЕОПРЕДЕЛЕНО КАК ВидВремени
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";
	
	// Данные состояний
	ДанныеСостояний = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДанныеСостояний", ДанныеСостояний);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Девятый набор данных для проведения - таблица для формирования времени регистрации документа.
	СотрудникиДаты = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("СотрудникиДаты", СотрудникиДаты);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ПоказателиДокумента.Ссылка.Месяц КАК ДатаСобытия,
		|	ПоказателиДокумента.Ссылка.Организация КАК Организация,
		|	ПоказателиДокумента.Сотрудник КАК Сотрудник,
		|	ПоказателиДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель КАК Показатель,
		|	ИСТИНА КАК Применение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПоказателиДокумента КАК ПоказателиНачислений
		|		ПО ПоказателиДокумента.Ссылка = ПоказателиНачислений.Ссылка
		|			И ПоказателиДокумента.Сотрудник = ПоказателиНачислений.Сотрудник
		|			И ПоказателиДокумента.Показатель = ПоказателиНачислений.Показатель
		|			И (ПоказателиНачислений.ИдентификаторСтрокиВидаРасчета <> 0)
		|ГДЕ
		|	ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
		|	И ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|	И ПоказателиНачислений.Показатель ЕСТЬ NULL";
	
	// Десятый набор данных для проведения - таблица для формирования применения дополнительных показателей.
	ПрименениеДополнительныхПоказателей = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПрименениеДополнительныхПоказателей", ПрименениеДополнительныхПоказателей);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ДатаОстатка,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Сотрудник,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ВидЕжегодногоОтпуска,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодНачало,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодОкончание,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Остаток КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ОстаткиОтпусковПоРабочимГодам КАК НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Ссылка = &Ссылка";
	
	// Одиннадцатый набор данных для проведения - таблица для формирования остатков отпусков.
	НачальныеОстаткиОтпусков = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("НачальныеОстаткиОтпусков", НачальныеОстаткиОтпусков);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ПКУ КАК ПКУ,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Двенадцатый набор данных для проведения - таблица для формирования значений разряда сотрудника.
	ПКУСотрудников = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПКУСотрудников", ПКУСотрудников);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ОтсутствияСдвигающиеРабочийГод.Сотрудник КАК Сотрудник,
		|	ОтсутствияСдвигающиеРабочийГод.ДатаОстатка КАК ДатаОстатка,
		|	ОтсутствияСдвигающиеРабочийГод.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
		|	ОтсутствияСдвигающиеРабочийГод.Состояние КАК Состояние,
		|	ОтсутствияСдвигающиеРабочийГод.КоличествоДней КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ОтсутствияСдвигающиеРабочийГод КАК ОтсутствияСдвигающиеРабочийГод
		|ГДЕ
		|	ОтсутствияСдвигающиеРабочийГод.Ссылка = &Ссылка";
	
	// Тринадцатый набор данных для проведения - таблица для формирования отсутствий, сдвигающих рабочий год.
	Отсутствия = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ОтсутствияСдвигающиеРабочийГод", Отсутствия);
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("Грейды");
		ДанныеГрейдовСотрудников = Модуль.ДанныеДляПроведенияНачальнойШтатнойРасстановкиГрейдыСотрудни­ков(Ссылка);
		ДанныеДляПроведения.Вставить("ДанныеГрейдовСотрудников", ДанныеГрейдовСотрудников);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыйУчет.ДистанционнаяРабота") Тогда 
		МодульДистанционнаяРабота = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРабота");
		МодульДистанционнаяРабота.НачальнаяШтатнаяРасстановкаСведенияОДистанционнойРаботе(ДанныеДляПроведения, Ссылка);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда 
		МодульОхранаТруда = ОбщегоНазначения.ОбщийМодуль("ОхранаТруда");
		МодульОхранаТруда.ПриемНаРаботуСведенияОРабочихМестахСотрудников(ДанныеДляПроведения, Запрос, "ДатаСобытия");
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
		КлассныеЧиныРангиФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОКлассныхЧинахРангах(Ссылка);
		ДанныеДляПроведения.Вставить("КлассныеЧиныРангиФизическихЛиц", КлассныеЧиныРангиФизическихЛиц);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.ВоинскиеСпециальныеЗвания") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("ВоинскиеСпециальныеЗвания");
		ВоинскиеСпециальныеЗванияФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОВоинскихСпециальныхЗвани­ях(Ссылка);
		ДанныеДляПроведения.Вставить("ВоинскиеСпециальныеЗванияФизическихЛиц", ВоинскиеСпециальныеЗванияФизическихЛиц);
	КонецЕсли;
	
	НастройкиПрограммыБюджетногоУчреждения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
	ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти = НастройкиПрограммыБюджетногоУчреждения.ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти;
	ШтатнаяРасстановкаВоеннослужащих = ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ВоеннослужащийПоПризыву
		Или ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.КонтрактВоеннослужащего;
	
	ДанныеДляПроведения.Вставить("РегистрироватьГрафикиРаботы", Не ШтатнаяРасстановкаВоеннослужащих Или ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти); 
	ДанныеДляПроведения.Вставить("ШтатнаяРасстановкаВоеннослужащих",ШтатнаяРасстановкаВоеннослужащих);
	
	Возврат ДанныеДляПроведения;
	
КонецФункции
Показать
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. user856012 14 23.06.21 11:23 Сейчас в теме
(1)
заменить в модуле значение "ГоловнаяОрганизация" на реквизит документа "Организация" (чтобы при проведении в Регистры попадал реквизит из шапки документа).
Если такие документы вводятся один раз, то, может быть, просто исправить записи в регистрах?

Обработок для этого дела - вагон и маленькая тележка, надо только выбрать самую удобную:
https://infostart.ru/public/150967/
https://infostart.ru/public/520025/
https://infostart.ru/public/552708/
https://infostart.ru/public/1148094/
и так далее...
5. ivnik 591 23.06.21 12:28 Сейчас в теме
(2) Такую обработку я могу и сам написать! Проблема в том, что при перепроведении док. "Начальная штатная расстановка" вся польза от обработки будет обнулена и нужно будет снова ее запускать, а мне нужно сдать бухам базу в так сказать "рабочем" виде.
8. user856012 14 23.06.21 12:34 Сейчас в теме
(5)
мне нужно сдать бухам базу в так сказать "рабочем" виде.
Ну, если ваше ТЗ не включает в себя "база должна остаться типовой и не создавать проблем при обновлении", то решение (возможно!) - в (3).

Хозяин - барин...
10. ivnik 591 23.06.21 12:40 Сейчас в теме
(8) Когда бухи закончат "терроризировать/отлаживать" и перепроводить этот документ, тогда я все верну на техподдержку и скрою доступ к этому документу.
4. ZergKRSK 130 23.06.21 11:29 Сейчас в теме
(1) через Расширение не предлагать?
6. ivnik 591 23.06.21 12:30 Сейчас в теме
(4) Я думал над этим, в принципе можно и через Расширение, но по-моему это будет лишняя канитель.
7. ZergKRSK 130 23.06.21 12:33 Сейчас в теме
(6) ну тогда пилите код проведения "напрямую" раз вам так удобнее
3. andron77777 23.06.21 11:25 Сейчас в теме +3 $m
Модуль объекта, функция ДанныеДляПроведения (изменения выделены комментариями), актуально для релиза 3.1.18.82:

Функция ДанныеДляПроведения()
	
	ДанныеДляПроведения = Новый Структура; 
	
	Запрос = Новый Запрос;
	Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
	
	Запрос.УстановитьПараметр("Ссылка", Ссылка);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Месяц КАК ДатаСобытия,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник КАК Сотрудник,
		//++
		//|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		||НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.Организация КАК ГоловнаяОрганизация,
		//--
		|	НачальнаяШтатнаяРасстановкаСотрудники.ДолжностьПоШтатномуРасписанию КАК Позиция,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Подразделение КАК Подразделение,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Должность КАК Должность,
		|	НачальнаяШтатнаяРасстановкаСотрудники.РабочееМесто КАК РабочееМесто,
		|	НачальнаяШтатнаяРасстановкаСотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	НачальнаяШтатнаяРасстановкаСотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Аванс КАК Аванс,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости КАК ВидЗанятости,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка.ВидДоговора КАК ВидДоговора,
		|	ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НачальныеДанные) КАК ВидСобытия,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник КАК ГоловнойСотрудник,
		|	ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка) КАК ОтсутствующийСотрудник,
		|	ВЫБОР
		|		КОГДА НачальнаяШтатнаяРасстановкаСотрудники.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)
		|			ТОГДА ИСТИНА
		|		КОГДА НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник <> НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник
		|				И НачальнаяШтатнаяРасстановкаСотрудники.Сотрудник.ГоловнойСотрудник <> ЗНАЧЕНИЕ(Справочник.Сотрудники.ПустаяСсылка)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК ЭтоПодработка,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчетаСтоимостиЕдиницыВремени,
		|	НачальнаяШтатнаяРасстановкаСотрудники.СовокупнаяТарифнаяСтавка КАК СовокупнаяТарифнаяСтавка,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВидТарифнойСтавки КАК ВидТарифнойСтавки,
		|	НачальнаяШтатнаяРасстановкаСотрудники.РазрядКатегория КАК РазрядКатегория,
		|	НачальнаяШтатнаяРасстановкаСотрудники.Грейд КАК Грейд,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПКУ КАК ПКУ,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ДатаПрисвоения КАК ДатаПрисвоения,
		|	НачальнаяШтатнаяРасстановкаСотрудники.КлассныйЧинРанг КАК КлассныйЧинРанг,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ВоинскоеСпециальноеЗвание КАК ВоинскоеСпециальноеЗвание,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ОсвобождатьСтавку КАК ОсвобождатьСтавку,
		|	НачальнаяШтатнаяРасстановкаСотрудники.ПланируемаяДатаВозврата КАК ПланируемаяДатаВозврата
		|ПОМЕСТИТЬ ВТСотрудники
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Сотрудники КАК НачальнаяШтатнаяРасстановкаСотрудники
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаСотрудники.Ссылка = &Ссылка";
	
	Запрос.Выполнить();
	
	Запрос.УстановитьПараметр("ДатаНачала", ЗарплатаКадрыКлиентСервер.ДатаОтсчетаПериодическихСведений());
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.Позиция КАК Позиция,
		|	Сотрудники.Подразделение КАК Подразделение,
		|	Сотрудники.Должность КАК Должность,
		|	Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидДоговора КАК ВидДоговора,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.ГоловнойСотрудник КАК ГоловнойСотрудник,
		|	Сотрудники.ОтсутствующийСотрудник КАК ОтсутствующийСотрудник,
		|	Сотрудники.ЭтоПодработка КАК ЭтоПодработка
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	&ДатаНачала,
		|	Сотрудники.ДействуетДо,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.Позиция,
		|	Сотрудники.Подразделение,
		|	Сотрудники.Должность,
		|	Сотрудники.КоличествоСтавок,
		|	Сотрудники.ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса,
		|	Сотрудники.Аванс,
		|	Сотрудники.ВидДоговора,
		|	ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.НеподтвержденныеДанные),
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.ГоловнойСотрудник,
		|	Сотрудники.ОтсутствующийСотрудник,
		|	Сотрудники.ЭтоПодработка
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ДатаСобытия > &ДатаНачала";
	
	// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
	КадровыеДвижения = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("КадровыеДвижения", КадровыеДвижения);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК Период,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.Позиция КАК ПозицияШтатногоРасписания,
		|	ВЫБОР
		|		КОГДА Сотрудники.ЭтоПодработка
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
		|		ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
		|	КОНЕЦ КАК ВидЗанятостиПозиции,
		|	Сотрудники.КоличествоСтавок КАК КоличествоСтавок,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ПланируемаяДатаЗавершения,
		|	NULL КАК ЗамещаемыйСотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.Позиция,
		|	ВЫБОР
		|		КОГДА Сотрудники.ОсвобождатьСтавку
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Свободна)
		|		КОГДА Сотрудники.ЭтоПодработка
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Подработка)
		|		ИНАЧЕ ЗНАЧЕНИЕ(Перечисление.ВидыЗанятостиПозицийШтатногоРасписания.Занята)
		|	КОНЕЦ,
		|	Сотрудники.КоличествоСтавок,
		|	Сотрудники.ПланируемаяДатаВозврата,
		|	Сотрудники.Сотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ОсвобождатьСтавку";
	
	// Первый набор данных для проведения - таблица для формирования кадровых движений, истории графиков, авансов.
	ЗанятостьПозицийШтатногоРасписания = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ЗанятостьПозицийШтатногоРасписания", ЗанятостьПозицийШтатногоРасписания);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ГрафикРаботыСотрудниковДвижения = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ГрафикРаботыСотрудниковДвижения", ГрафикРаботыСотрудниковДвижения);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.ДействуетДо КАК ДействуетДо,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	Сотрудники.ГрафикРаботы КАК ГрафикРаботы,
		|	Сотрудники.СпособРасчетаАванса КАК СпособРасчетаАванса,
		|	Сотрудники.Аванс КАК Аванс,
		|	Сотрудники.ВидСобытия КАК ВидСобытия,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ПлановыеВыплаты = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПлановыеВыплаты", ПлановыеВыплаты);
	
	Запрос.Текст = 
		"ВЫБРАТЬ
		|	&ДатаНачала КАК Период,
		|	Сотрудники.Сотрудник,
		|	Сотрудники.ГоловнаяОрганизация,
		|	Сотрудники.ФизическоеЛицо,
		|	Сотрудники.ВидЗанятости,
		|	Сотрудники.ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	ДвиженияВидовЗанятости = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДвиженияВидовЗанятости", ДвиженияВидовЗанятости);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаПоказатели.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаПоказатели.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаПоказатели.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Показатель КАК Показатель,
		|	НачальнаяШтатнаяРасстановкаПоказатели.Значение КАК Значение
		|ПОМЕСТИТЬ ВТПоказателиДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Показатели КАК НачальнаяШтатнаяРасстановкаПоказатели
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаПоказатели.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаНачисления.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаНачисления.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаНачисления.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаНачисления.Начисление КАК Начисление,
		|	НачальнаяШтатнаяРасстановкаНачисления.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаНачисления.Размер КАК Размер,
		|	НачальнаяШтатнаяРасстановкаНачисления.ДатаНачала КАК ДатаНачала,
		|	НачальнаяШтатнаяРасстановкаНачисления.ДатаОкончания КАК ДатаОкончания
		|ПОМЕСТИТЬ ВТНачисленияДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Начисления КАК НачальнаяШтатнаяРасстановкаНачисления
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаНачисления.Ссылка = &Ссылка
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаЛьготы.Ссылка КАК Ссылка,
		|	НачальнаяШтатнаяРасстановкаЛьготы.НомерСтроки КАК НомерСтроки,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Льгота КАК Льгота,
		|	НачальнаяШтатнаяРасстановкаЛьготы.ИдентификаторСтрокиВидаРасчета КАК ИдентификаторСтрокиВидаРасчета,
		|	НачальнаяШтатнаяРасстановкаЛьготы.Размер КАК Размер
		|ПОМЕСТИТЬ ВТЛьготыДокумента
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.Льготы КАК НачальнаяШтатнаяРасстановкаЛьготы
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаЛьготы.Ссылка = &Ссылка";
	
	Запрос.Выполнить();
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачисленияДокумента.Ссылка.Месяц
		|		ИНАЧЕ НачисленияДокумента.ДатаНачала
		|	КОНЕЦ КАК ДатаСобытия,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ДАТАВРЕМЯ(1, 1, 1)
		|		ИНАЧЕ ДОБАВИТЬКДАТЕ(НачисленияДокумента.ДатаОкончания, ДЕНЬ, 1)
		|	КОНЕЦ КАК ДействуетДо,
		|	НачисленияДокумента.Сотрудник КАК Сотрудник,
		|	НачисленияДокумента.Начисление КАК Начисление,
		|	ИСТИНА КАК Используется,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ИСТИНА
		|		ИНАЧЕ ЛОЖЬ
		|	КОНЕЦ КАК ИспользуетсяПоОкончании,
		|	НачисленияДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		//++
		//|	НачисленияДокумента.Сотрудник.ГоловнаяОрганизация КАК ГоловнаяОрганизация,
		|	НачисленияДокумента.Ссылка.Организация КАК ГоловнаяОрганизация,
		//--
		|	НачисленияДокумента.Размер КАК Размер
		|ИЗ
		|	ВТНачисленияДокумента КАК НачисленияДокумента
		|ГДЕ
		|	НачисленияДокумента.Начисление ССЫЛКА ПланВидовРасчета.Начисления
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЛьготыДокумента.Ссылка.Месяц,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ЛьготыДокумента.Сотрудник,
		|	ЛьготыДокумента.Льгота,
		|	ИСТИНА,
		|	ИСТИНА,
		|	ЛьготыДокумента.Сотрудник.ФизическоеЛицо,
		//++
		//|	ЛьготыДокумента.Сотрудник.ГоловнаяОрганизация,
		|	ЛьготыДокумента.Ссылка.Организация,
		//--
		|	ЛьготыДокумента.Размер
		|ИЗ
		|	ВТЛьготыДокумента КАК ЛьготыДокумента
		|ГДЕ
		|	ЛьготыДокумента.Льгота ССЫЛКА ПланВидовРасчета.Начисления";
	
	// Второй набор данных для проведения - таблица для формирования плановых начислений.
	ПлановыеНачисления = Запрос.Выполнить().Выгрузить();
	ПлановыеНачисления.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
	ДанныеДляПроведения.Вставить("ПлановыеНачисления", ПлановыеНачисления);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаНачала = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачисленияДокумента.Ссылка.Месяц
		|		ИНАЧЕ НачисленияДокумента.ДатаНачала
		|	КОНЕЦ КАК ДатаСобытия,
		|	НачисленияДокумента.Ссылка.Организация КАК Организация,
		|	ВЫБОР
		|		КОГДА НачисленияДокумента.ДатаОкончания = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА ДАТАВРЕМЯ(1, 1, 1)
		|		ИНАЧЕ ДОБАВИТЬКДАТЕ(НачисленияДокумента.ДатаОкончания, ДЕНЬ, 1)
		|	КОНЕЦ КАК ДействуетДо,
		|	ПоказателиДокумента.Сотрудник КАК Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель КАК Показатель,
		|	ПоказателиДокумента.Значение КАК Значение
		|ПОМЕСТИТЬ ВТПоказатели
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТНачисленияДокумента КАК НачисленияДокумента
		|		ПО ПоказателиДокумента.Ссылка = НачисленияДокумента.Ссылка
		|			И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = НачисленияДокумента.ИдентификаторСтрокиВидаРасчета
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ЛьготыДокумента.Ссылка.Месяц,
		|	ЛьготыДокумента.Ссылка.Организация,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ПоказателиДокумента.Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель,
		|	ПоказателиДокумента.Значение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТЛьготыДокумента КАК ЛьготыДокумента
		|		ПО ПоказателиДокумента.Ссылка = ЛьготыДокумента.Ссылка
		|			И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = ЛьготыДокумента.ИдентификаторСтрокиВидаРасчета
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|
		|ОБЪЕДИНИТЬ ВСЕ
		|
		|ВЫБРАТЬ
		|	ПоказателиДокумента.Ссылка.Месяц,
		|	ПоказателиДокумента.Ссылка.Организация,
		|	ДАТАВРЕМЯ(1, 1, 1),
		|	ПоказателиДокумента.Сотрудник,
		|	СправочникСотрудники.ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель,
		|	ПоказателиДокумента.Значение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ВНУТРЕННЕЕ СОЕДИНЕНИЕ Справочник.Сотрудники КАК СправочникСотрудники
		|		ПО ПоказателиДокумента.Сотрудник = СправочникСотрудники.Ссылка
		|ГДЕ
		|	ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|	И ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
		|;
		|
		|////////////////////////////////////////////////////////////­////////////////////
		|ВЫБРАТЬ
		|	Показатели.ДатаСобытия КАК ДатаСобытия,
		|	Показатели.Организация КАК Организация,
		|	Показатели.ДействуетДо КАК ДействуетДо,
		|	Показатели.Сотрудник КАК Сотрудник,
		|	Показатели.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Показатели.Показатель КАК Показатель,
		|	МАКСИМУМ(Показатели.Значение) КАК Значение
		|ИЗ
		|	ВТПоказатели КАК Показатели
		|
		|СГРУППИРОВАТЬ ПО
		|	Показатели.ДатаСобытия,
		|	Показатели.Организация,
		|	Показатели.ДействуетДо,
		|	Показатели.Сотрудник,
		|	Показатели.ФизическоеЛицо,
		|	Показатели.Показатель";
	
	// Третий набор данных для проведения - таблица для формирования значений показателей начислений.
	ЗначенияПоказателей = Запрос.Выполнить().Выгрузить();
	ЗначенияПоказателей.Колонки.Добавить("ДокументОснование", Новый ОписаниеТипов(Метаданные.ОпределяемыеТипы.ОснованиеНачисления.Тип));
	ДанныеДляПроведения.Вставить("ЗначенияПоказателейНачислений", ЗначенияПоказателей);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ВЫБОР
		|		КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка = ДАТАВРЕМЯ(1, 1, 1)
		|			ТОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка.Месяц
		|		ИНАЧЕ ВЫБОР
		|				КОГДА НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа)
		|					ТОГДА ДОБАВИТЬКДАТЕ(НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка, ДЕНЬ, 1)
		|				ИНАЧЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ДатаОстатка
		|			КОНЕЦ
		|	КОНЕЦ КАК ДатаСобытия,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Сотрудник КАК Сотрудник,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод КАК КоличествоДнейВГод,
		|	НЕ НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.НеИспользовать КАК Используется,
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДней КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ЕжегодныеОтпуска КАК НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска
		|		ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ВидыОтпусков КАК ВидыОтпусков
		|		ПО НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.ВидЕжегодногоОтпуска = ВидыОтпусков.Ссылка
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.Ссылка = &Ссылка
		|	И (НачальнаяШтатнаяРасстановкаЕжегодныеОтпуска.КоличествоДнейВГод > 0
		|			ИЛИ ВидыОтпусков.ХарактерЗависимостиДнейОтпуска = ЗНАЧЕНИЕ(Перечисление.ХарактерЗависимостиКоличестваДнейОтпуска.ЗависитОтСтажа))";
	
	// Четвертый набор данных для проведения - таблица для формирования положенных видов ежегодных отпусков.
	ПоложенныеЕжегодныеОтпуска = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ЕжегодныеОтпуска", ПоложенныеЕжегодныеОтпуска);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.ПорядокРасчетаСтоимостиЕдиницыВремени КАК ПорядокРасчета,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Пятый набор данных для проведения - таблица для формирования значений порядка пересчета тарифной ставки.
	ПорядокПересчетаТарифнойСтавки = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПорядокПересчетаТарифнойСтавки", ПорядокПересчетаТарифнойСтавки);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ФизическоеЛицо КАК ФизическоеЛицо,
		|	Сотрудники.СовокупнаяТарифнаяСтавка КАК Значение,
		|	ВЫБОР
		|		КОГДА Сотрудники.СовокупнаяТарифнаяСтавка = 0
		|			ТОГДА ЗНАЧЕНИЕ(Перечисление.ВидыТарифныхСтавок.ПустаяСсылка)
		|		ИНАЧЕ Сотрудники.ВидТарифнойСтавки
		|	КОНЕЦ КАК ВидТарифнойСтавки,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Шестой набор данных для проведения - таблица для формирования значений совокупной тарифной ставки.
	ДанныеСовокупныхТарифныхСтавок = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДанныеСовокупныхТарифныхСтавок", ДанныеСовокупныхТарифныхСтавок);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.РазрядКатегория КАК РазрядКатегория,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
		
	// Седьмой набор данных для проведения - таблица для формирования значений разряда сотрудника.
	РазрядыКатегорииСотрудников = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("РазрядыКатегорииСотрудников", РазрядыКатегорииСотрудников);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа) КАК Состояние,
		|	&ДатаНачала КАК Начало,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК Окончание,
		|	НЕОПРЕДЕЛЕНО КАК ВидВремени
		|ИЗ
		|	ВТСотрудники КАК Сотрудники
		|ГДЕ
		|	Сотрудники.ВидЗанятости <> ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Подработка)";
	
	// Данные состояний
	ДанныеСостояний = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ДанныеСостояний", ДанныеСостояний);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Девятый набор данных для проведения - таблица для формирования времени регистрации документа.
	СотрудникиДаты = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("СотрудникиДаты", СотрудникиДаты);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ПоказателиДокумента.Ссылка.Месяц КАК ДатаСобытия,
		|	ПоказателиДокумента.Ссылка.Организация КАК Организация,
		|	ПоказателиДокумента.Сотрудник КАК Сотрудник,
		|	ПоказателиДокумента.Сотрудник.ФизическоеЛицо КАК ФизическоеЛицо,
		|	ПоказателиДокумента.Показатель КАК Показатель,
		|	ИСТИНА КАК Применение
		|ИЗ
		|	ВТПоказателиДокумента КАК ПоказателиДокумента
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТПоказателиДокумента КАК ПоказателиНачислений
		|		ПО ПоказателиДокумента.Ссылка = ПоказателиНачислений.Ссылка
		|			И ПоказателиДокумента.Сотрудник = ПоказателиНачислений.Сотрудник
		|			И ПоказателиДокумента.Показатель = ПоказателиНачислений.Показатель
		|			И (ПоказателиНачислений.ИдентификаторСтрокиВидаРасчета <> 0)
		|ГДЕ
		|	ПоказателиДокумента.ИдентификаторСтрокиВидаРасчета = 0
		|	И ПоказателиДокумента.Показатель <> ЗНАЧЕНИЕ(Справочник.ПоказателиРасчетаЗарплаты.ПустаяСсылка)
		|	И ПоказателиНачислений.Показатель ЕСТЬ NULL";
	
	// Десятый набор данных для проведения - таблица для формирования применения дополнительных показателей.
	ПрименениеДополнительныхПоказателей = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПрименениеДополнительныхПоказателей", ПрименениеДополнительныхПоказателей);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ДатаОстатка,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Сотрудник,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.ВидЕжегодногоОтпуска,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодНачало,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.РабочийГодОкончание,
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Остаток КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ОстаткиОтпусковПоРабочимГодам КАК НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам
		|ГДЕ
		|	НачальнаяШтатнаяРасстановкаОстаткиОтпусковПоРабочимГодам.Ссылка = &Ссылка";
	
	// Одиннадцатый набор данных для проведения - таблица для формирования остатков отпусков.
	НачальныеОстаткиОтпусков = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("НачальныеОстаткиОтпусков", НачальныеОстаткиОтпусков);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	Сотрудники.ДатаСобытия КАК ДатаСобытия,
		|	Сотрудники.Сотрудник КАК Сотрудник,
		|	Сотрудники.ПКУ КАК ПКУ,
		|	ДАТАВРЕМЯ(1, 1, 1) КАК ДействуетДо
		|ИЗ
		|	ВТСотрудники КАК Сотрудники";
	
	// Двенадцатый набор данных для проведения - таблица для формирования значений разряда сотрудника.
	ПКУСотрудников = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ПКУСотрудников", ПКУСотрудников);
	
	Запрос.Текст =
		"ВЫБРАТЬ
		|	ОтсутствияСдвигающиеРабочийГод.Сотрудник КАК Сотрудник,
		|	ОтсутствияСдвигающиеРабочийГод.ДатаОстатка КАК ДатаОстатка,
		|	ОтсутствияСдвигающиеРабочийГод.ВидЕжегодногоОтпуска КАК ВидЕжегодногоОтпуска,
		|	ОтсутствияСдвигающиеРабочийГод.Состояние КАК Состояние,
		|	ОтсутствияСдвигающиеРабочийГод.КоличествоДней КАК КоличествоДней
		|ИЗ
		|	Документ.НачальнаяШтатнаяРасстановка.ОтсутствияСдвигающиеРабочийГод КАК ОтсутствияСдвигающиеРабочийГод
		|ГДЕ
		|	ОтсутствияСдвигающиеРабочийГод.Ссылка = &Ссылка";
	
	// Тринадцатый набор данных для проведения - таблица для формирования отсутствий, сдвигающих рабочий год.
	Отсутствия = Запрос.Выполнить().Выгрузить();
	ДанныеДляПроведения.Вставить("ОтсутствияСдвигающиеРабочийГод", Отсутствия);
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.Грейды") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("Грейды");
		ДанныеГрейдовСотрудников = Модуль.ДанныеДляПроведенияНачальнойШтатнойРасстановкиГрейдыСотрудни­ков(Ссылка);
		ДанныеДляПроведения.Вставить("ДанныеГрейдовСотрудников", ДанныеГрейдовСотрудников);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.КадровыйУчет.ДистанционнаяРабота") Тогда 
		МодульДистанционнаяРабота = ОбщегоНазначения.ОбщийМодуль("ДистанционнаяРабота");
		МодульДистанционнаяРабота.НачальнаяШтатнаяРасстановкаСведенияОДистанционнойРаботе(ДанныеДляПроведения, Ссылка);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыКорпоративнаяПодсистемы.ОхранаТруда") Тогда 
		МодульОхранаТруда = ОбщегоНазначения.ОбщийМодуль("ОхранаТруда");
		МодульОхранаТруда.ПриемНаРаботуСведенияОРабочихМестахСотрудников(ДанныеДляПроведения, Запрос, "ДатаСобытия");
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.КлассныеЧиныРанги") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("КлассныеЧиныРанги");
		КлассныеЧиныРангиФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОКлассныхЧинахРангах(Ссылка);
		ДанныеДляПроведения.Вставить("КлассныеЧиныРангиФизическихЛиц", КлассныеЧиныРангиФизическихЛиц);
	КонецЕсли;
	
	Если ОбщегоНазначения.ПодсистемаСуществует("ЗарплатаКадрыПриложения.ГосударственнаяСлужба.ВоинскиеСпециальныеЗвания") Тогда 
		Модуль = ОбщегоНазначения.ОбщийМодуль("ВоинскиеСпециальныеЗвания");
		ВоинскиеСпециальныеЗванияФизическихЛиц = Модуль.НачальнаяШтатнаяРасстановкаСведенияОВоинскихСпециальныхЗвани­ях(Ссылка);
		ДанныеДляПроведения.Вставить("ВоинскиеСпециальныеЗванияФизическихЛиц", ВоинскиеСпециальныеЗванияФизическихЛиц);
	КонецЕсли;
	
	НастройкиПрограммыБюджетногоУчреждения = ЗарплатаКадрыРасширенный.НастройкиПрограммыБюджетногоУчреждения();
	ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти = НастройкиПрограммыБюджетногоУчреждения.ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти;
	ШтатнаяРасстановкаВоеннослужащих = ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.ВоеннослужащийПоПризыву
		Или ВидДоговора = Перечисления.ВидыДоговоровССотрудниками.КонтрактВоеннослужащего;
	
	ДанныеДляПроведения.Вставить("РегистрироватьГрафикиРаботы", Не ШтатнаяРасстановкаВоеннослужащих Или ИспользоватьРасчетДенежногоДовольствияСотрудниковОргановИспо­лнительнойВласти); 
	ДанныеДляПроведения.Вставить("ШтатнаяРасстановкаВоеннослужащих",ШтатнаяРасстановкаВоеннослужащих);
	
	Возврат ДанныеДляПроведения;
	
КонецФункции
Показать
9. ivnik 591 23.06.21 12:37 Сейчас в теме
(3) "Замену" нужно сделать только в трех местах?
Спасибо, попробую, отпишусь.
Оставьте свое сообщение

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