Специальная оценка условий труда по штатному расписанию в УПП

09.01.20

Разработка - Механизмы типовых конфигураций

В типовой конфигурации УПП специальная оценка условий труда (СОУТ) устанавливается для должности. В статье описаны доработки, необходимые для установки СОУТ на запись штатного расписания, т. е. по должности и подразделению (с периодичностью). Для нашей организации эти доработки оказались востребованы. Проверялось на версиях УПП 1.3.121.1 - 1.3.127.1, аналогичные доработки можно применить и к ЗУП 2.5.

В конфигурацию необходимо внести следующие изменения:

1. В регистре сведений "ШтатноеРасписаниеОрганизаций" добавляем ресурсы:

"КлассУсловийТруда" (тип ПеречислениеСсылка.КлассыУсловийТрудаПоРезультатамСпециальнойОценки);

"ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией" (тип ПеречислениеСсылка.ВидыРаботСДосрочнойПенсией);

Размещаем ресурсы на форме записи:

 

 

При желании можете изменять видимость полей в зависимости от константы "ИспользуютсяРаботыСДосрочнойПенсией".

 

2. В общем модуле "ПроцедурыПерсонифицированногоУчетаПолныеПрава" в функции "ДанныеДляЗаполненияСтажа_2014" необходимо внести такие изменения в запрос:

А. В создание временной таблицы "ВТКадровыеПериоды" (примерно 530 строка функции) добавляем подразделение:

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

Б. В создание временной таблицы "ВТДниСтажаДоОбработкиПараметровИсчСтажа" (примерно 991 строка функции с учетом изменений прошлого этапа) вносим аналогичные изменения:

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

В. Создание временной таблицы "ВТКлассыУсловийТрудаПоДолжностям" (примерно 1135 строка функции с учетом изменений прошлых этапов) нужно изменить довольно сильно:

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

Г. Создание временной таблицы "ВТДниСтажа2014" (примерно 1192 строка функции с учетом изменений прошлых этапов) нужно добавить новое условие соединения:

	|ПОМЕСТИТЬ ВТДниСтажа2014
	|ИЗ
	|	ВТДниСтажаДоОбработкиПараметровИсчСтажа КАК ДниСтажаДоОбработкиПараметровИсчСтажа
	|		ЛЕВОЕ СОЕДИНЕНИЕ ВТКлассыУсловийТрудаПоДолжностям КАК КлассыУсловийТрудаПоДолжностям
	|		ПО ДниСтажаДоОбработкиПараметровИсчСтажа.ДатаКалендаря = КлассыУсловийТрудаПоДолжностям.ДатаКалендаря
	|			И ДниСтажаДоОбработкиПараметровИсчСтажа.Должность = КлассыУсловийТрудаПоДолжностям.Должность
	|
	//+Начало доработки, Описание доработки: СОУТ по штатному расписанию
	|И ДниСтажаДоОбработкиПараметровИсчСтажа.ПодразделениеОрганизации = КлассыУсловийТрудаПоДолжностям.ПодразделениеОрганизации
	//-Конец доработки
	|ИНДЕКСИРОВАТЬ ПО
	|	ОтчетныйПериод,

Д. После запроса (примерно 1272 строка функции с учетом изменений прошлых этапов) добавляем условие периодичности:

	Если УчитыватьОпоздавшиеДанные Тогда
		СтрокаЗамены = "ДатаРегистрацииИзменений <= &ДатаАктуальности";
	Иначе	
		СтрокаЗамены = "НАЧАЛОПЕРИОДА(Период, КВАРТАЛ) >= НАЧАЛОПЕРИОДА(ДатаРегистрацииИзменений, КВАРТАЛ)
	|					ИЛИ ДатаРегистрацииИзменений <= КОНЕЦПЕРИОДА(НачалаПериодовПостоянства.ДатаКалендаря, КВАРТАЛ)";
	КонецЕсли;
	//+Начало доработки, Описание доработки: СОУТ по штатному расписанию
	Если УчитыватьОпоздавшиеДанные Тогда
		СтрокаЗамены = "ШтатноеРасписаниеОрганизаций.Период <= &ДатаАктуальности";
	Иначе	
		СтрокаЗамены = "НАЧАЛОПЕРИОДА(Период, КВАРТАЛ) >= НАЧАЛОПЕРИОДА(ШтатноеРасписаниеОрганизаций.Период, КВАРТАЛ)
	|					ИЛИ ШтатноеРасписаниеОрганизаций.Период <= КОНЕЦПЕРИОДА(НачалаПериодовПостоянства.ДатаКалендаря, КВАРТАЛ)";
	КонецЕсли;
	//-Конец доработки
	ТекстЗапроса = СтрЗаменить(ТекстЗапроса, "&УсловиеВключенияДанных", СтрокаЗамены);

