Отчет по отработанному времени в ЗиУП

1. hasan-rusel 11 27.11.12 06:48 Сейчас в теме
Подскажите пожалуйста, не могу разобраться в чем проблема...

Есть массив и запрос:

	МассивЯвки = Новый Массив;
	МассивЯвки.Добавить("Я");
	МассивЯвки.Добавить("ВМ");
	МассивЯвки.Добавить("НС");
	МассивЯвки.Добавить("РВ");
	МассивЯвки.Добавить("С");
    МассивЯвки.Добавить("СВ");
	МассивЯвки.Добавить("СД");
	МассивЯвки.Добавить("ЛЧ");
	МассивЯвки.Добавить("ВЧ");
	МассивЯвки.Добавить("УВ");
	МассивЯвки.Добавить("Н");
	МассивЯвки.Добавить("СР");
	 
	МассивВыходныеИПраздничные = Новый Массив;
	МассивВыходныеИПраздничные.Добавить("В");
	МассивВыходныеИПраздничные.Добавить("НВ");
	МассивВыходныеИПраздничные.Добавить("ОВ");
	
	МассивБольничные = Новый Массив;
	МассивБольничные.Добавить("Б");
	МассивБольничные.Добавить("Т");
	
	МассивОтпуск = Новый Массив;
	МассивОтпуск.Добавить("ОТ");
	МассивОтпуск.Добавить("ОД");
	//МассивОтпуск.Добавить("ДБ");
                      	
	МассивУчебныйОтпуск = Новый Массив;
	МассивУчебныйОтпуск.Добавить("УД");
	МассивУчебныйОтпуск.Добавить("У");
	
	МассивПрогул = Новый Массив;
	МассивПрогул.Добавить("ПВ");
	МассивПрогул.Добавить("ПР");
	МассивПрогул.Добавить("НБ");

	МассивКомандировка = Новый Массив;
	МассивКомандировка.Добавить("К");
	МассивКомандировка.Добавить("КВ");
	//МассивКомандировка.Добавить("РВК");
	
	МассивПрочие = Новый Массив;
	МассивПрочие.Добавить("А");
	МассивПрочие.Добавить("ВП");
	МассивПрочие.Добавить("ВР");
	МассивПрочие.Добавить("Г");
	МассивПрочие.Добавить("ДО");
	МассивПрочие.Добавить("ДБ");
	МассивПрочие.Добавить("ДП");
	МассивПрочие.Добавить("ЗБ");
    МассивПрочие.Добавить("МВ");
	МассивПрочие.Добавить("НД");
	МассивПрочие.Добавить("НЗ");
	МассивПрочие.Добавить("НН");
	МассивПрочие.Добавить("НО");
    МассивПрочие.Добавить("НП");
	МассивПрочие.Добавить("ОЗ");
	МассивПрочие.Добавить("ПК");
	МассивПрочие.Добавить("ПМ");


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


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

	Пока Выборка.Следующий() Цикл
	
                                      
		ФактическиОтработано = Выборка.ФактическиОтработано + Выборка.Командировки + Выборка.Болезнь + Выборка.Выходные + Выборка.Явки;
	КонецЦикла;
Показать


Но в выборке почему-то "Ошибка чтения значения"


Сам запрос вроде как отрабатывается нормально.


Помогите пожалуйста куда копать, заранее спасибо !
По теме из базы знаний
Вознаграждение за ответ
Показать полностью
Найденные решения
56. M.Shalimov 206 27.11.12 15:00 Сейчас в теме
(54) hasan-rusel, Он поймает реквизит отчета.
Только строчку: "Сотрудник = ФизЛицо" уберите.
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. tolyan_ekb 80 27.11.12 08:28 Сейчас в теме
А почему указатель отладчика уже не в цикле, когда переменную выборка вычисляем? Попробуй в ТЗ выгрузить и в отладчике вычислить и здесь разместить картинку, может что проясниться.
3. hasan-rusel 11 27.11.12 09:22 Сейчас в теме
потому что указатель доходит до строки Пока... и сразу спрыгивает в ЗаголовокНачисления.


Надеюсь на помощь !

