Задача настолько кажется решенной, что в infostart я не нашел, на кого-бы сослаться.
Может, плохо искал, поэтому заранее извиняюсь, если пропустил кого-то из Авторов.
Итак, подробнее об отличиях.
1. Наглядность.
- нет стрелок и стрелочек, очень "скользких" списков. Дни, месяцы и линейка из 7 лет-
все на экране.
- выведены номер месяца и количество дней, начала кварталов "подкрашены".
- предусмотрены два стиля отображения: "классический" и дополнительный, можно выбирать;
2. Скорость выбора (можно регулировать -1, 2 щелчка или по кн."Ок").
- в пределах месяца - 1 щелчок мыши;
- в пределах года - 2 щелчка мыши;
- в интервале 7 лет - 3 щелчка. Далее добавляется 1 щелчок на 1-3 года.
год можно ввести и с клавиатуры.
3. Раширенный функционал.
- выбирается не только Дата, но и Время (если необходимо);
- двумя кнопками можно установить как текущую дату, так и любую из "стандартных" дат:
от начала-конца недели до начала-конца года
- двумя кнопками можно установить как текущуее время, так и любой из "стандартных"
моментов времени: от начала-конца суток до начала-конца минуты;
- есть кнопка перебора даты-времени: текущее, выбранное, предудщее выбранное, исходное;
- предусмотрена печать календаря в 4 вариантах: выбранный год, предыдущий-выбранный
годы, выбранный-следующий годы, предыдущий-выбранный-следующий годы.
(это не сделано, будет потребность - добавлю).
О конкретном исполнении.
Реализовано все на двух независимых процедурах: "ВыборДаты_" и "ПечатьКалендаря_",
и процедуре "ПриОткрытии" (типа диспетчера, работающего с реквизитами Формы
"ДатаВходВыход","КоличествоЩелчков" и "ПечататьКалендарь"). Процедуры используют
свои внутренние переменные; общих переменных не наблюдается. При задании реквизита
ПечататьКалендарь>0 печать производиться без открытия формы.
Добавлена (может кому понравиться) в общем не относящаяся к делу функция "Колл_Выб".
Это универсальная функция выбора строки любой общей Коллекции.