Отчет в статистику по форме П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С Бухгалтер Платформа 1С v8.3 Сложные периодические расчеты 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Зарплата и Управление Персоналом 2.5 Бухгалтерский учет Налоговый учет Управленческий учет Акцизы ЕНВД ЕСН Земельный налог ИП, ПБОЮЛ, КФХ Налог на имущество Налог на прибыль НДС НДФЛ ФОМС, ЕФС Транспортный налог УСН ПСН (патентная система налогообложения) Платные (руб)

Обновления для конфигураций: КА 1.1; ЗУП 2.5; БУХ 2.0; КА 1.1 Комплексная автоматизация торговли алкогольной продукцией; КА 1.1 Комплексный учет сельскохозяйственного предприятия

27900 руб.

01.04.2020    147423    649    362    

235

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

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

60000 руб.

19.12.2022    12143    34    20    

21

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

Обработка формирует файлы алкогольных декларации форм 7,8 с 1С:Розницы от 2.3.8, УТ 11.х, КА Проста в использовании. Формат выгрузки деклараций: 4.4, есть возможность объединять сформированные декларации из файлов XML. Дополнительно можно делать передачу в рег 2 по остаткам и списывать остатки ЕГАИС по данным базы (пиво)

3600 руб.

20.07.2016    176551    1284    1706    

1044

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

В стандартном функционале 1С: Бухгалтерия 3.0 нет учета акцизов. Счет-фактуры и УПД в печатных формах не заполняют сумму акциза. При проведении документа Реализация, «сумма Акциз» не высчитывается и не формируются проводки. Расширение Акцизы - Пиво выделит сумму акциза в первичных документах. Список доработанных документов 1С: Реализация (акты, накладные, УПД), Корректировка реализации, Списание товаров, материалов. Первичные документы с отображением акциза - счет-фактура, УПД.

11500 руб.

23.12.2019    57632    230    110    

97

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

Не успеваете сдать декларацию вовремя? Устали заносить/править данные вручную? Давит угроза штрафа в десятки, а то и сотни тысяч? Бессонные ночи и потраченные на работе вечера в пик сдачи отчетности? Вам знакомы эти проблемы? Если да, то у нас есть РЕШЕНИЕ, которое Вам необходимо! Автоматическое заполнение алкогольных деклараций по формам 1 (производство), 2, 3, 4 (опт), 5 (перевозка), 6 (производственные мощности), 7, 8 (розница, разделы I и II и III) по данным учета, проверка и шифрование, а также загрузка из внешних файлов и выгрузка в формате XML 4.4 согласно приказу Росалкогольрегулирования от 17.12.2020 г. № 396

28000 руб.

01.07.2013    117464    106    94    

108

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

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

29400 руб.

29.06.2023    6116    15    5    

24

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

В стандартном функционале 1С: Бухгалтерия 3.0 нет учета акцизов. Счет-фактуры и УПД в печатных формах не заполняют сумму акциза. При проведении документа Реализация, «сумма Акциз» не высчитывается и не формируются проводки. Для решения этой проблемы мы разработали расширение "Акцизы - Газировка" для 1С: Бухгалтерии 3.0 (ПРОФ). Расширение "Акцизы - Газировка" будет полезно производителям сладкой газированной воды с 1 июля 2023 года.

11500 руб.

02.06.2023    7464    68    11    

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