4. tolyan_ekb 80 27.11.12 09:32 Сейчас в теме
(3) hasan-rusel, теперь надо нажать "зеленый карандашь" справа сверху и увидишь что в таблице значений
5. hasan-rusel 11 27.11.12 09:39 Сейчас в теме
6. tolyan_ekb 80 27.11.12 09:43 Сейчас в теме
Надо было на первуб строчку встать и выбрать саму таблицу занчений
7. tolyan_ekb 80 27.11.12 09:44 Сейчас в теме
Так ты раскрыл колонки таблицы
8. hasan-rusel 11 27.11.12 09:54 Сейчас в теме
А так там все пусто, если я все правильно делаю...

9. tolyan_ekb 80 27.11.12 09:58 Сейчас в теме
Вроде все правильно. Непонятно почему таблица пустая, если в консоли есть результат.
10. hasan-rusel 11 27.11.12 10:00 Сейчас в теме
tolyan_ekb вот и я понять не могу (
11. tolyan_ekb 80 27.11.12 11:33 Сейчас в теме
Параметры передаваемые в запрос в консоли, и в коде одинаковы? Может убрать их постепенно и посмотреть есть результат или нет. Если есть возможность пришли код, я в демо ЗУП его посмотрю.
12. hasan-rusel 11 27.11.12 11:42 Сейчас в теме
(11) tolyan_ekb, В тот то и дело, что параметры разные, в коде массив, а в консоли от руки писал...
Вот как раз пытаюсь по 1 убираю значения из массива, но эт не то конечно...
14. hasan-rusel 11 27.11.12 11:50 Сейчас в теме
(11) tolyan_ekb, Полностью код и отчет из консоли:
http://files.mail.ru/BP509L
13. megaster 49 27.11.12 11:45 Сейчас в теме
Может дело в том что в качестве параметра передаешь ФизЛицо:

Сотрудник = ФизЛицо;

, в запросе используется Сотрудник
ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Сотрудник = &Сотрудник
15. hasan-rusel 11 27.11.12 11:52 Сейчас в теме
(13) megaster, Я конечно не уверен. но какая разница ?!
16. megaster 49 27.11.12 11:59 Сейчас в теме
(15) Физлицо имеет тип "Справочник.ФизическиеЛица"
а сотрудник имеет тип "Справочник.Сотрудники"
Поэтому и результат запроса пустой
18. megaster 49 27.11.12 12:04 Сейчас в теме
(16) у тебя Физлицо где-то в форме отчета? Тип какой?

Либо менять запрос
И ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Физлицо = &Сотрудник
17. RocKeR_13 1382 27.11.12 12:01 Сейчас в теме
(15) hasan-rusel, ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Сотрудник какой тип значения имеет? И какой тип значения имеет переменная Физлицо? Я думаю, что в (13) тебе намекают, что если Физлицо - СправочникСсылка.ФизическиеЛица, а ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Сотрудник - СправочникСсылка.СотрудникиОрганизации, то естественно, условие не сработает
21. hasan-rusel 11 27.11.12 12:26 Сейчас в теме
(17) RocKeR_13, (18) megaster, Поменял в запросе условие
абельУчетаРабочегоВремениОтработанноеВремя.Ссылка.Проведен = ИСТИНА
	               |		И ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Ссылка.Организация = &Организация
	               |		И ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Ссылка.ПериодРегистрации МЕЖДУ &НачПериода И &КонПериода
	               |		И ИскраТабельУчетаРабочегоВремениОтработанноеВремя.ФизЛицо = &ФизЛицо) КАК ВложенныйЗапрос";
	
	Запрос.УстановитьПараметр("Болезнь", МассивБольничные);
	Запрос.УстановитьПараметр("Выходные", МассивВыходныеИПраздничные);
	Запрос.УстановитьПараметр("Командировки", МассивКомандировка);
	Запрос.УстановитьПараметр("КонПериода", КонецДня(КонПериода));
	Запрос.УстановитьПараметр("НачПериода", НачалоДня(НачПериода));
	Запрос.УстановитьПараметр("Организация", Организация);
	Запрос.УстановитьПараметр("Отпуск", МассивОтпуск);
	Запрос.УстановитьПараметр("Прогул", МассивПрогул);
	Запрос.УстановитьПараметр("ПрочиеНеявки", МассивПрочие);
	Запрос.УстановитьПараметр("УчебныйОтпуск", МассивУчебныйОтпуск);
	Запрос.УстановитьПараметр("Явки", МассивЯвки);
	Запрос.УстановитьПараметр("ФизЛицо", ФизЛицо);
	
