Вывод всех сотрудников

1. AR18 15.04.19 15:55 Сейчас в теме
Друзья помогите в вопросе
надо вывести всех сотрудников на дату
есть маленькая проблема, привожу пример
Сотрудник1
Сотрудник2
Это одно и тоже лицо, только Сотрудник1 проктолог
а сотрудник 2 хирург
и оба они Иванов Иван Иваныч

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

	     Таблица.ВывестиСекцию("Строка");
	КонецЦикла;
Показать



Во вложении 1 рис как надо, 2й рис как выводит
Прикрепленные файлы:
+
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. alxarz 31 16.04.19 06:07 Сейчас в теме
(1)
|Группировка Сотрудник без Групп;
а если убрать группировку по сотрудникам?
+
3. Oldsad 16.04.19 07:14 Сейчас в теме
(1)

добавь поле физлицо, а потом по нему группируй в отчете
+
4. siens 17.04.19 08:05 Сейчас в теме
Откуда 1С узнает, что
"Это одно и тоже лицо"
? Должен быть однозначный группировочный реквизит. Если это например "ФИОВЗУП", то тогда в запросе поставьте его группировку первой:
|Группировка ФИОВЗУП без Групп;
|Группировка Сотрудник без Групп;


И тогда в цикле просто:
ТабФИОВЗУП = ?(СокрЛП(ФИОВЗУП) = ТекФИОВЗУП,"",ФИОВЗУП);
ТекФИОВЗУП = СокрЛП(ФИОВЗУП);

где ТабФИОВЗУП это переменная в ячейке таблицы.
+
Внимание! Тема сдана в архив

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