Вопрос по группировкам

1. AR18 16.04.19 15:35 Сейчас в теме
Друзья есть отчет который выводит список Сотрудников
Все работает как надо, но руководство попросило добавить фильтвов (во вложении файл)
Слево Фильтр - папки в Справочнике Сотрудники
Справо фильтр - Это Подпапки , Папки АУП из Справочника Сотрудники
В общем не могу сделать так что бы выводился отчет Ерархией в зависимости какая галка Нажата.
Спасибо



Процедура ВыделитьВсеКолонки(Парам) 
	Для н=1 По СписГрупп.РазмерСписка() Цикл 
		СписГрупп.Пометка(н,Парам);
	КонецЦикла;
КонецПроцедуры  

Процедура ВыделитьВсеКолонки1(Парам) 
	Для н=1 По СписАУП.РазмерСписка() Цикл 
		СписАУП.Пометка(н,Парам);
	КонецЦикла;
КонецПроцедуры

Процедура Видимость() 
	
	Если АктивацияФильтра =1 Тогда 
		Форма.СписАУП.Видимость(1);
		Форма.СписГрупп.Видимость(1);
	Иначе
		Форма.СписАУП.Видимость(0);
		Форма.СписГрупп.Видимость(0);
	КонецЕсли;
КонецПроцедуры

Процедура Сформировать()
	Перем Запрос, ТекстЗапроса;
	
	//Создание объекта типа Запрос
	
	Запрос = СоздатьОбъект("Запрос");
	ТекстЗапроса = 
	"//{{ЗАПРОС(Т51)
	//|Период с ДатаНач по ДатаКон;
	|Сотрудник		= Справочник.Сотрудники.ТекущийЭлемент; 
	|Основной       = Справочник.Сотрудники.Основной;                                                                                                                      
	|НеРаботает	    = Справочник.Сотрудники.НеРаботает;
	|ДатаУвольнения	= Справочник.Сотрудники.ДатаУвольнения;
	|ДатаПриема		= Справочник.Сотрудники.ДатаПриема;
	|Действует      = Справочник.Сотрудники.Действует;
	|НеСотрудник    = Справочник.Сотрудники.НеСотрудник;
	|ФИОВЗУП        = Справочник.Сотрудники.ФИОВЗУП;
	|Группировка Сотрудник; 
	|Группировка ФИОВЗУП; 
	|Группировка ДатаПриема;
	|Группировка ДатаУвольнения;
	|Условие (ДатаПриема < ДатаКон);
    |Условие (НеСотрудник = 0);
	|Условие (НеРаботает = 0);
	|";                                                                                                                                                                                                                                                                        
	Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
		Возврат;
	КонецЕсли;
	
	Таблица = СоздатьОбъект("Таблица");
	Таблица.ИсходнаяТаблица("СписокСотрудников");
	Таблица.ВывестиСекцию("Шапка");
	
	ТабЗначСотрудников = СоздатьОбъект("ТаблицаЗначений");
	Запрос.Выгрузить(ТабЗначСотрудников,0,0);            
	ТабЗначСотрудников.Сортировать("Сотрудник+");
	
	ИтогСотрудников = 0;
	НомерСтроки = 1;
	
	ТабЗначСотрудников.ВыбратьСтроки();
	
	ФИОВЗУПСтарое   = "";
	Пока ТабЗначСотрудников.ПолучитьСтроку() = 1 Цикл
		
		Если  ((ПустоеЗначение(ТабЗначСотрудников.ДатаУвольнения) = 1)
		или ((ТабЗначСотрудников.ДатаУвольнения <= ДатаКон)
		и(ПустоеЗначение(ТабЗначСотрудников.ДатаУвольнения) = 0))) Тогда
			
			Сотрудник = ТабЗначСотрудников.Сотрудник;
			ФИОВЗУП   = ТабЗначСотрудников.ФИОВЗУП;
			ФИОВЗУП   = ?(ПустоеЗначение(ФИОВЗУП)=1,Сотрудник,ФИОВЗУП);
			Если ПустоеЗначение(ФИОВЗУП) = 0 Тогда	
				
			КонецЕсли;
			ДатаПриема = ТабЗначСотрудников.ДатаПриема;
			Если ФИОВЗУПСтарое = ФИОВЗУП Тогда
				Таблица.ВывестиСекцию("Строка2");
				
			Иначе
				Таблица.ВывестиСекцию("Строка1"); 
				ИтогСотрудников = ИтогСотрудников+1;
				НомерСтроки = НомерСтроки+1;
			КонецЕсли;
			ФИОВЗУПСтарое   = ФИОВЗУП;
		КонецЕсли;
	КонецЦикла;
	
 
	Таблица.ВывестиСекцию("Итого");
	Таблица.ТолькоПросмотр(1);
	Таблица.Опции(0,0,0,0,"_ПАРАМЕТРЫ_ПЕЧАТИ_СписокСотрудников_");
	Таблица.ПараметрыСтраницы(,,,,,,,,,,1,);
	Таблица.Показать("СписокСотрудников");	
	
КонецПроцедуры             

ДатаКон = РабочаяДата();
Форма.СписАУП.Видимость(0);
Форма.СписГрупп.Видимость(0);
СписГрупп.ДобавитьЗначение("АУП","АУП");
СписГрупп.ДобавитьЗначение("МЕДСЕСТРЫ","МЕДСЕСТРЫ");
СписГрупп.ДобавитьЗначение("СПЕЦИАЛИСТЫ","СПЕЦИАЛИСТЫ");  
СписГрупп.ДобавитьЗначение("ТЕХПЕРСОНАЛ","ТЕХПЕРСОНАЛ");

СписАУП.ДобавитьЗначение("Кассиры","Кассиры");
СписАУП.ДобавитьЗначение("Контакт-центр","Контакт-центр");
СписАУП.ДобавитьЗначение("ОтделИТ","Отдел ИТ");  
СписАУП.ДобавитьЗначение("ОтделПерсонола","Отдел персонола"); 
СписАУП.ДобавитьЗначение("ОтделПродаж","Отдел продаж");
СписАУП.ДобавитьЗначение("Пиар","Пиар");
СписАУП.ДобавитьЗначение("Рецепция","Рецепция");  
СписАУП.ДобавитьЗначение("Руководство","Руководство");
СписАУП.ДобавитьЗначение("ФинансовыйОтдел","Финансовый отдел");  
СписАУП.ДобавитьЗначение("ЮридическийОтдел","Юридический отдел");
Показать
Прикрепленные файлы:
По теме из базы знаний
Найденные решения
3. siens 17.04.19 08:13 Сейчас в теме
Все очень просто. Перед текстом запроса сформируйте новый список значений из отмеченных папок.
И тогда в запросе добавьте:
Условие (Сотрудник В СписокОтмеченныхЗначений);
Остальные ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
3. siens 17.04.19 08:13 Сейчас в теме
Все очень просто. Перед текстом запроса сформируйте новый список значений из отмеченных папок.
И тогда в запросе добавьте:
Условие (Сотрудник В СписокОтмеченныхЗначений);
2. Oldsad 17.04.19 04:21 Сейчас в теме
а в чем проблема то? добавь условия фильтра до вывода секции в цикле
Оставьте свое сообщение

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