Показать



Без изменений :(
19. tolyan_ekb 80 27.11.12 12:18 Сейчас в теме
Попробуй вместо массивов передать списки занчений
RocKeR_13; +1 Ответить
20. RocKeR_13 1382 27.11.12 12:25 Сейчас в теме
(19) tolyan_ekb, о, кстати, верное решение! Что-то сам не обратил внимание: если пишешь "В", то это аналогично типу сравнения в отборе "В списке", то есть справа у тебя должны быть не массивы, а списки значений
22. tolyan_ekb 80 27.11.12 12:27 Сейчас в теме
(20) RocKeR_13, похоже дело не в этом. Массив тоже можно. Хочется вариант с типом поля ФизЛицо проверить.
24. hasan-rusel 11 27.11.12 12:37 Сейчас в теме
(22) tolyan_ekb, Кстати похоже дело действительно в этом, т.к. измененный запрос под ФизЛицо в консоли не отрабатывается (

Как изменить параметр под Сотрудник ?! раз изменения под ФизЛицо не прокатило...

А условие Сотрудник = ФизЛицо; я делал, т.к. в модуле в другиз запросах используется именно ФизЛицо
25. tolyan_ekb 80 27.11.12 12:40 Сейчас в теме
(24) hasan-rusel, напиши какой тип поля ФизЛицо у тебя на поле в отчете
27. hasan-rusel 11 27.11.12 12:59 Сейчас в теме
(25) tolyan_ekb,



События:

Процедура СотрудникПриИзменении(Элемент)
	
	Физлицо = Сотрудник.Физлицо;
	
КонецПроцедуры

Процедура ФизлицоНачалоВыбора(Элемент, СтандартнаяОбработка)
	
	ГоловнаяОрганизации = ОбщегоНазначения.ГоловнаяОрганизация(ОрганизацияФизлица);
//	ПроцедурыУправленияПерсоналомПереопределяемый.ОткрытьФормуВыбораСотрудникаОрганизации(Элемент, ЭтотОбъект, Истина, , ГоловнаяОрганизации, 1, СтандартнаяОбработка, Элемент.Значение);

КонецПроцедуры

Процедура ФизлицоАвтоПодборТекста(Элемент, Текст, ТекстАвтоПодбора, СтандартнаяОбработка)
	
	ТекстАвтоПодбора = ПроцедурыУправленияПерсоналом.ПодобратьФИОРаботникаКандидата(СтандартнаяОбработка, "РаботникиОрганизации", Текст, ОрганизацияФизлица);

КонецПроцедуры

Процедура ФизлицоОкончаниеВводаТекста(Элемент, Текст, Значение, СтандартнаяОбработка)
	
	Значение = ПроцедурыУправленияПерсоналом.ПодобратьСписокРаботниковКандидатов(СтандартнаяОбработка, "РаботникиОрганизации", Текст, Элемент.Значение, ОрганизацияФизлица);

КонецПроцедуры
Показать
23. hasan-rusel 11 27.11.12 12:28 Сейчас в теме
(19) tolyan_ekb, (20) RocKeR_13, Парни, я в 1с не силен.
Это в самомо начале вместо массивов ?!
Если можно кодом...
26. RocKeR_13 1382 27.11.12 12:42 Сейчас в теме
(23) hasan-rusel, да, замени
Новый Массив
на
Новый СписокЗначений
, а заполняются списки также. Плюс да, с физлицом там посмотри получше
28. M.Shalimov 206 27.11.12 13:03 Сейчас в теме
Нет разницы, что передавать в "В()", массив тоже хорошо проходит.
Прикрепляю консоль запросов, которой сам пользуюсь. В ней можно в качестве параметра передать массив.
Прогоните запрос через эту консоль с параметрами аналогичными запросу из отчета.

99% что отчет не взлетит, дальше поочередно убирайте параметры и ищите где ошибка.
Прикрепленные файлы:
Консоль_запросов_Dmitro_Andrey82.epf
hasan-rusel; +1 Ответить
29. RocKeR_13 1382 27.11.12 13:04 Сейчас в теме
(28) M.Shalimov, мда, опростоволосился)))) Уж и сам проверил)
30. M.Shalimov 206 27.11.12 13:06 Сейчас в теме
(29) RocKeR_13, Всего и не запомнишь;)
В отборе нельзя указывать в качестве значения "в списке" массив, вот там-то и нужно создавать СЗ.
31. hasan-rusel 11 27.11.12 13:07 Сейчас в теме
32. M.Shalimov 206 27.11.12 13:07 Сейчас в теме
(31) hasan-rusel, Отпишитесь о результате, интересно.
33. hasan-rusel 11 27.11.12 13:38 Сейчас в теме
(32) M.Shalimov, Похоже ошибка в параметре
Запрос.УстановитьПараметр("Сотрудник", Сотрудник);

