Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Процедура Дней()
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 7.7
Vofka
Привет!

Создал я календарь Пятидневка. Добавил дни (не знаю почему).



Теперь делаю:



Процедура Сформировать()
    
    Календарь = СоздатьОбъект("Календарь.Пятидневка");
    
    КД = ТекущаяДата();
    НД = ТекущаяДата()-7;
    
    Дни = Календарь.Дней(НД, КД);
    
    Сообщить(Дни);

КонецПроцедуры




Воводит 0. Должно ж выводить 7?

Это всё к чему я веду. Просто есть один отчет (не мной деланный) АнализЗадолженности. Он с этого года перестал работать. За 2008 показывает данные, а за 2009 не показывает ниче. У меня есть подозрение, что проблема связана с календарём. В отчете есть такая строка:



РабДней=КалендарьДней.Дней(Дата2-Дни,Дата2);

Исходя из описания функции Дней - РабДней должно равняться (в данном случае) 20, т.к. Дни=20. Так ведь? Но РабДней = 0. Смотрю отчет за 2008 год - РабДней принимает нормальное значени (и отчет работает).

В чем проблема?

И вообще. Для чего нужны календари? Что такое (зачем) длина дня?
Batchir
Не надо использовать календари, можно воспользоваться функцией




Функция ПолучитьКоличествоРабочихДней(ДатаНач,ДатаКон)
   ТекДата = ДатаНач;
   КоличествоДней = 0;
   Если ДатаНач > ДатаКон Тогда
      Сообщить("не верный ввод дат");
      Возврат 0;
   КонецЕсли;
   Пока ТекДата <= ДатаКон Цикл
      ТекНомер = НомерДняНедели(ТекДата);
      Если (ТекНомер <> 6) И (Текномер <> 7) Тогда
         КоличествоДней = КоличествоДней + 1;
      КонецЕсли;
      ТекДата = ТекДата +1;
   КонецЦикла;
   Возврат КоличествоДней;
КонецФункции
1Cv77
Цитата(Vofka @ 4.2.2009, 18:54) необходимо зарегистрироваться для просмотра ссылки
Это всё к чему я веду. Просто есть один отчет (не мной деланный) АнализЗадолженности. Он с этого года перестал работать. За 2008 показывает данные, а за 2009 не показывает ниче. У меня есть подозрение, что проблема связана с календарём. В отчете есть такая строка:


Зайди Операции->Календари..
Выбери нужный и сделай авто заполнение!!!
Vofka
Batchir, попробую. 32000000.gif

1Cv77, а для чего количество дней указывается? И такой ещё вопрос: почему заполнение делается только на текущий месяц? 49000000.gif
Yurkas
когда будеш нашимать атозаполнение выбери период с начала года до конца года
Vofka
Выбрераю период с 1 января по 31 декабря - всёравно заполняет на месяц
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.