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 29 16.04.19 06:07 Сейчас в теме
(1)
|Группировка Сотрудник без Групп;
а если убрать группировку по сотрудникам?
3. Oldsad 16.04.19 07:14 Сейчас в теме
(1)

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


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

где ТабФИОВЗУП это переменная в ячейке таблицы.
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Ведущий программист 1С
Москва
зарплата от 120 000 руб. до 150 000 руб.
Полный день


Специалист техподдержки 1С
Иркутск
зарплата от 28 000 руб. до 34 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 48 000 руб. до 96 000 руб.
По совместительству

Программист 1С
Ставрополь
зарплата от 40 000 руб. до 60 000 руб.
Полный день