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

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 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Россия Абонемент ($m)

Продолжение темы вынесения кусков повторно-используемого кода в запрос. В прошлый раз мы сделали это с вычислением пользовательских формул. Здесь замахнулись на формулы, задаваемые пользователем запросами.

1 стартмани

11.04.2024    530    tango    0    

3

Формула в реквизите. Приквелл к сериалу "Ценовая власть"

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

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

10 стартмани

11.04.2024    417    tango    5    

3

Ценовая власть. Второй сезон

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

В первом сезоне мы рассмотрели (с точки зрения программиста) внутренний механизм, помещающий цены в регистр "Цены". Из этого регистра цена попадает в исходящие УПД (в продажи). Но эта цена (в прайс-листе) дифференцирована (ценообразована) в разрезах свойств самой номенклатуры. Но стратегия ценообразования, ценовая власть - это в первую очередь о работе с ценами для клиента. И тут вступает в дело второй акт марлезонского, Скидки (наценки) и кешбек.

08.04.2024    785    tango    0    

2

Ценовая власть (УТ 11.5) - 2

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

В прошлый раз специальной обработкой мы выбрали объекты УТ 1.5, группируя по подсистемам. Оказалось, что состав подсистем не вполне корректно отображает функциональную структуру, но зато мы нашли процедуру, которая, вроде бы, должна содержать в себе всё, что нас интересует. Обновление цен должно ведь следовать выбранной стратегии ценообразования, верно? Иначе что она обновляет...

06.04.2024    480    tango    1    

1

Ценовая власть или Управление ценообразованием (УТ 11.5)

Ценообразование, анализ цен Механизмы типовых конфигураций Платформа 1С v8.3 Оперативный учет 1С:Управление торговлей 11 Россия Управленческий учет Абонемент ($m)

Ценовая власть - это способность (возможность) компании изменять в некоторых пределах отпускную цену своего товара (услуг, продукции). Чем в более широких пределах вы можете играть в цену продажи, тем больше этой власти у вас. Если вы не можете управлять отпускной ценой, то это или не ваш бизнес, или не бизнес вовсе. Здесь в рубрике "База знаний аналитика и руководителя проекта" слово проект не ограничено "проектом в 1С". Посмотрим, что для этого есть в УТ 11.5.

1 стартмани

05.04.2024    585    tango    12    

2

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

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

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

07.02.2024    2670    YA_418728146    11    

44

Регистры накопления в 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    1203    8    2ncom    6    

8

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

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

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

28.12.2023    5028    mrXoxot    11    

100
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
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!
Конечно тоже не идеально... но всё-таки архитектура более продуманная...
З.Ы. Автору плюс за труды.
Оставьте свое сообщение