Выводит не правильное значение

1. Krey_ 28.12.18 10:12 Сейчас в теме
Помогите пожалуйста, не могу понять почему выводит не то значение, вроде все берет правильно.

Не правильно выводит значение КоличествоВОтпускеПоУходуЗаРебенкомНаКонецПериода, все остальные значения правильны.

ВЫБРАТЬ
	ДАТАВРЕМЯ(1, 1, 1) КАК Период
ПОМЕСТИТЬ Представления_Периоды
ГДЕ
	"НачалоИнтервала" = &НачалоПериода
	И "ОкончаниеИнтервала" = &КонецПериода
	И "Периодичность" = "ДЕНЬ"
	И "ИспользоватьКонецПериода" = ЛОЖЬ
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	КадроваяИсторияСотрудниковСрезПоследних.Период КАК Период,
	КадроваяИсторияСотрудниковСрезПоследних.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_СотрудникиДаты
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников.СрезПоследних({(КОНЕЦПЕРИОДА(ДОБАВИТЬКДАТЕ(&НачалоПериода, ДЕНЬ, -1), ДЕНЬ))}, ) КАК КадроваяИсторияСотрудниковСрезПоследних
ГДЕ
	КадроваяИсторияСотрудниковСрезПоследних.ВидСобытия <> ЗНАЧЕНИЕ(Перечисление.ВидыКадровыхСобытий.Увольнение)
{ГДЕ
	(КадроваяИсторияСотрудниковСрезПоследних.Организация = &Организация),
	КадроваяИсторияСотрудниковСрезПоследних.Подразделение.*}

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	КадроваяИсторияСотрудников.Период,
	КадроваяИсторияСотрудников.Сотрудник
ИЗ
	РегистрСведений.КадроваяИсторияСотрудников КАК КадроваяИсторияСотрудников
ГДЕ
	НАЧАЛОПЕРИОДА(КадроваяИсторияСотрудников.Период, ДЕНЬ) МЕЖДУ НАЧАЛОПЕРИОДА(&НачалоПериода, ДЕНЬ) И КОНЕЦПЕРИОДА(&КонецПериода, ДЕНЬ)
{ГДЕ
	(КадроваяИсторияСотрудников.Организация = &Организация),
	КадроваяИсторияСотрудников.Подразделение.*}
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_СотрудникиДаты.Период КАК Период,
	ВТ_СотрудникиДаты.Сотрудник КАК Сотрудник,
	ЗНАЧЕНИЕ(Справочник.ФизическиеЛица.ПустаяСсылка) КАК ФизическоеЛицо,
	0 КАК КоличествоСтавок,
	ЗНАЧЕНИЕ(Справочник.ШтатноеРасписание.ПустаяСсылка) КАК ДолжностьПоШтатномуРасписанию,
	ЗНАЧЕНИЕ(Справочник.ПодразделенияОрганизаций.ПустаяСсылка) КАК Подразделение,
	ЗНАЧЕНИЕ(Перечисление.СостоянияСотрудника.ПустаяСсылка) КАК Состояние,
	ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ПустаяСсылка) КАК ВидЗанятости
ПОМЕСТИТЬ Представления_КадровыеДанныеСотрудников
ИЗ
	ВТ_СотрудникиДаты КАК ВТ_СотрудникиДаты
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Представления_КадровыеДанныеСотрудников.Период КАК Период,
	Представления_КадровыеДанныеСотрудников.Сотрудник КАК Сотрудник,
	Представления_КадровыеДанныеСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	Представления_КадровыеДанныеСотрудников.КоличествоСтавок КАК КоличествоСтавок,
	Представления_КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
	Представления_КадровыеДанныеСотрудников.Подразделение КАК Подразделение,
	Представления_КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию.СтатьяФинансирования КАК СтатьяФинансирования,
	Представления_КадровыеДанныеСотрудников.Состояние КАК Состояние,
	Представления_КадровыеДанныеСотрудников.ВидЗанятости КАК ВидЗанятости,
	ТарификационныеГруппыДолжностейМедРаботников.ТарификационнаяГруппа КАК МедКатегорияДолжности
