Отчет в статистику по форме П4 (НЗ). Исправлена зарегистрированная в 1С ошибка отчета

26.11.24

Учетные задачи - Регламентированный учет и отчетность

Устранение ошибки в отчете для статистики по форме П4 (НЗ).

В сервисе 1С по учете ошибок давно задержалась вот эта, за № 20173978 от 27.10.2023.

Отчет в органы статистики по Форме П4 (НЗ).

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

Не очень понятно, почему так долго зарегистрированная ошибка продолжает оставаться неразрешенной, но устраняется это одной дополнительной строчкой в запросе. Что я и сделал.
 

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

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

	// Состояния сотрудников
	Запрос.Текст =
	"ВЫБРАТЬ
	|             СотрудникиОрганизации.Сотрудник,
	|             &НачалоПериода КАК ДатаНачала,
	|             &КонецПериода КАК ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудникиПериодыСостояний
	|ИЗ
	|             #СотрудникиОрганизации КАК СотрудникиОрганизации";
	
	Запрос.Текст = СтрЗаменить(Запрос.Текст, "#СотрудникиОрганизации", ИмяВТСотрудникиОрганизации);
	Запрос.Выполнить();
	
	СостоянияСотрудников.СоздатьВТПериодыСостоянийСотрудников(Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериодыСостояний");
	
	// Сотрудники, работавшие не полное рабочее время
	ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(Запрос.МенеджерВременныхТаблиц, ПараметрыОтчета.ДатаНачалаПериодаОтчета, ПараметрыОтчета.ДатаКонцаПериодаОтчета, "День");
	Запрос.Текст =
	"ВЫБРАТЬ
	|             КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
	|             КадровыеДанныеСотрудников.Период КАК ДатаНачала,
	|             ЕСТЬNULL(МИНИМУМ(КадровыеДанныеСотрудниковВспомогательные.Период), &КонецПериода) КАК ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудникиРаботавшиеНеполноеРабочееВремяВременно
	|ИЗ
	|             ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудниковВспомогательные
	|                             ПО КадровыеДанныеСотрудников.Сотрудник = КадровыеДанныеСотрудниковВспомогательные.Сотрудник
	|                                             И КадровыеДанныеСотрудников.Период < КадровыеДанныеСотрудниковВспомогательные.Период
	|                             ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ГрафикиРаботыСотрудников КАК ГрафикиРаботыСотрудников
	|                             ПО КадровыеДанныеСотрудников.ГрафикРаботы = ГрафикиРаботыСотрудников.Ссылка
	|ГДЕ
	|             (КадровыеДанныеСотрудников.КоличествоСтавок < 1
	|                                             ИЛИ ГрафикиРаботыСотрудников.НеполноеРабочееВремя)
	|
	|СГРУППИРОВАТЬ ПО
	|             КадровыеДанныеСотрудников.Сотрудник,
	|             КадровыеДанныеСотрудников.Период
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|             ПериодыСостоянийСотрудников.Сотрудник КАК Сотрудник,
	|             ПериодыСостоянийСотрудников.Начало КАК ДатаНачала,
	|             ВЫБОР
	|                             КОГДА ПериодыСостоянийСотрудников.Окончание = ДАТАВРЕМЯ(1, 1, 1)
	|                                             ТОГДА ПериодыСостоянийСотрудников.ОкончаниеПредположительно
	|                             ИНАЧЕ ПериодыСостоянийСотрудников.Окончание
	|             КОНЕЦ КАК ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудникиВОтпускеПоУходу
	|ИЗ
	|             ВТПериодыСостоянийСотрудников КАК ПериодыСостоянийСотрудников
	|ГДЕ
	|             ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускПоУходуЗаРебенком)
	|             И (ПериодыСостоянийСотрудников.Окончание = ДАТАВРЕМЯ(1, 1, 1)
	|                                             ИЛИ ПериодыСостоянийСотрудников.Окончание >= &КонецПериода)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|             СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник КАК Сотрудник,
	|             Периоды.Период КАК Дата
	|ПОМЕСТИТЬ ВТДниНеполногоРабочегоВремени
	|ИЗ
	|             ВТПериоды КАК Периоды
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудникиРаботавшиеНеполноеРабочееВремяВременно КАК СотрудникиРаботавшиеНеполноеРабочееВремя
	|                             ПО (Периоды.Период МЕЖДУ СотрудникиРаботавшиеНеполноеРабочееВремя.ДатаНачала И СотрудникиРаботавшиеНеполноеРабочееВремя.ДатаОкончания)
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТПериодыСостоянийСотрудников КАК ПериодыСостоянийСотрудников
	|                             ПО (СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник = ПериодыСостоянийСотрудников.Сотрудник)
	|                                             И (ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.Работа)
	|                                                             ИЛИ ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.РаботаВОтпускеПоУходуЗаРебенком))
	|                                             И (Периоды.Период МЕЖДУ ПериодыСостоянийСотрудников.Начало И ВЫБОР
	|                                                             КОГДА ПериодыСостоянийСотрудников.Окончание = ДАТАВРЕМЯ(1, 1, 1)
	|                                                                            ТОГДА &КонецПериода
	|                                                             ИНАЧЕ ПериодыСостоянийСотрудников.Окончание
	|                                             КОНЕЦ)
	|ГДЕ
	|             СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник ЕСТЬ НЕ NULL
	|             И ПериодыСостоянийСотрудников.Сотрудник ЕСТЬ НЕ NULL
	|
	|СГРУППИРОВАТЬ ПО
	|             СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник,
	|             Периоды.Период
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|             ДниНеполногоРабочегоВремени.Сотрудник КАК Сотрудник,
	|             КОЛИЧЕСТВО(ДниНеполногоРабочегоВремени.Дата) КАК КоличествоДней
	|ПОМЕСТИТЬ ВТСотрудникиРаботавшиеНеполноеРабочееВремяПредварительно
	|ИЗ
	|             ВТДниНеполногоРабочегоВремени КАК ДниНеполногоРабочегоВремени
	|
	|СГРУППИРОВАТЬ ПО
	|             ДниНеполногоРабочегоВремени.Сотрудник
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|УНИЧТОЖИТЬ ВТПериоды";
	
	Запрос.Выполнить();
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|             &КонецПериода КАК Период,
	|             КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник
	|ПОМЕСТИТЬ ВТОтбораСотрудников
	|ИЗ
	|             ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТСотрудникиВОтпускеПоУходу КАК СотрудникиВОтпускеПоУходу
	|                             ПО КадровыеДанныеСотрудников.Сотрудник = СотрудникиВОтпускеПоУходу.Сотрудник
	|                                             И (КадровыеДанныеСотрудников.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Женский))
	|
	|СГРУППИРОВАТЬ ПО
	|             КадровыеДанныеСотрудников.Сотрудник";
	
	Запрос.Выполнить();
	
	// Отпуска по уходу за ребенком
	Отборы = Новый Массив;
	Запрос.Текст =
	"ВЫБРАТЬ
	|             Начисления.Ссылка КАК Начисление
	|ИЗ
	|             ПланВидовРасчета.Начисления КАК Начисления
	|ГДЕ
	|             Начисления.КатегорияНачисленияИлиНеоплаченногоВремени = ЗНАЧЕНИЕ(Перечисление.КатегорииНачисленийИНеоплаченногоВремени.ПособиеПоУходуЗаРебенкомДоПолутораЛет)";
	
	Отборы.Добавить(Новый Структура("ЛевоеЗначение,ВидСравнения,ПравоеЗначение",
	"Начисление", "В", Запрос.Выполнить().Выгрузить().ВыгрузитьКолонку("Начисление")));
	
	ОтборыНачислений = Новый Структура("ПлановыеНачисления", ОбщегоНазначения.СкопироватьРекурсивно(Отборы));
	ЗапросВТПлановыеНачисления = КадровыйУчетРасширенный.ЗапросВТПлановыеНачисленияСотрудников(
	Истина, "ВТПлановыеНачисленияСотрудниковДоПолутораЛетПредварительно", "ВТОтбораСотрудников", "Сотрудник,Период", ОтборыНачислений);
	
	ЗапросВТПлановыеНачисления.МенеджерВременныхТаблиц = Запрос.МенеджерВременныхТаблиц;
	ЗапросВТПлановыеНачисления.Выполнить();
	
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             ПлановыеНачисленияСотрудниковДоПолутораЛет.Сотрудник КАК Сотрудник
	|ПОМЕСТИТЬ ВТПлановыеНачисленияСотрудниковДоПолутораЛет
	|ИЗ
	|             ВТПлановыеНачисленияСотрудниковДоПолутораЛетПредварительно КАК ПлановыеНачисленияСотрудниковДоПолутораЛет
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ПО ПлановыеНачисленияСотрудниковДоПолутораЛет.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	|ГДЕ
	|             КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|;
	|
	|////////////////////////////////////////////////////////////////////////////////
	|ВЫБРАТЬ
	|             ПлановыеНачисленияСотрудниковДоПолутораЛет.Сотрудник КАК Сотрудник
	|ИЗ
	|             ВТПлановыеНачисленияСотрудниковДоПолутораЛет КАК ПлановыеНачисленияСотрудниковДоПолутораЛет";
	
	ПлановыеНачисленияСотрудниковДоПолутораЛет = Запрос.Выполнить().Выгрузить();
	
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             ВТСотрудникиВОтпускеПоУходу.Сотрудник КАК Сотрудник
	|ИЗ
	|             ВТСотрудникиВОтпускеПоУходу КАК ВТСотрудникиВОтпускеПоУходу
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТПлановыеНачисленияСотрудниковДоПолутораЛет КАК ПлановыеНачисленияСотрудниковДоПолутораЛет
	|                             ПО ВТСотрудникиВОтпускеПоУходу.Сотрудник = ПлановыеНачисленияСотрудниковДоПолутораЛет.Сотрудник
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ПО ВТСотрудникиВОтпускеПоУходу.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	|                                             И (КадровыеДанныеСотрудников.Пол = ЗНАЧЕНИЕ(Перечисление.ПолФизическогоЛица.Женский))
	|ГДЕ
	|             КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|             И ПлановыеНачисленияСотрудниковДоПолутораЛет.Сотрудник ЕСТЬ NULL
	|             И ВТСотрудникиВОтпускеПоУходу.ДатаОкончания >= &КонецПериода
	|             И ВТСотрудникиВОтпускеПоУходу.ДатаНачала <= &КонецПериода";
	
	СотрудникиВОтпускеДоТрехЛет = Запрос.Выполнить().Выгрузить();
	
	// Сотрудники, находившиеся в простое
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             ПериодыСостоянийСотрудников.Сотрудник
	|ИЗ
	|             ВТПериодыСостоянийСотрудников КАК ПериодыСостоянийСотрудников
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ПО ПериодыСостоянийСотрудников.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	|ГДЕ
	|             КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|             И (ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойНеЗависящийОтРаботодателяИРаботника)
	|                                             ИЛИ ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПростойПоВинеРаботодателя))";
	
	СотрудникиВПростое = Запрос.Выполнить().Выгрузить();
	
	// Сотрудники, находившиеся в отпуске без оплаты
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             ПериодыСостоянийСотрудников.Сотрудник,
	|             СУММА(РАЗНОСТЬДАТ(ПериодыСостоянийСотрудников.Начало, ВЫБОР
	|                                                             КОГДА ПериодыСостоянийСотрудников.Окончание = ДАТАВРЕМЯ(1, 1, 1)
	|                                                                            ТОГДА ПериодыСостоянийСотрудников.ОкончаниеПредположительно
	|                                                             ИНАЧЕ ПериодыСостоянийСотрудников.Окончание
	|                                             КОНЕЦ, ДЕНЬ) + 1) КАК КоличествоДней
	|ПОМЕСТИТЬ ВТСотрудникиВОтпускеБезОплатыПредварительно
	|ИЗ
	|             ВТПериодыСостоянийСотрудников КАК ПериодыСостоянийСотрудников
	|ГДЕ
	|             (ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускНеоплачиваемыйПоРазрешениюРаботодателя)
	|                                             ИЛИ ПериодыСостоянийСотрудников.Состояние = ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ОтпускНеоплачиваемыйПоЗаконодательству))
	|
	|СГРУППИРОВАТЬ ПО
	|             ПериодыСостоянийСотрудников.Сотрудник";
	
	Запрос.Выполнить();
	
	// Сотрудник показывается один раз по строке 02 или 05, исходя из причины его работы неполное рабочее время
	// или нахождения в отпуске без сохранения заработной платы большую часть времени в квартале.
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник
	|ИЗ
	|             ВТСотрудникиРаботавшиеНеполноеРабочееВремяПредварительно КАК СотрудникиРаботавшиеНеполноеРабочееВремя
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ПО СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудникиВОтпускеБезОплатыПредварительно КАК СотрудникиВОтпускеБезОплаты
	|                             ПО СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник = СотрудникиВОтпускеБезОплаты.Сотрудник
	|ГДЕ
	|             КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|             И (СотрудникиРаботавшиеНеполноеРабочееВремя.КоличествоДней >= СотрудникиВОтпускеБезОплаты.КоличествоДней
	|                                             ИЛИ СотрудникиВОтпускеБезОплаты.Сотрудник ЕСТЬ NULL )";
	
	СотрудникиРаботавшиеНеполноеРабочееВремя = Запрос.Выполнить().Выгрузить();
	
	Запрос.Текст =
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             СотрудникиВОтпускеБезОплаты.Сотрудник
	|ИЗ
	|             ВТСотрудникиВОтпускеБезОплатыПредварительно КАК СотрудникиВОтпускеБезОплаты
	|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ПО СотрудникиВОтпускеБезОплаты.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТСотрудникиРаботавшиеНеполноеРабочееВремяПредварительно КАК СотрудникиРаботавшиеНеполноеРабочееВремя
	|                             ПО СотрудникиВОтпускеБезОплаты.Сотрудник = СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник
	|ГДЕ
	|             КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|             И (СотрудникиВОтпускеБезОплаты.КоличествоДней > СотрудникиРаботавшиеНеполноеРабочееВремя.КоличествоДней
	|                                             ИЛИ СотрудникиРаботавшиеНеполноеРабочееВремя.Сотрудник ЕСТЬ NULL )";
	
	СотрудникиВОтпускеБезОплаты = Запрос.Выполнить().Выгрузить();
	
	// Сотрудники, работавшие вахтовым методом
	ЗарплатаКадрыОбщиеНаборыДанных.СоздатьВТПериоды(Запрос.МенеджерВременныхТаблиц, ПараметрыОтчета.ДатаНачалаПериодаОтчета, ПараметрыОтчета.ДатаКонцаПериодаОтчета, "Месяц");
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|             СотрудникиПериоды.Сотрудник,
	|             &КонецПериода КАК ДатаАктуальности,
	|             Периоды.Период КАК Месяц,
	|             НАЧАЛОПЕРИОДА(Периоды.Период, МЕСЯЦ) КАК ДатаНачала,
	|             КОНЕЦПЕРИОДА(Периоды.Период, МЕСЯЦ) КАК ДатаОкончания
	|ПОМЕСТИТЬ ВТСотрудникиДляРасчетаВремени
	|ИЗ
	|             ВТСотрудникиПериодыСостояний КАК СотрудникиПериоды
	|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТПериоды КАК Периоды
	|                             ПО (Периоды.Период МЕЖДУ СотрудникиПериоды.ДатаНачала И СотрудникиПериоды.ДатаОкончания)";
	
	Запрос.Выполнить();
	
	ПараметрыПолученияДанныхОВремени = УчетРабочегоВремениРасширенный.ПараметрыДляСоздатьВТДанныеУчетаРабочегоВремениСотрудников();
	ПараметрыПолученияДанныхОВремени.ИмяВТСотрудники = "ВТСотрудникиДляРасчетаВремени";
	ПараметрыПолученияДанныхОВремени.ДатаНачала = ПараметрыОтчета.ДатаНачалаПериодаОтчета;
	ПараметрыПолученияДанныхОВремени.ДатаОкончания = ПараметрыОтчета.ДатаКонцаПериодаОтчета;
	
	УчетРабочегоВремениРасширенный.СоздатьВТДанныеУчетаРабочегоВремениСотрудников(Запрос.МенеджерВременныхТаблиц, Ложь, ПараметрыПолученияДанныхОВремени);
	
	Запрос.Текст =
	"ВЫБРАТЬ
	|             ДанныеУчетаРабочегоВремениСотрудников.Сотрудник
	|ИЗ
	|             ВТДанныеУчетаРабочегоВремениСотрудников КАК ДанныеУчетаРабочегоВремениСотрудников
	|ГДЕ
	|             ДанныеУчетаРабочегоВремениСотрудников.ВидУчетаВремени = ЗНАЧЕНИЕ(Справочник.ВидыИспользованияРабочегоВремени.Вахта)
	|
	|СГРУППИРОВАТЬ ПО
	|             ДанныеУчетаРабочегоВремениСотрудников.Сотрудник";
	
	СотрудникиВахта = Запрос.Выполнить().Выгрузить();
	
	Если ПараметрыОтчета.ДатаНачалаПериодаОтчета >= '20230101' Тогда
		// После вступления в силу Приказа Росстата от 29.07.2022 № 532:
		// Находим сотрудников, у которых дата приема и дата увольнения в одном квартале,
		// Помечаем, что они не для расчета численности приемов и увольнений.
		// Находим сотрудников, которые были уволены и приняты в одном квартале
		// (одинаковое физ.лицо и дата приема больше или равна дате увольнения).
		// Помечаем и такие строки с приемом и увольнением в таблице кадровых данных.
		
		Запрос.Текст =
		"ВЫБРАТЬ
		|              КадровыеДанныеСотрудников.Организация КАК Организация,
		|              КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              КадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
		|              КадровыеДанныеСотрудников.ВидСобытия КАК ВидСобытия,
		|              КадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
		|              КадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
		|              КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              КадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
		|              КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
		|              ВЫБОР
		|                             КОГДА КадровыеДанныеСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)
		|                                                                            И КадровыеДанныеСотрудников.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
		|                                                             ИЛИ НЕ(КадровыеДанныеСотрудников.ДатаПриема >= &НачалоПериода
		|                                                                                            И КадровыеДанныеСотрудников.ДатаПриема <= &КонецПериода
		|                                                                                            И (КадровыеДанныеСотрудников.ДатаУвольнения >= &НачалоПериода
		|                                                                                                            И КадровыеДанныеСотрудников.ДатаУвольнения <= &КонецПериода))
		|                                                             ИЛИ КВАРТАЛ(КадровыеДанныеСотрудников.ДатаПриема) <> КВАРТАЛ(КадровыеДанныеСотрудников.ДатаУвольнения)
		|                                             ТОГДА ИСТИНА
		|                             ИНАЧЕ ЛОЖЬ
		|              КОНЕЦ КАК ИспользоватьДляПодсчета
		|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудниковБезПриемаУвольнения
		|ИЗ
		|              ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|              ВТКадровыеДанныеСотрудниковПрием.Организация КАК Организация,
		|              ВТКадровыеДанныеСотрудниковПрием.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              ВТКадровыеДанныеСотрудниковПрием.ВидЗанятости КАК ВидЗанятости,
		|              ВТКадровыеДанныеСотрудниковПрием.ВидСобытия КАК ВидСобытия,
		|              ВТКадровыеДанныеСотрудниковПрием.ДатаПриема КАК ДатаПриема,
		|              ВТКадровыеДанныеСотрудниковПрием.ДатаУвольнения КАК ДатаУвольнения,
		|              ВТКадровыеДанныеСотрудниковПрием.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              ВТКадровыеДанныеСотрудниковПрием.ФизическоеЛицо КАК ФизическоеЛицо,
		|              ВТКадровыеДанныеСотрудниковПрием.Сотрудник КАК Сотрудник
		|ПОМЕСТИТЬ ВТПриемСУвольнением
		|ИЗ
		|              ВТКадровыеДанныеСотрудниковБезПриемаУвольнения КАК ВТКадровыеДанныеСотрудниковПрием
		|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудниковБезПриемаУвольнения КАК ВТКадровыеДанныеСотрудниковУвольнение
		|                             ПО (ВТКадровыеДанныеСотрудниковПрием.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием))
		|                                             И (ВТКадровыеДанныеСотрудниковУвольнение.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение))
		|                                             И ВТКадровыеДанныеСотрудниковПрием.Организация = ВТКадровыеДанныеСотрудниковУвольнение.Организация
		|                                             И ВТКадровыеДанныеСотрудниковПрием.ФизическоеЛицо = ВТКадровыеДанныеСотрудниковУвольнение.ФизическоеЛицо
		|                                             И ВТКадровыеДанныеСотрудниковПрием.ДатаПриема >= ВТКадровыеДанныеСотрудниковУвольнение.ДатаУвольнения
		|ГДЕ
		|              КВАРТАЛ(ВТКадровыеДанныеСотрудниковПрием.ДатаПриема) = КВАРТАЛ(ВТКадровыеДанныеСотрудниковУвольнение.ДатаУвольнения)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|              ВТКадровыеДанныеСотрудниковУвольнение.Организация КАК Организация,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ВидЗанятости КАК ВидЗанятости,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ВидСобытия КАК ВидСобытия,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ДатаПриема КАК ДатаПриема,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ДатаУвольнения КАК ДатаУвольнения,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              ВТКадровыеДанныеСотрудниковУвольнение.ФизическоеЛицо КАК ФизическоеЛицо,
		|              ВТКадровыеДанныеСотрудниковУвольнение.Сотрудник КАК Сотрудник
		|ПОМЕСТИТЬ ВТУвольнениеСПриемом
		|ИЗ
		|              ВТКадровыеДанныеСотрудниковБезПриемаУвольнения КАК ВТКадровыеДанныеСотрудниковУвольнение
		|                             ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудниковБезПриемаУвольнения КАК ВТКадровыеДанныеСотрудниковПрием
		|                             ПО (ВТКадровыеДанныеСотрудниковПрием.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием))
		|                                             И (ВТКадровыеДанныеСотрудниковУвольнение.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение))
		// +++ Климушкин Д.Ю. 25.07.2024
		// Сотрудники, уволенные и вновь принятые с видом занятости "Совместительство" (внешнее или внутреннее) будут учитываться при
		// подсчете сотрудников, уволенных за отчетный период. Совместительство это не трудоустройство.
		|                                             И (НЕ ВТКадровыеДанныеСотрудниковПрием.ВидЗанятости В (ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.Совместительство), ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство)))
		//\\ --- Климушкин Д.Ю. 25.07.2024
		|                                             И ВТКадровыеДанныеСотрудниковУвольнение.Организация = ВТКадровыеДанныеСотрудниковПрием.Организация
		|                                             И ВТКадровыеДанныеСотрудниковУвольнение.ФизическоеЛицо = ВТКадровыеДанныеСотрудниковПрием.ФизическоеЛицо
		|                                             И ВТКадровыеДанныеСотрудниковУвольнение.ДатаУвольнения <= ВТКадровыеДанныеСотрудниковПрием.ДатаПриема
		|ГДЕ
		|              КВАРТАЛ(ВТКадровыеДанныеСотрудниковПрием.ДатаПриема) = КВАРТАЛ(ВТКадровыеДанныеСотрудниковУвольнение.ДатаУвольнения)
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|              ВТКадровыеДанныеСотрудников.Организация КАК Организация,
		|              ВТКадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
		|              ВТКадровыеДанныеСотрудников.ВидСобытия КАК ВидСобытия,
		|              ВТКадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
		|              ВТКадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
		|              ВТКадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              ВТКадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
		|              &НачалоПериода КАК НачалоПериода,
		|              &КонецПериода КАК КонецПериода,
		|              ВТКадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              ВТПриемСУвольнением.ФизическоеЛицо КАК ФизическоеЛицоПриемУвольнение,
		|              ВТУвольнениеСПриемом.ФизическоеЛицо КАК ФизическоеЛицоУвольнениеПрием,
		|              ВЫБОР
		|                             КОГДА НЕ ВТПриемСУвольнением.Сотрудник ЕСТЬ NULL
		|                                                             ИЛИ НЕ ВТУвольнениеСПриемом.Сотрудник ЕСТЬ NULL
		|                                             ТОГДА ЛОЖЬ
		|                             ИНАЧЕ ВТКадровыеДанныеСотрудников.ИспользоватьДляПодсчета
		|              КОНЕЦ КАК ИспользоватьДляПодсчета
		|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудниковДляОтбора
		|ИЗ
		|              ВТКадровыеДанныеСотрудниковБезПриемаУвольнения КАК ВТКадровыеДанныеСотрудников
		|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТПриемСУвольнением КАК ВТПриемСУвольнением
		|                             ПО ВТКадровыеДанныеСотрудников.Организация = ВТПриемСУвольнением.Организация
		|                                             И ВТКадровыеДанныеСотрудников.ВидЗанятости = ВТПриемСУвольнением.ВидЗанятости
		|                                             И ВТКадровыеДанныеСотрудников.ВидСобытия = ВТПриемСУвольнением.ВидСобытия
		|                                             И ВТКадровыеДанныеСотрудников.ДатаПриема = ВТПриемСУвольнением.ДатаПриема
		|                                             И ВТКадровыеДанныеСотрудников.ФизическоеЛицо = ВТПриемСУвольнением.ФизическоеЛицо
		|                                             И ВТКадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию = ВТПриемСУвольнением.ДолжностьПоШтатномуРасписанию
		|                             ЛЕВОЕ СОЕДИНЕНИЕ ВТУвольнениеСПриемом КАК ВТУвольнениеСПриемом
		|                             ПО ВТКадровыеДанныеСотрудников.Организация = ВТУвольнениеСПриемом.Организация
		|                                             И ВТКадровыеДанныеСотрудников.ВидЗанятости = ВТУвольнениеСПриемом.ВидЗанятости
		|                                             И ВТКадровыеДанныеСотрудников.ВидСобытия = ВТУвольнениеСПриемом.ВидСобытия
		|                                             И ВТКадровыеДанныеСотрудников.ДатаПриема = ВТУвольнениеСПриемом.ДатаПриема
		|                                             И ВТКадровыеДанныеСотрудников.ДатаУвольнения = ВТУвольнениеСПриемом.ДатаУвольнения
		|                                             И ВТКадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ = ВТУвольнениеСПриемом.ПриказОбУвольненииСтатьяТКРФ
		|                                             И ВТКадровыеДанныеСотрудников.ФизическоеЛицо = ВТУвольнениеСПриемом.ФизическоеЛицо
		|                                             И ВТКадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию = ВТУвольнениеСПриемом.ДолжностьПоШтатномуРасписанию
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТКадровыеДанныеСотрудников
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|              ВТКадровыеДанныеСотрудниковДляОтбора.Организация КАК Организация,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ВидЗанятости КАК ВидЗанятости,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ВидСобытия КАК ВидСобытия,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДатаПриема КАК ДатаПриема,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДатаУвольнения КАК ДатаУвольнения,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.Сотрудник КАК Сотрудник,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ИспользоватьДляПодсчета КАК ИспользоватьДляПодсчета
		|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудников
		|ИЗ
		|              ВТКадровыеДанныеСотрудниковДляОтбора КАК ВТКадровыеДанныеСотрудниковДляОтбора
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТКадровыеДанныеСотрудниковБезПриемаУвольнения
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТПриемСУвольнением
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТУвольнениеСПриемом
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТКадровыеДанныеСотрудниковДляОтбора";
	Иначе
		
		Запрос.Текст =
		"ВЫБРАТЬ
		|              КадровыеДанныеСотрудников.Организация КАК Организация,
		|              КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              КадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
		|              КадровыеДанныеСотрудников.ВидСобытия КАК ВидСобытия,
		|              КадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
		|              КадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
		|              КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              КадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
		|              КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
		|              ИСТИНА КАК ИспользоватьДляПодсчета
		|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудниковДляОтбора
		|ИЗ
		|              ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТКадровыеДанныеСотрудников
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|ВЫБРАТЬ
		|              ВТКадровыеДанныеСотрудниковДляОтбора.Организация КАК Организация,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ВидЗанятости КАК ВидЗанятости,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ВидСобытия КАК ВидСобытия,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДатаПриема КАК ДатаПриема,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ДатаУвольнения КАК ДатаУвольнения,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ФизическоеЛицо КАК ФизическоеЛицо,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.Сотрудник КАК Сотрудник,
		|              ВТКадровыеДанныеСотрудниковДляОтбора.ИспользоватьДляПодсчета КАК ИспользоватьДляПодсчета
		|ПОМЕСТИТЬ ВТКадровыеДанныеСотрудников
		|ИЗ
		|              ВТКадровыеДанныеСотрудниковДляОтбора КАК ВТКадровыеДанныеСотрудниковДляОтбора
		|;
		|
		|////////////////////////////////////////////////////////////////////////////////
		|УНИЧТОЖИТЬ ВТКадровыеДанныеСотрудниковДляОтбора";
	КонецЕсли;
	
	Запрос.Выполнить();
	
	// Данные сотрудников
	Запрос.Текст =
	"ВЫБРАТЬ
	|             КадровыеДанныеСотрудников.Организация КАК Организация,
	|             КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
	|             КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ПозицияШтатногоРасписания,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)
	|                                                             И (КадровыеДанныеСотрудников.ДатаПриема МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьПринятыхВПериоде,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Прием)
	|                                                             И (КадровыеДанныеСотрудников.ДатаПриема МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                                             И (ШтатноеРасписание.ДатаУтверждения МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьПринятыхВПериодеНаНовуюПозицию,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
	|                                                             И (КадровыеДанныеСотрудников.ДатаУвольнения МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьУволенныхВПериоде,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
	|                                                             И КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ = ЗНАЧЕНИЕ(Справочник.ОснованияУвольнения.Статья77п1)
	|                                                             И (КадровыеДанныеСотрудников.ДатаУвольнения МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьУволенныхПоСоглашениюСторон,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
	|                                                             И КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ = ЗНАЧЕНИЕ(Справочник.ОснованияУвольнения.Статья81п2)
	|                                                             И (КадровыеДанныеСотрудников.ДатаУвольнения МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьУволенныхВСвязиССокращением,
	|             ВЫБОР
	|                             КОГДА КадровыеДанныеСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ОсновноеМестоРаботы)
	|                                                             И КадровыеДанныеСотрудников.ИспользоватьДляПодсчета
	|                                                             И КадровыеДанныеСотрудников.ВидСобытия = ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
	|                                                             И КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ = ЗНАЧЕНИЕ(Справочник.ОснованияУвольнения.Статья77п3)
	|                                                             И (КадровыеДанныеСотрудников.ДатаУвольнения МЕЖДУ &НачалоПериода И &КонецПериода)
	|                                             ТОГДА КадровыеДанныеСотрудников.Сотрудник
	|             КОНЕЦ КАК ЧисленностьУволенныхПоСобственномуЖеланию,
	|             КадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
	|             КадровыеДанныеСотрудников.ВидСобытия КАК ВидСобытия,
	|             КадровыеДанныеСотрудников.ДатаПриема КАК ДатаПриема,
	|             КадровыеДанныеСотрудников.ДатаУвольнения КАК ДатаУвольнения,
	|             КадровыеДанныеСотрудников.ПриказОбУвольненииСтатьяТКРФ КАК ПриказОбУвольненииСтатьяТКРФ,
	|             &НачалоПериода КАК НачалоПериода,
	|             &КонецПериода КАК КонецПериода,
	|             КадровыеДанныеСотрудников.ИспользоватьДляПодсчета КАК ИспользоватьДляПодсчета
	|ИЗ
	|             ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
	|                             ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ШтатноеРасписание КАК ШтатноеРасписание
	|                             ПО КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию = ШтатноеРасписание.Ссылка";
	
	ДанныеСотрудников = Запрос.Выполнить().Выгрузить();
	
	Запрос.Текст =
	
	"ВЫБРАТЬ РАЗЛИЧНЫЕ
	|             ПозицииШтатногоРасписанияНаКонецПериода.ПозицияШтатногоРасписания КАК ПозицияШтатногоРасписания,
	|             ВЫБОР
	|                             КОГДА ЕСТЬNULL(ПозицииШтатногоРасписанияНаКонецПериода.КоличествоСтавок, 0) - ЕСТЬNULL(ПозицииШтатногоРасписанияНаКонецПериода.Занято, 0) > 0
	|                                             ТОГДА ЕСТЬNULL(ПозицииШтатногоРасписанияНаКонецПериода.КоличествоСтавок, 0) - ЕСТЬNULL(ПозицииШтатногоРасписанияНаКонецПериода.Занято, 0)
	|                             ИНАЧЕ 0
	|             КОНЕЦ КАК Вакансии,
	|             ВЫБОР
	|                             КОГДА ПозицииШтатногоРасписанияНаКонецПериода.ТрудоваяФункция = ЗНАЧЕНИЕ(Справочник.ТрудовыеФункции.ПустаяСсылка)
	|                                             ТОГДА ПозицииШтатногоРасписанияНаКонецПериода.Должность.ТрудоваяФункция.КодПоОКЗ.Код
	|                             ИНАЧЕ ПозицииШтатногоРасписанияНаКонецПериода.ТрудоваяФункция.КодПоОКЗ.Код
	|             КОНЕЦ КАК ДолжностьОКЗКод
	|ИЗ
	|             ВТПозицииШтатногоРасписанияНаКонецПериода КАК ПозицииШтатногоРасписанияНаКонецПериода";
	
	ПозицииШтатногоРасписанияНаКонецПериода = Запрос.Выполнить().Выгрузить();
	ВнешниеНаборыДанных=Новый Структура;
	ВнешниеНаборыДанных.Вставить("ДанныеСотрудников", ДанныеСотрудников);
	ВнешниеНаборыДанных.Вставить("ПозицииШтатногоРасписанияНаКонецПериода",                            ПозицииШтатногоРасписанияНаКонецПериода);
	ВнешниеНаборыДанных.Вставить("СотрудникиРаботавшиеНеполноеРабочееВремя",                СотрудникиРаботавшиеНеполноеРабочееВремя);
	ВнешниеНаборыДанных.Вставить("СотрудникиВОтпускеБезОплаты",                                                                           СотрудникиВОтпускеБезОплаты);
	ВнешниеНаборыДанных.Вставить("СотрудникиВПростое",                                                                                                  СотрудникиВПростое);
	ВнешниеНаборыДанных.Вставить("СотрудникиВахта",                                                                                                                          СотрудникиВахта);
	ВнешниеНаборыДанных.Вставить("СотрудникиВОтпускеДоПолутораЛет",                                                  ПлановыеНачисленияСотрудниковДоПолутораЛет);
	ВнешниеНаборыДанных.Вставить("СотрудникиВОтпускеДоТрехЛет",                                                                           СотрудникиВОтпускеДоТрехЛет);
	
	Возврат ВнешниеНаборыДанных;
	
КонецФункции

Даже нечего больше написать - просто пользуйтесь)

Отчетность Статистика Регламентированная отчетность Бухгалтерия ЗУП Кадровый учет

См. также

Обмен с ГосИС Бюджетный учет Регламентированный учет и отчетность Бухгалтер Пользователь Платформа 1С v8.3 1С:Бухгалтерия 3.0 1С:Управление холдингом Химическая промышленность Государственные, бюджетные структуры Электротехника и микроэлектроника Машиностроение и приборостроение Металлургическая промышленность Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Раздельный учет ГОЗ в 1С: автоматизация отчетности по госзаказам. Отчеты по исполнению госконтрактов, расчетно-калькуляционные материалы и контроль операций для исполнения в срок. Простая настройка и соответствие законодательству. Профессиональный консалтинг и регулярные обновления продукта.

44000 руб.

28.08.2020    337499    2289    135    

1044

Регламентированный учет и отчетность Бухгалтер Платформа 1С v8.3 1С:Бухгалтерия 3.0 Россия Налоговый учет Налог на прибыль Платные (руб)

Предназначена для 1C:Бухгалтерия 3.0 и 1C:Бухгалтерия КОРП 3.0. Согласно рекомендации фирмы "1С" при переходе с УСН на ОСН ввод данных по налоговому учету происходит при помощи документа "Ввод остатков", для которого расширение дополняет его функционал возможностью автоматического заполнения табличной части документа для разделов учета Материалы, Товары, Товары отгруженные, Расчеты с поставщиками, Расчеты с покупателями, Расчеты с разными дебиторами и кредиторами.

12000 руб.

14.12.2023    1363    23    2    

11

Адаптация типовых решений Платформа 1С v8.3 1С:Документооборот Россия Платные (руб)

Расширение конфигурации для «1С:Документооборот КОРП», редакция 3.0. позволяет: 1.использовать произвольные табличные части в качестве дополнительных реквизитов к документу; 2 использовать произвольные табличные части в шаблонах в формате docx для автоматического заполнения таблиц.

29400 руб.

29.06.2023    6546    17    6    

27

Регламентированный учет и отчетность Обмен с ГосИС ЭДО и ОФД Бухгалтер Пользователь Платформа 1С v8.3 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)

Работаете по контрактной схеме, сталкивались с проблемой, что в контракте жестко указаны наименование, цена, единица измерения товара. И не все готовы создавать новую номенклатуру под каждый контракт или менять наименование и единицу измерения для уже имеющейся. Тем более, бывает так, что контракт - это формальность. Контракт не описывает жесткие условия поставки, нужно соблюсти правильность в предоставлении документов. Данное решение позволит вам оперировать своей номенклатурой при оформлении реализаций по государственному контракту в УТ 11.5 и КА 2.5.11, в то же время выводить на печать документы, соответствующие данным контракта. Реализована выгрузка для сайта госзакупок (ЕИС) по 44-ФЗ.

60000 руб.

19.12.2022    12575    35    20    

21

Логистика, склад и ТМЦ Адаптация типовых решений Пользователь Платформа 1С v8.3 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 Россия Управленческий учет Платные (руб)

Чтобы не допустить путаницы с обещаниями клиентам и для четкого контроля исполнения заказов мы используем резервирование товаров. Мы доработали УНФ, чтобы она автоматически отменяла старые резервы и не мешала эффективно продавать.

7200 руб.

02.08.2023    4591    18    1    

36
Оставьте свое сообщение