Как добавить календарь к планировщику и настроить автоматическое открытие форм при старте 1С

Программист 1С v8.3 (Управляемые формы) IT и автоматизация бизнеса
← На главную

При разработке интерфейсов для задач планирования часто возникает необходимость визуально дополнить основной планировщик компактным календарем. Это не только улучшает эстетический вид формы, но и значительно повышает удобство навигации для пользователя. В данной статье мы подробно разберем, как интегрировать календарь в управляемую форму, как правильно управлять датами и как реализовать вывод приветственной заставки или картинки при запуске приложения.

Добавление поля календаря на управляемую форму

Начнем с самого простого, но важного этапа — вывода визуального элемента календаря. В 1С:Предприятие 8.3 для этого не требуется создавать сложные графические объекты, так как платформа предоставляет готовый вид элемента формы.

Разберем этот процесс по шагам:

  1. Откроем редактор управляемой формы в конфигураторе.
  2. Перейдем на закладку Реквизиты и создадим новый реквизит. Назовем его, например, ДатаКалендаря.
  3. В поле Тип для этого реквизита выберем Дата.
  4. Перетащим созданный реквизит в дерево элементов формы (левая верхняя часть редактора).
  5. Теперь самое главное: выделим созданный элемент формы и в окне Свойства найдем поле Вид. По умолчанию там установлено «Поле ввода», нам же необходимо выбрать значение Поле календаря.

После этого на форме появится полноценный календарь. Если мы хотим, чтобы календарь отображал не один месяц, а целую сетку (например, 2х2 или 3х1), нам достаточно просто растянуть элемент формы в конфигураторе по горизонтали или вертикали. Платформа автоматически отрисует дополнительные месяцы, если для них будет достаточно места.

Программная установка даты и переключение месяцев

Для того чтобы календарь при открытии показывал актуальные данные, нам необходимо инициализировать его значение. Проанализируем, как это сделать правильно в контексте сервера.

Рассмотрим пример кода в обработчике ПриСозданииНаСервере. Мы можем установить текущую дату или рассчитать начало следующего месяца. Хотя на форумах иногда встречаются предложения использовать математические расчеты через количество секунд (86400), мы рекомендуем использовать встроенные функции 1С, которые корректно обрабатывают високосные годы и разное количество дней в месяцах.

Посмотрим на пример установки дат:


&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
    
    // Устанавливаем текущую дату для календаря
    Объект.ДатаКалендаря = ТекущаяДата();
    
    // Если нам нужно программно переключиться на следующий месяц:
    // Используем функцию ДобавитьМесяц для надежности
    СледующийМесяц = ДобавитьМесяц(ТекущаяДата(), 1);
    Объект.ДатаКалендаря = НачалоМесяца(СледующийМесяц);
    
КонецПроцедуры

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

Синхронизация календаря с планировщиком

Просто видеть календарь рядом с планировщиком — это красиво, но малофункционально. Разберем ситуацию, когда нам нужно, чтобы при клике на дату в календаре наш основной Планировщик автоматически перематывался на выбранный день.

Для этого выполним следующие действия:

  1. Выделим элемент формы «Поле календаря» и создадим для него событие ПриИзменении.
  2. В обработчике события пропишем связь с планировщиком.

Пример кода синхронизации:


&НаКлиенте
Процедура ДатаКалендаряПриИзменении(Элемент)
    
    // Предположим, наш планировщик на форме называется "МойПланировщик"
    // Мы хотим, чтобы при выборе даты календарь стал точкой начала отображения
    
    Элементы.МойПланировщик.ТекущийПериодОтображения = Объект.ДатаКалендаря;
    
КонецПроцедуры

Также важно помнить о свойстве ВыделенныеДаты. Если вам нужно программно подсветить определенные дни (например, праздники) в вашем календаре, вы можете добавлять их в коллекцию ВыделенныеДаты этого элемента формы.

Вывод картинки или заставки при запуске приложения

Часто возникает задача показать пользователю красивую картинку или информационное окно при старте системы. Рассмотрим два способа реализации этой задачи.

Способ 1: Статическая заставка конфигурации

Если вам нужно просто показать логотип компании во время загрузки базы (пока платформа проверяет лицензии и загружает метаданные), выполните следующее:

  1. В дереве конфигурации нажмите правой кнопкой на корень (имя вашей базы).
  2. Выберите пункт Свойства.
  3. Найдите свойство Заставка.
  4. Загрузите туда картинку из общих картинок. Система сама будет показывать её при каждом запуске.

Способ 2: Программное открытие формы (Splash Screen)

Если же вы хотите открыть полноценную управляемую форму (например, с динамическим текстом или кнопками), нам придется обратиться к модулю управляемого приложения. Выясним, как это реализовать через метод ОткрытьФорму.

В модуле управляемого приложения найдем процедуру ПриНачалеРаботыСистемы. Важно помнить, что это клиентский контекст, поэтому мы можем напрямую вызывать открытие окон.


&НаКлиенте
Процедура ПриНачалеРаботыСистемы()
    
    // Открываем общую форму с картинкой
    // "ОбщаяФорма.Заставка" - имя вашей формы в конфигураторе
    ОткрытьФорму("ОбщаяФорма.Заставка");
    
КонецПроцедуры

Если вы хотите, чтобы эта форма автоматически закрылась через несколько секунд, используйте механизм ПодключитьОбработчикОжидания внутри самой открываемой формы. Для гибкой настройки открытия нужных окон и ссылок при старте без изменения кода конфигурации можно использовать инструмент для автоматического открытия окон при запуске 1С.

Настройка рабочей области начальной страницы

Рассмотрим еще один профессиональный подход. Вместо того чтобы принудительно открывать формы кодом, можно настроить Рабочую область начальной страницы. Это специальный механизм 1С 8.3, который определяет, что увидит пользователь сразу после авторизации.

Для настройки выполните следующее:

  1. В конфигураторе нажмите правой кнопкой на корень конфигурации и выберите Открыть рабочую область начальной страницы.
  2. В появившемся окне вы можете выбрать, какие формы будут отображаться (например, форма с вашим планировщиком и календарем).
  3. Вы можете настроить шаблон (одна колонка, две колонки разной ширины и т.д.).

Этот метод считается более «правильным», так как он органично вписывается в интерфейс «Такси» и позволяет пользователю самому настраивать состав начальной страницы, если у него есть соответствующие права. Если требуется снять стандартные ограничения и вывести на рабочий стол любые формы конфигурации, подойдёт расширение для настройки начальной страницы 1С.

Дополнительные возможности оформления Планировщика

Чтобы ваш планировщик выглядел законченным, проанализируем возможности настройки самого объекта Планировщик:

Таким образом, комбинируя стандартный элемент Поле календаря, программные методы управления датами и настройки начальной страницы, мы получаем функциональный и визуально приятный инструмент для работы с расписанием в 1С.

← На главную