3. В модуле документа "ОтражениеЗарплатыВРеглУчете" в функции "ПолучитьДанныеУчетаСтраховыхВзносов2017" необходимо внести аналогичные изменения в запрос:

А. Создаем новую временную таблицу "ВТ_ОсобыеУсловияПоШтатке_Отражение" (примерно 592 строка функции). Запрос не самый оптимальный, его вполне можно улучшить:

		//+Начало доработки, Описание доработки: СОУТ по штатному расписанию
		|ВЫБРАТЬ
		|	ВложенныйЗапрос.Сотрудник КАК Сотрудник,
		|	ВложенныйЗапрос.Период КАК Период,
		|	ВложенныйЗапрос.ПодразделениеОрганизации,
		|	ВложенныйЗапрос.Должность,
		|	ЕСТЬNULL(ВложенныйЗапрос1.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией, ЗНАЧЕНИЕ(Перечисление.ВидыРаботСДосрочнойПенсией.ПустаяСсылка)) КАК ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией,
		|	ЕСТЬNULL(ВложенныйЗапрос1.КлассУсловийТруда, ЗНАЧЕНИЕ(Перечисление.КлассыУсловийТрудаПоРезультатамСпециальнойОценки.ПустаяСсылка)) КАК КлассУсловийТруда
		|ПОМЕСТИТЬ ВТ_ОсобыеУсловияПоШтатке_Отражение
		|ИЗ
		|	(ВЫБРАТЬ
		|		ДатыСотрудников.Сотрудник КАК Сотрудник,
		|		ДатыСотрудников.Период КАК Период,
		|		ВложенныйЗапрос.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
		|		ВложенныйЗапрос.Должность КАК Должность
		|	ИЗ
		|		ВТСтрокиРегистра КАК ДатыСотрудников
		|			ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|				РаботникиОрганизацийНачПериода.Сотрудник КАК Сотрудник,
		|				РаботникиОрганизацийНачПериода.Должность КАК Должность,
		|				РаботникиОрганизацийНачПериода.Период КАК НачПериод,
		|				МИНИМУМ(РаботникиОрганизацийКонПериода.Период) КАК КонПериод,
		|				РаботникиОрганизацийНачПериода.ПодразделениеОрганизации КАК ПодразделениеОрганизации
		|			ИЗ
		|				РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизацийНачПериода
		|					ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК РаботникиОрганизацийКонПериода
		|					ПО РаботникиОрганизацийНачПериода.Сотрудник = РаботникиОрганизацийКонПериода.Сотрудник
		|						И РаботникиОрганизацийНачПериода.Период < РаботникиОрганизацийКонПериода.Период
		|			
		|			СГРУППИРОВАТЬ ПО
		|				РаботникиОрганизацийНачПериода.Сотрудник,
		|				РаботникиОрганизацийНачПериода.Период,
		|				РаботникиОрганизацийНачПериода.Должность,
		|				РаботникиОрганизацийНачПериода.ПодразделениеОрганизации) КАК ВложенныйЗапрос
		|			ПО ДатыСотрудников.Сотрудник = ВложенныйЗапрос.Сотрудник
		|				И ДатыСотрудников.Период >= ВложенныйЗапрос.НачПериод
		|				И (ДатыСотрудников.Период < ВложенныйЗапрос.КонПериод
		|					ИЛИ ВложенныйЗапрос.КонПериод ЕСТЬ NULL)
		|	
		|	СГРУППИРОВАТЬ ПО
		|		ДатыСотрудников.Сотрудник,
		|		ДатыСотрудников.Период,
		|		ВложенныйЗапрос.ПодразделениеОрганизации,
		|		ВложенныйЗапрос.Должность) КАК ВложенныйЗапрос
		|		ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
		|			ШтатноеРасписаниеОрганизацийНачПериода.ПодразделениеОрганизации КАК ПодразделениеОрганизации,
		|			ШтатноеРасписаниеОрганизацийНачПериода.Должность КАК Должность,
		|			ШтатноеРасписаниеОрганизацийНачПериода.Период КАК НачПериод,
		|			МИНИМУМ(ШтатноеРасписаниеОрганизацийКонПериода.Период) КАК КонПериод,
		|			ШтатноеРасписаниеОрганизацийНачПериода.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией КАК ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией,
		|			ШтатноеРасписаниеОрганизацийНачПериода.КлассУсловийТруда КАК КлассУсловийТруда
		|		ИЗ
		|			РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизацийНачПериода
		|				ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ШтатноеРасписаниеОрганизаций КАК ШтатноеРасписаниеОрганизацийКонПериода
		|				ПО ШтатноеРасписаниеОрганизацийНачПериода.ПодразделениеОрганизации = ШтатноеРасписаниеОрганизацийКонПериода.ПодразделениеОрганизации
		|					И ШтатноеРасписаниеОрганизацийНачПериода.Должность = ШтатноеРасписаниеОрганизацийКонПериода.Должность
		|					И ШтатноеРасписаниеОрганизацийНачПериода.Период < ШтатноеРасписаниеОрганизацийКонПериода.Период
		|		
		|		СГРУППИРОВАТЬ ПО
		|			ШтатноеРасписаниеОрганизацийНачПериода.ПодразделениеОрганизации,
		|			ШтатноеРасписаниеОрганизацийНачПериода.Период,
		|			ШтатноеРасписаниеОрганизацийНачПериода.Должность,
		|			ШтатноеРасписаниеОрганизацийНачПериода.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией,
		|			ШтатноеРасписаниеОрганизацийНачПериода.КлассУсловийТруда) КАК ВложенныйЗапрос1
		|		ПО ВложенныйЗапрос.ПодразделениеОрганизации = ВложенныйЗапрос1.ПодразделениеОрганизации
		|			И ВложенныйЗапрос.Должность = ВложенныйЗапрос1.Должность
		|			И ВложенныйЗапрос.Период >= ВложенныйЗапрос1.НачПериод
		|			И (ВложенныйЗапрос.Период < ВложенныйЗапрос1.КонПериод
		|				ИЛИ ВложенныйЗапрос1.КонПериод ЕСТЬ NULL);
		//-Конец доработки

