8.х Как в отчете узнать кол-во вых/раб дней?

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем pathetique, 6 май 2008.

  1. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Здравствуйте! Помогите плиз с отчетом :unsure:
    8.1 УПП
    В общем загвоздка такая: в документе "Невыходы в организациях" по каждому рабтнику указаны периоды когда он отсутствовал. На этом основании нужно посчитать сколько рабочих дней(в процентах)в данном месяце человек пропустил.
    Объясните, плиз, каким образом можно посчитать 1) количество раб. дней выбранном в месяце 2)узнать является ли выбранная дата рабочим\выходным днем? Спасибо за внимание B)
  2. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Посмотри на спр. ГрафикРаботы. У меня его кто-то заполняет, так, что на каждый месяц видно, сколько в месяце рабочих дней - на каждую дату указано кол-во рабочих часов.
  3. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    Спасиб., есть такой справочник. Тока вот не совсем понятно как он работает... Как мне, к примеру, составить запрос чтобы он выводил из него перечень дат с указанием часов в день( то есть нижнюю таблицу "Календарь" на форме элемента справочника )???
  4. lazy
    Offline

    lazy Модераторы Команда форума Модератор

    Регистрация:
    1 сен 2007
    Сообщения:
    2.127
    Симпатии:
    4
    Баллы:
    29
    Что то вот такое, разжовывать сейчас некогда. Знаю, что запрос в цикле - великое зло, но под рукой другого примера нету.

    Код:
    	Запрос = Новый Запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |	НАЧАЛОПЕРИОДА(ГрафикиРаботыПоСменам.Дата, МЕСЯЦ) КАК Поле1,
    |	КОЛИЧЕСТВО(ГрафикиРаботыПоСменам.Часы) КАК ДнейПоГрафику
    |ИЗ
    |	РегистрСведений.ГрафикиРаботыПоСменам КАК ГрафикиРаботыПоСменам
    |ГДЕ
    |	ГрафикиРаботыПоСменам.ГрафикРаботы = &Смена
    |	И ГрафикиРаботыПоСменам.Часы > 0
    |	И ГрафикиРаботыПоСменам.Дата МЕЖДУ &ДатаНач И &ДатаКон
    |
    |СГРУППИРОВАТЬ ПО
    |	НАЧАЛОПЕРИОДА(ГрафикиРаботыПоСменам.Дата, МЕСЯЦ)";
    
    Для каждого стр из Табличка Цикл
    Состояние("Обрабатываем месяц "+стр.Период);
    Запрос.УстановитьПараметр("Смена",ПолучитьСмену(ФизЛицо,Стр.Период));
    Запрос.УстановитьПараметр("ДатаНач",НачалоДня(НачалоМесяца(Стр.Период)));
    Запрос.УстановитьПараметр("ДатаКон",КонецДня(КонецМесяца(Стр.Период)));
    //Сообщить(" "+стр.Период);
    выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    
    стр.КоличествоДнейПоГрафику = Выборка.ДнейПоГрафику;
    КонецЦикла;
    
    
  5. TopicStarter Overlay
    pathetique
    Offline

    pathetique Опытный в 1С

    Регистрация:
    21 янв 2008
    Сообщения:
    105
    Симпатии:
    0
    Баллы:
    26
    ух! спасибо! бум разбираться!

Поделиться этой страницей