ПОМЕСТИТЬ ВТ_КадроваяИстория
ИЗ
	Представления_КадровыеДанныеСотрудников КАК Представления_КадровыеДанныеСотрудников
		ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ТарификационныеГруппыДолжностейМедРаботников КАК ТарификационныеГруппыДолжностейМедРаботников
		ПО Представления_КадровыеДанныеСотрудников.ДолжностьПоШтатномуРасписанию = ТарификационныеГруппыДолжностейМедРаботников.Должность
;

////////////////////////////////////////////////////////////­////////////////////
УНИЧТОЖИТЬ Представления_КадровыеДанныеСотрудников
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_КадроваяИстория.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_Сотрудники
ИЗ
	ВТ_КадроваяИстория КАК ВТ_КадроваяИстория

СГРУППИРОВАТЬ ПО
	ВТ_КадроваяИстория.Сотрудник
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	Представления_Периоды.Период КАК Период,
	ВТ_Сотрудники.Сотрудник КАК Сотрудник
ПОМЕСТИТЬ ВТ_Календарь
ИЗ
	Представления_Периоды КАК Представления_Периоды
		ПОЛНОЕ СОЕДИНЕНИЕ ВТ_Сотрудники КАК ВТ_Сотрудники
		ПО (ИСТИНА)
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_Календарь.Период КАК Период,
	ВТ_Календарь.Сотрудник КАК Сотрудник,
	МАКСИМУМ(ВТ_КадроваяИстория.Период) КАК ДатаКадровойИстории
ПОМЕСТИТЬ ВТ_КалендарьСДатамиДляСоединения
ИЗ
	ВТ_Календарь КАК ВТ_Календарь
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КадроваяИстория КАК ВТ_КадроваяИстория
		ПО ВТ_Календарь.Сотрудник = ВТ_КадроваяИстория.Сотрудник
			И ВТ_Календарь.Период >= ВТ_КадроваяИстория.Период

СГРУППИРОВАТЬ ПО
	ВТ_Календарь.Период,
	ВТ_Календарь.Сотрудник
;

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

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_КалендарьСотрудников.Период КАК Период,
	ВТ_КалендарьСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	1 - ВТ_КалендарьСотрудников.КоличествоСтавок КАК НехватаетСтавок,
	ВТ_КалендарьСотрудников.ДолжностьПоШтатномуРасписанию КАК ДолжностьПоШтатномуРасписанию,
	ВТ_КалендарьСотрудников.Подразделение КАК Подразделение,
	ВТ_КалендарьСотрудников.СтатьяФинансирования КАК СтатьяФинансирования,
	ВТ_КалендарьСотрудников.Состояние КАК Состояние,
	ВТ_КалендарьСотрудников.МедКатегорияДолжности КАК МедКатегорияДолжности,
	ВТ_КалендарьСотрудников.ВидЗанятости КАК ВидЗанятости
ПОМЕСТИТЬ ВТ_КалендарьФизлицСНеполнойСтавкой
ИЗ
	ВТ_КалендарьСотрудников КАК ВТ_КалендарьСотрудников
ГДЕ
	ВТ_КалендарьСотрудников.ВидЗанятости = &ВидЗанятости
	И ВТ_КалендарьСотрудников.КоличествоСтавок < 1
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_КалендарьСотрудников.Период КАК Период,
	ВТ_КалендарьСотрудников.ФизическоеЛицо КАК ФизическоеЛицо,
	СУММА(ВТ_КалендарьСотрудников.КоличествоСтавок) КАК КоличествоСтавок,
	ВТ_КалендарьСотрудников.Подразделение КАК Подразделение,
	ВТ_КалендарьСотрудников.СтатьяФинансирования КАК СтатьяФинансирования,
	ВТ_КалендарьСотрудников.Состояние КАК Состояние,
	ВТ_КалендарьСотрудников.МедКатегорияДолжности КАК МедКатегорияДолжности,
	ВТ_КалендарьФизлицСНеполнойСтавкой.НехватаетСтавок КАК НехватаетСтавок