Когда было условие Сотрудник = ФизЛицо было все норм, убрал это условие и
{ВнешнийОтчет.УнифицированнаяФормаТ54а.МодульОбъекта(2682,41)}: Переменная не определена (Сотрудник)
	Запрос.УстановитьПараметр("Сотрудник", <<?>>Сотрудник); (Проверка: Толстый клиент (обычное приложение))

Как исправить ?!
34. M.Shalimov 206 27.11.12 13:41 Сейчас в теме
(33) hasan-rusel, В запросе остался параметр "Сотрудник"?
Если да, тогда вам нужно перед установкой параметра его определить (Сотрудник = что-то). Если нет, просто за комментируйте эту строку.
35. hasan-rusel 11 27.11.12 13:48 Сейчас в теме
(34) M.Shalimov, Да в запросе есть параметр Сотрудник
	И ИскраТабельУчетаРабочегоВремениОтработанноеВремя.Сотрудник = &Сотрудник) КАК ВложенныйЗапрос";


Вот в этом и вопрос, как бы его определить, если условием
Сотрудник = ФизЛицо;

не работает...
36. M.Shalimov 206 27.11.12 13:52 Сейчас в теме
(35) hasan-rusel,
1. ИскраТабельУчетаРабочегоВремени.ОтработанноеВремя.Сотрудник, какой тип значения у этого реквизита (В конфигураторе в свойствах можно посмотреть).
2. Отчет формируется по одному сотруднику или нескольким?
37. hasan-rusel 11 27.11.12 13:58 Сейчас в теме
(36) M.Shalimov,
1) СправочникСсылка.СотрудникиОрганизаций
2) Как по 1, так и по всем сразу.
38. M.Shalimov 206 27.11.12 14:16 Сейчас в теме
(37) hasan-rusel, Тогда в чем проблема с параметром "Сотрудник"?
Разместите на форме реквизит, назовите его "Сотрудник", тип значения СправочникСсылка.СотрудникиОрганизаций и уберите строку "Сотрудник = ФизЛицо".
Если формировать по всем, то можно попробовать из запроса убирать (можно кодом) условие на сотрудника.
39. hasan-rusel 11 27.11.12 14:24 Сейчас в теме
(38) M.Shalimov, В том то и дело, что на форме есть реквизит сотрудник с типом СправочникСсылка.СотрудникиОрганизаций см. пост #27
Вот только
Переменная не определена (Сотрудник)


Быть может из-за этого ?!

Процедура СотрудникПриИзменении(Элемент)
    
    Физлицо = Сотрудник.Физлицо;
    