Б. Изменяем временную таблицу "ВТСотрудники" (примерно 662 строка функции с учетом прошлого этапа), подсовываем в запрос наш ресурс вместо реквизита должности:

		|ВЫБРАТЬ
		|	СтрокиРегистра.Сотрудник,
		|	СтрокиРегистра.ДатаАктуальности,
		|	ЕСТЬNULL(ВЫБОР
		|			КОГДА Работники.ПериодЗавершения <= СтрокиРегистра.ДатаАктуальности
		|					И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|				ТОГДА Работники.ДолжностьЗавершения.ЯвляетсяДолжностьюЛетногоЭкипажа
		|			ИНАЧЕ Работники.Должность.ЯвляетсяДолжностьюЛетногоЭкипажа
		|		КОНЕЦ, ЛОЖЬ) КАК ОблагаетсяПоДополнительномуТарифу,
		|	ЕСТЬNULL(ВЫБОР
		|			КОГДА Работники.ПериодЗавершения <= СтрокиРегистра.ДатаАктуальности
		|					И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|				ТОГДА Работники.ДолжностьЗавершения.ЯвляетсяШахтерскойДолжностью
		|			ИНАЧЕ Работники.Должность.ЯвляетсяШахтерскойДолжностью
		|		КОНЕЦ, ЛОЖЬ) КАК ОблагаетсяВзносамиНаДоплатуКПенсииШахтерам,
		|	ЕСТЬNULL(ВЫБОР
		//+Начало доработки, Описание доработки: СОУТ по штатному расписанию
		|			КОГДА ИСТИНА
		|				ТОГДА естьnull(ВТ_ОсобыеУсловияПоШтатке_Отражение.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией,значение(Перечисление.ВидыРаботСДосрочнойПенсией.ПустаяСсылка))
		//-Конец доработки
		|			КОГДА Работники.ПериодЗавершения <= СтрокиРегистра.ДатаАктуальности
		|					И Работники.ПериодЗавершения <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
		|				ТОГДА Работники.ДолжностьЗавершения.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией
		|			ИНАЧЕ Работники.Должность.ВзимаютсяВзносыЗаЗанятыхНаРаботахСДосрочнойПенсией
		|		КОНЕЦ, ЗНАЧЕНИЕ(Перечисление.ВидыРаботСДосрочнойПенсией.ПустаяСсылка)) КАК ОблагаетсяВзносамиЗаЗанятыхНаРаботахСДосрочнойПенсией
		|ПОМЕСТИТЬ ВТСотрудники
		|ИЗ
		|	ВТСтрокиРегистра КАК СтрокиРегистра
		|		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.РаботникиОрганизаций КАК Работники
		|		ПО СтрокиРегистра.Сотрудник = Работники.Сотрудник
		|			И СтрокиРегистра.Период = Работники.Период
		//+Начало доработки, Описание доработки: СОУТ по штатному расписанию 
		|		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_ОсобыеУсловияПоШтатке_Отражение КАК ВТ_ОсобыеУсловияПоШтатке_Отражение
		|		ПО СтрокиРегистра.Сотрудник = ВТ_ОсобыеУсловияПоШтатке_Отражение.Сотрудник
		|			И СтрокиРегистра.Период = ВТ_ОсобыеУсловияПоШтатке_Отражение.Период
		//-Конец доработки

