|   |   | 
| 
 | Работа с производственным календарем | ☑ | ||
|---|---|---|---|---|
| 0
    
        shock3r 27.12.12✎ 11:46 | 
        Добрый день, в отчет требуется реализовать надпись С x по y, где x=датадок, y = датадок + 3 (исключая выходные и праздники)...
  Подскажите как функцию, которая возвращает является ли дата - выходным по производственному календарю | |||
| 1
    
        Дядя Вова 27.12.12✎ 11:52 | 
        // Функция возвращает дату отстоящую на заданное количество рабочих дней от начальной в соответствии с
  //регламентированным производственным календарем // //Параметры: // ДатаНач - начальная дата // ЧислоДней - количество рабочих дней, на которое искомая дата должна отстоять от начальной // Функция ОпределитьДату(ДатаНач, ЧислоДней) Экспорт Запрос = Новый Запрос; Запрос.УстановитьПараметр("ДатаНач", ДатаНач); Запрос.УстановитьПараметр("ЧислоДней", ЧислоДней); Запрос.УстановитьПараметр("РабочийДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Рабочий); Запрос.УстановитьПараметр("ПредпраздничныйДень", Перечисления.ВидыДнейПроизводственногоКалендаря.Предпраздничный); Если ЧислоДней > 0 Тогда Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " + ЧислоДней + " | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря > &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = &ПредпраздничныйДень) |"; Иначе ЧислоДней = -ЧислоДней; Запрос.Текст = " |ВЫБРАТЬ РАЗРЕШЕННЫЕ ПЕРВЫЕ " + ЧислоДней + " | РегламентированныйПроизводственныйКалендарь.ДатаКалендаря |ИЗ | РегистрСведений.РегламентированныйПроизводственныйКалендарь КАК РегламентированныйПроизводственныйКалендарь |ГДЕ РегламентированныйПроизводственныйКалендарь.ДатаКалендаря < &ДатаНач | И (РегламентированныйПроизводственныйКалендарь.ВидДня = &РабочийДень | ИЛИ РегламентированныйПроизводственныйКалендарь.ВидДня = &ПредпраздничныйДень) |УПОРЯДОЧИТЬ ПО | ДатаКалендаря УБЫВ |"; КонецЕсли; Выборка = Запрос.Выполнить().Выбрать(); Если Выборка.Количество() = ЧислоДней Тогда Пока Выборка.Следующий() Цикл ТекДата = Выборка.ДатаКалендаря; КонецЦикла; Возврат ТекДата; КонецЕсли; Возврат Неопределено; КонецФункции | |||
| 2
    
        shock3r 27.12.12✎ 12:05 | 
        (1) Спасибо Дядя Вова))     | |||
| 3
    
        shock3r 27.12.12✎ 17:39 | 
        Если Выборка.Количество() > 0 Тогда
  Пока Выборка.Следующий() Цикл ТекДата = Выборка.ДатаКалендаря; КонецЦикла; Возврат ТекДата; КонецЕсли; | 
 
 | Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |