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

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

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


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

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

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