КонецПроцедуры
41. M.Shalimov 206 27.11.12 14:27 Сейчас в теме
(39) hasan-rusel, В (27) он называется "Работник", судя по надписи.
43. hasan-rusel 11 27.11.12 14:30 Сейчас в теме
(41) M.Shalimov, это просто надпись, справа свойства поля)
42. M.Shalimov 206 27.11.12 14:29 Сейчас в теме
(39) hasan-rusel, Выложите отчет, так будет проще.
44. hasan-rusel 11 27.11.12 14:32 Сейчас в теме
(42) M.Shalimov, кинул в сообщение
40. Оля_ 27.11.12 14:25 Сейчас в теме
На форме Сотрудник заполнен?
45. hasan-rusel 11 27.11.12 14:41 Сейчас в теме
(40) Оля_, (42) M.Shalimov,
Да, при чём только что заметил, что если на форме заполнить поле сотрудник, то все значения "Ошибка чтения значения"
А если не указывать сотрудника, то все норм, есть значения )))
46. M.Shalimov 206 27.11.12 14:45 Сейчас в теме
(45) hasan-rusel, У Вас запрос выполняется в модуле отчета, а Сотрудник - реквизит формы.
Добавьте "сотрудника" в реквизиты отчета и измените путь к данным для реквизита формы.
50. hasan-rusel 11 27.11.12 14:52 Сейчас в теме
(46) M.Shalimov, т.е. что дописать в модуле ?!
У меня моск уже не варит, с работы все уже ушли, я 1 сижу тут (Красноярский край +4 часа по Москве)
55. M.Shalimov 206 27.11.12 15:00 Сейчас в теме
(50) hasan-rusel, Добавьте реквизит "Сотрудник", с соответствующим типом, на форме укажите в качестве данных этот реквизит.
Прикрепленные файлы:
47. wowkos 27.11.12 14:48 Сейчас в теме
(45) hasan-rusel, скинь отчет, тоже посмотрю...
48. tolyan_ekb 80 27.11.12 14:50 Сейчас в теме
В запросе в строке 2696 напиши
Запрос.УстановитьПараметр("ФизЛицо", справочники.СотрудникиОрганизаций.НайтиПоНаименованию(ЭтотОбъект.Физлицо.Наименование));
и пробуй выполнить
49. M.Shalimov 206 27.11.12 14:52 Сейчас в теме
(48) tolyan_ekb, Никогда так не делайте, как минимум у Вас могут быть совместители или однофамильцы.
51. tolyan_ekb 80 27.11.12 14:53 Сейчас в теме
(49) M.Shalimov, пусть напишет, если заработает будем дальше правильный код писать
52. M.Shalimov 206 27.11.12 14:55 Сейчас в теме
(51) tolyan_ekb, Проблема в разных модулях. Сотрудник живет на форме, а запрос выполняется в модуле объекта. Я уже писал в (46).
53. tolyan_ekb 80 27.11.12 14:58 Сейчас в теме
(52) M.Shalimov, я в (48) написал код, где эта "проблема" успешно решена
54. hasan-rusel 11 27.11.12 14:58 Сейчас в теме
(48) tolyan_ekb, точно 2696 ?
Но у меня сам запрос ожидает параметр "Сотрудник"
 (ТабельУчетаРабочегоВремениОтработанноеВремя.Сотрудник = &Сотрудник) КАК ВложенныйЗапрос";)
56. M.Shalimov 206 27.11.12 15:00 Сейчас в теме
(54) hasan-rusel, Он поймает реквизит отчета.
Только строчку: "Сотрудник = ФизЛицо" уберите.
58. hasan-rusel 11 27.11.12 15:07 Сейчас в теме
(56) M.Shalimov, Да, всё заработало !!!!!!!!!!!
СПАСИБО !!!!!!!!!
60. M.Shalimov 206 27.11.12 15:14 Сейчас в теме
56. tolyan_ekb 80 27.11.12 15:00 Сейчас в теме
(54) hasan-rusel, почему-то я не вижу что пишется в квадратных скобках. Видимо код маленький и браузер некорректно тэг код отображает.
59. tolyan_ekb 80 27.11.12 15:08 Сейчас в теме
(54) hasan-rusel, какой сотрудник? Вот же код
Запрос.УстановитьПараметр("ПрочиеНеявки", МассивПрочие);
Запрос.УстановитьПараметр("УчебныйОтпуск", МассивУчебныйОтпуск);
Запрос.УстановитьПараметр("Явки", МассивЯвки);
Запрос.УстановитьПараметр("ФизЛицо", справочники.СотрудникиОрганизаций.НайтиПоРеквизиту("ФизЛицо",ЭтотОбъект.Физлицо));//ФизЛицо);
и т.д.
61. tolyan_ekb 80 27.11.12 15:17 Сейчас в теме
Хорошо, что все получилось. Удачи!
Оставьте свое сообщение

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