ПОМЕСТИТЬ ВТ_КалендарьФизлицПоВнутрСовм
ИЗ
	ВТ_КалендарьСотрудников КАК ВТ_КалендарьСотрудников
		ВНУТРЕННЕЕ СОЕДИНЕНИЕ ВТ_КалендарьФизлицСНеполнойСтавкой КАК ВТ_КалендарьФизлицСНеполнойСтавкой
		ПО ВТ_КалендарьСотрудников.Период = ВТ_КалендарьФизлицСНеполнойСтавкой.Период
			И ВТ_КалендарьСотрудников.ФизическоеЛицо = ВТ_КалендарьФизлицСНеполнойСтавкой.ФизическоеЛицо
			И (ВТ_КалендарьСотрудников.ВидЗанятости = ЗНАЧЕНИЕ(Перечисление.ВидыЗанятости.ВнутреннееСовместительство))

СГРУППИРОВАТЬ ПО
	ВТ_КалендарьСотрудников.Период,
	ВТ_КалендарьСотрудников.ФизическоеЛицо,
	ВТ_КалендарьСотрудников.Подразделение,
	ВТ_КалендарьСотрудников.СтатьяФинансирования,
	ВТ_КалендарьСотрудников.Состояние,
	ВТ_КалендарьСотрудников.МедКатегорияДолжности,
	ВТ_КалендарьФизлицСНеполнойСтавкой.НехватаетСтавок
;

////////////////////////////////////////////////////////////­////////////////////
ВЫБРАТЬ
	ВТ_КалендарьФизлицПоВнутрСовм.Период КАК Период,
	ВТ_КалендарьФизлицПоВнутрСовм.ФизическоеЛицо КАК ФизическоеЛицо,
	СУММА(ВТ_КалендарьФизлицПоВнутрСовм.КоличествоСтавок) КАК СуммаСтавокПоВсемСтатьям
ПОМЕСТИТЬ ВТ_КалендарьКоличестваСтавок
ИЗ
	ВТ_КалендарьФизлицПоВнутрСовм КАК ВТ_КалендарьФизлицПоВнутрСовм

СГРУППИРОВАТЬ ПО
	ВТ_КалендарьФизлицПоВнутрСовм.Период,
	ВТ_КалендарьФизлицПоВнутрСовм.ФизическоеЛицо
;

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

ОБЪЕДИНИТЬ ВСЕ

ВЫБРАТЬ
	ВТ_КалендарьФизлицПоВнутрСовм.Период,
	ВТ_КалендарьФизлицПоВнутрСовм.ФизическоеЛицо,
	ВЫБОР
		КОГДА ВТ_КалендарьФизлицПоВнутрСовм.НехватаетСтавок < ВТ_КалендарьКоличестваСтавок.СуммаСтавокПоВсемСтатьям
			ТОГДА ВТ_КалендарьФизлицПоВнутрСовм.КоличествоСтавок / ВТ_КалендарьКоличестваСтавок.СуммаСтавокПоВсемСтатьям
		ИНАЧЕ 1
	КОНЕЦ * ВТ_КалендарьФизлицПоВнутрСовм.НехватаетСтавок,
	ВТ_КалендарьФизлицПоВнутрСовм.Подразделение,
	ВТ_КалендарьФизлицПоВнутрСовм.СтатьяФинансирования,
	ВТ_КалендарьФизлицПоВнутрСовм.МедКатегорияДолжности,
	ЛОЖЬ,
	ЛОЖЬ
ИЗ
	ВТ_КалендарьФизлицПоВнутрСовм КАК ВТ_КалендарьФизлицПоВнутрСовм
		ЛЕВОЕ СОЕДИНЕНИЕ ВТ_КалендарьКоличестваСтавок КАК ВТ_КалендарьКоличестваСтавок
		ПО ВТ_КалендарьФизлицПоВнутрСовм.Период = ВТ_КалендарьКоличестваСтавок.Период
			И ВТ_КалендарьФизлицПоВнутрСовм.ФизическоеЛицо = ВТ_КалендарьКоличестваСтавок.ФизическоеЛицо
;

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

СГРУППИРОВАТЬ ПО
	ВТ_ОкончательныйКалендарь.Подразделение,
	ВТ_ОкончательныйКалендарь.МедКатегорияДолжности,
	ВТ_ОкончательныйКалендарь.СтатьяФинансирования
Показать


Простите пожалуйста если что-то не правильно написал.
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Dmitrij-2 45 29.12.18 12:06 Сейчас в теме
Отладчик вам в помощь
Оставьте свое сообщение

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