Остается только заполнить штатное расписание и следить за его актуальностью.

Как видите, доработка довольно громоздкая но ничего сложного в ней нет.

Надеюсь, эта статья кому-нибудь пригодится и сэкономит немного времени в Новом году.

Доработка СОУТ УПП Зарплата Страховые взносы

См. также

Расширяем возможности дополнительных обработок и настраиваем их отладку

БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Уже не одна веб-страница исписана знаниями о дополнительных обработках, как создать, как подключить. Есть масса вариантов, как их можно отладить. Я разобрался в кишках работы библиотеки и покажу, как можно расширить возможности дополнительных отчетов, а также покажу удобный способ отладки.

07.02.2024    2351    YA_418728146    11    

40

Регистры накопления в 1С:КА2 и 1С:ERP для расчета НДФЛ, страховых взносов и взаиморасчетов с сотрудниками на январь 2024 года. Краткое описание

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 1С:Комплексная автоматизация 2.х Россия Бухгалтерский учет НДФЛ Абонемент ($m)

Для расчета зарплаты и соответствующих налогов в конфигурациях 1С:КА2 и 1С:ERP используется 22 регистра накопления, 7 регистров сведений, 1 регистр расчета и бухгалтерские проводки. В таблице приведены названия этих регистров, указаны основные регистраторы и виды движений приход/расход. В описании приводится краткое функциональное назначение регистров в основных зарплатных процессах. Описание регистров родилось из черновиков при написании различных отчетов и обработок при эксплуатации 1С-овских конфигураций и исправлении ошибок по НДФЛ, взаиморасчетов с сотрудниками и прочих. Информация не претендует на полноценное описание работы регистров, скорее это дискуссионный материал. Но, возможно, кому-то пригодится и сократит время при подготовке отчетности за непростой (в плане учета зарплаты) 2023 год. А возможно, кто-то поделится своим опытом.

1 стартмани

10.01.2024    1016    6    2ncom    3    

8

Шаблоны новых объектов 1С для 1С:Бухгалтерии предприятия

Инструментарий разработчика БСП (Библиотека стандартных подсистем) Механизмы типовых конфигураций Платформа 1С v8.3 1С:Бухгалтерия 3.0 Бесплатно (free)

Используются для создания новых объектов в конфигурации, чтобы не забыть, что нужно сделать. Сделано на примере 1С:Бухгалтерия предприятия, в других конфигурациях могут быть другие, а могут быть и похожие объекты.

