Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Количества дней между датами
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
mavrik
Помогите чайнику пожалуйста. Вот процедура которая считает количество рабочих дней.

Процедура РасчетКоличестваДней() 
    Если (ДатаДок = 0) Или (ДатаВиписки = 0) Тогда
        Сообщить("Ви невказали дату!");
    Иначе
        Если (ДатаДок<>0) И (ДатаВиписки<>0) Тогда             
            РабДата = 0;
            Пока ДатаДок <= ДатаВиписки Цикл
                Если НомерДняНедели(ДатаДок) <= 5 Тогда // это не выходной
                    РабДата=РабДата+1;
                КонецЕсли;
            ДатаДок = ДатаДок + 1;
            КонецЦикла;
        ДатаДок = ТекущаяДата();                             
        КонецЕсли;
    КонецЕсли;
КонецПроцедуры


Вот Внешний отчет. Как мне в внешнем отчете вывести на каждого сотрудника количество рабочих дней?

Процедура Сформировать()     
    Если ПустоеЗначение(ДатаДок) = 1 Тогда
        Предупреждение("Ви невказали дату!");
        Возврат;
    КонецЕсли;      
    
    Запрос = СоздатьОбъект("Запрос");
    ТекстЗапроса =
    "//{{Запрос(Сформировать)
    |Период с ДатаДок по ДатаВиписки;    
    |ТекущийДокумент = Документ.КадровийНаказВП.ТекущийДокумент;
    |Працівник = Документ.КадровийНаказВП.Працівник;    
    |НомерДок = Документ.КадровийНаказВП.НомерДок;
    |ДатаДок = Документ.КадровийНаказВП.ДатаДок;
    |ДатаВиписки = Документ.КадровийНаказВП.ДатаВиписки;
    |Группировка Працівник;
    |"//}}Запрос
;
    
    Если Запрос.Выполнить(ТекстЗапроса) = 0 Тогда
    Предупреждение("Запрос не работает");
    КонецЕсли;    

    Таб = СоздатьОбъект("Таблица");
    Таб.ИсходнаяТаблица("Таблица");
    Таб.ВывестиСекцию("Шапка");  
    Пока Запрос.Группировка("Працівник") = 1 Цикл
        Таб.ВывестиСекцию("Основа");
    КонецЦикла;
    
    Таб.Опции(0,0,0,0,,);
    Таб.ТолькоПросмотр(1);
    Таб.Показать();
КонецПроцедуры
DartRomanius
Я конечно извиняюсь, а вопрос то в чем? smile.gif
Batchir
На секции "Основа" Нужно добавить параметр, например КоличествоРабочихДней
Перед циклом
Пока Запрос.Группировка("Працівник") = 1 Цикл 
    Таб.ВывестиСекцию("Основа");
КонецЦикла;

необходимо вызвать функцию РасчетКоличестваДней() и передать результат функции переменной КоличествоРабочихДней
mavrik
Как мне в внешнем отчете вывести на каждого сотрудника количество рабочих дней между двумя датами (ДатаДок и ДатаВиписки)

Цитата(Batchir @ 04.10.11, 11:28) необходимо зарегистрироваться для просмотра ссылки
На секции "Основа" Нужно добавить параметр, например КоличествоРабочихДней
Перед циклом
Пока Запрос.Группировка("Працівник") = 1 Цикл 
    Таб.ВывестиСекцию("Основа");
КонецЦикла;

необходимо вызвать функцию РасчетКоличестваДней() и передать результат функции переменной КоличествоРабочихДней

Подскажи как это написать я вид только учусь
Batchir
Цитата(mavrik @ 04.10.11, 12:07) необходимо зарегистрироваться для просмотра ссылки
Подскажи как это написать я вид только учусь

Именно поэтому я и ответил намеком а не готовым текстом.
Vofka
mavrik, а ты чё растыкался? Тема закрыта!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.