28.12.2023    4832    mrXoxot    11    

99

Ключи аналитик учета в ЕРП, КА, УТ

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 Россия Управленческий учет Бесплатно (free)

Разбираемся, зачем в системе ЕРП созданы справочники: ключи аналитик учета, зачем созданы аналогичные по набору измерений регистры сведений. Какие проблемы они решают, какие создают новые и что с этим делать.

08.11.2023    7047    ids79    25    

74

Распределение по базе среднего в ЗИКГУ 3.1

Зарплата Механизмы типовых конфигураций Платформа 1С v8.3 1С:Зарплата и кадры государственного учреждения 3 Россия Бюджетный учет Абонемент ($m)

Результат расчета начислений (отпуск, БЛ и т.д.) может распределятся по базе среднего заработка. У таких начислений на вкладке "Налоги, взносы, бухучет" стоит галка "По базе среднего заработка". Но бывают случаи, что данное распределение необходимо скорректировать.

1 стартмани

14.09.2023    445    2    Vlx    0    

1

Расширение типового механизма настройки заполнения бухгалтерской отчетности (на примере конфигурации 1С:ERP. Управление холдингом 3.1.8.15)

Механизмы типовых конфигураций Платформа 1С v8.3 1С:Управление холдингом 1С:Франчайзи, автоматизация бизнеса Россия Бесплатно (free)

В статье приведен алгоритм доработок типового механизма настройки заполнения бухгалтерской отчетности на примере конфигурации 1С:ERP. Управление холдингом (3.1.8.15). Цель доработок - сделать процесс настроек более гибким и удобным для пользователей

11.09.2023    1928    ICL-Soft    3    

12

Разбор механизма "Настройки полей формы" в 1С:ERP. Управление холдингом

Механизмы типовых конфигураций Платформа 1С v8.3 1С:ERP Управление предприятием 2 Бесплатно (free)

В данной статье я постараюсь разобрать механизм, который Вам может встретиться на просторах типовой конфигурации 1С:ERP. Управление холдингом. Я не могу гарантировать, что этот механизм не исключат из следующих версий конфигурации (как, собственно, и любой другой). К сожалению, мне не удалось найти его ни в одном модуле конфигурации "Библиотеки стандартных подсистем". Мне он показался интересным, и захотелось более детально во всем этом разобраться.

18.07.2023    2156    it_box    1    

7

Работа с контактной информацией. Часть 2

Механизмы типовых конфигураций Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Во второй части статьи рассмотрим вопрос преобразования адреса из старого формата в новый. Рассмотрим реальные задачи, связанные с контактной информацией.

05.06.2023    6955    biimmap    4    

41
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Craig 274 28.12.19 20:43 Сейчас в теме
Лет 7 тому назад, когда внедрял ЗУП Корп 2.5, мы наоборот отказались от информации в штатному расписании в пользу должности. И доработок было значительно меньше. Объяснялось тем, отдел охраны труда и отдел труда это разные отделы. Второй момент - аттестация производится рабочего места, а рабочее место равно справочнику должности.
2. sailor-cat 6 29.12.19 05:12 Сейчас в теме
(1) Тоже так думал.
Как оказалось, рабочее место может отличаться в обособленных подразделениях.
3. Craig 274 29.12.19 12:06 Сейчас в теме
(2) Да, они и должны отличаться. В моем случаи разрастался справочник должностей. Мы в наименовании должности включали признаки спецоценки. К сожалению и у меня и у Вас очередной велосипед, только по тому что 1с-ники изначально не продумали как должна работать спецоценка на крупных предприятиях.
4. sailor-cat 6 29.12.19 15:07 Сейчас в теме
(3) Пробовали так делать, но не прокатило. К сожалению, не помню точной причины.
С другой стороны, я не слышал чтобы кто-то уж сильно жаловался именно на этот аспект. Видимо, практически всех устраивает.
5. dock 44 30.12.19 09:33 Сейчас в теме
Закрыть УПП как страшный сон и перейти на ЗУП 3.1!
Конечно тоже не идеально... но всё-таки архитектура более продуманная...
З.Ы. Автору плюс за труды.
Оставьте свое сообщение