Какие есть предопределённые обработчики событий в модуле менеджера?
Комментарии (1)
Ответ сгенерирован нейросетью и может содержать ошибки
Предопределённые обработчики событий в модуле менеджера
Модуль менеджера (Module Manager) в 1С — это специальный системный модуль, который управляет жизненным циклом приложения. Он содержит множество предопределённых процедур-обработчиков для различных событий.
Что такое модуль менеджера
Модуль менеджера — это глобальный модуль конфигурации, который выполняется при запуске приложения и содержит основные процедуры инициализации.
Его можно открыть: Конфигурация → Свойства → Модули → Модуль менеджера
Основные предопределённые обработчики
1. ПриСтартеСистемы()
Назначение: Выполняется один раз при первом запуске системы.
Процедура ПриСтартеСистемы()
// Инициализация переменных
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
ИндексПредварительногоЗагружаемыхДанных = 0;
// Проверка версии конфигурации
ТекущаяВерсия = Метаданные.Версия;
ПосконфигурационнаяВерсия = ПолучитьСохранённыеДанные("ПосконфигурационнаяВерсия");
Если ТекущаяВерсия <> ПосконфигурационнаяВерсия Тогда
// Выполнить обновление
ВыполнитьОбновление();
СохранитьДанные("ПосконфигурационнаяВерсия", ТекущаяВерсия);
КонецЕсли;
// Инициализация регламентных заданий
ИнициализироватьРегламентныеЗадания();
КонецПроцедуры
Особенности:
- Выполняется до открытия первого окна
- Может быть использовано для инициализации данных
- Выполняется очень быстро — долгие операции замораживают интерфейс
2. ПриСтартеПолучитьИсключение()
Назначение: Обработка исключений при старте системы.
Процедура ПриСтартеПолучитьИсключение(Исключение, Отказ)
// Обработка ошибок при старте
Попытка
ЗаписатьОшибкуВЖурнал(Исключение);
Исключение
// Если не получилось записать в журнал
СообщениеПользователю("Ошибка при инициализации: " + ОписаниеОшибки());
КонецПопытки;
// Если установить Отказ = Истина, система не запустится
// Отказ = Истина;
КонецПроцедуры
Параметры:
- Исключение — объект исключения
- Отказ — булево значение (Истина = не запускать систему)
3. ПриЗавершенииРаботыСистемы()
Назначение: Выполняется при закрытии приложения.
Процедура ПриЗавершенииРаботыСистемы()
// Сохранение данных при выходе
СохранитьКэш();
СохранитьОтменитьТекущиеОперации();
// Закрытие внешних соединений
Если ВнешнееСоединение <> Неопределено Тогда
ВнешнееСоединение.Закрыть();
КонецЕсли;
// Логирование выхода
ЗаписатьВЖурнал("Система закрыта", ПользователиИнформационнойБазы.ТекущийПользователь());
КонецПроцедуры
Особенности:
- Критическая точка для сохранения данных
- Выполняется синхронно (ждёт завершения)
- Исключения здесь могут помешать корректному завершению
4. ПерейтиНаПолнуюВерсию()
Назначение: Выполняется при переходе с лёгкой версии на полную.
Процедура ПерейтиНаПолнуюВерсию()
// Инициализация для полной версии
УстановитьПривилегированныйРежим(Истина);
// Создание объектов для полной версии
СоздатьДополнительныеРегистры();
СоздатьДополнительныеСправочники();
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
5. ПриПередачеДанныхИБ()
Назначение: Выполняется при синхронизации данных (мобильное приложение, облако).
Процедура ПриПередачеДанныхИБ()
// Синхронизация данных
ОбновитьРегламентныхДанные();
ВычиститьКэш();
КонецПроцедуры
6. ПриЗагрузкеОсновногоШтатногоДоговора()
Назначение: При загрузке основных данных (настройки, справочники).
Процедура ПриЗагрузкеОсновногоШтатногоДоговора()
// Инициализация основных параметров
УстановитьПривилегированныйРежим(Истина);
ПараметрыСистемы = Новый Структура();
ПараметрыСистемы.Вставить("Организация", ПолучитьПервуюОрганизацию());
ПараметрыСистемы.Вставить("ПериодОтчётности", ТекущаяДата());
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
7. ПолучитьОформление()
Назначение: Выполняется при загрузке интерфейса для получения оформления.
Функция ПолучитьОформление()
МоёОформление = Новое Оформление();
// Установка цветовой схемы
ОсновнойЦвет = ВебЦвета.СинийОтвет;
МоёОформление.УстановитьЦвет(ОсновнойЦвет);
Возврат МоёОформление;
КонецФункции
8. ПолучитьОформлениеУпраления()
Назначение: Оформление для модуля управления.
Функция ПолучитьОформлениеУпраления()
Возврат ПолучитьОформление();
КонецФункции
Дополнительные важные процедуры
ПолучитьПараметрыВыбора()
Назначение: Параметры для выбора объектов.
Процедура ПолучитьПараметрыВыбора(ПараметрыВыбора)
// Настройка параметров для диалогов выбора
ПараметрыВыбора.ИспользоватьПолнотекстовыйПоиск = Истина;
ПараметрыВыбора.МаксимальноеКоличествоСтрок = 1000;
КонецПроцедуры
ПолучитьАльтернативныеЗначенияРеквизитов()
Назначение: Синонимы и альтернативные значения полей.
Процедура ПолучитьАльтернативныеЗначенияРеквизитов(АльтернативныеЗначения)
// Для быстрого поиска
АльтернативныеЗначения.Добавить("Товар", "Продукт");
АльтернативныеЗначения.Добавить("Контрагент", "Партнёр");
КонецПроцедуры
Практический пример
// Полный модуль менеджера
Процедура ПриСтартеСистемы()
// 1. Инициализация переменных
ТекущийПользователь = ПользователиИнформационнойБазы.ТекущийПользователь();
// 2. Загрузка параметров
Если ПолучитьСохранённыеДанные("СервисПарамещень") = Неопределено Тогда
СохранитьДанные("СервисПарамещень", ПолучитьПервичныеПараметры());
КонецЕсли;
// 3. Проверка лицензии
ЕслиНеДействующаяЛицензия() Тогда
СообщитьПользователю("Лицензия истекла");
КонецЕсли;
// 4. Запуск фоновых заданий
ЗапуститьРегламентныхЗадания();
КонецПроцедуры
Процедура ПриЗавершенииРаботыСистемы()
// 1. Сохранение кэша
СохранитьКэш();
// 2. Отмена незавершённых операций
УстановитьПривилегированныйРежим(Истина);
Запрос = Новый Запрос();
Запрос.Текст =
"ВЫБРАТЬ Ссылка ИЗ Документ.ОперацииСтуденты ГДЕ Статус = &Статус";
Запрос.УстановитьПараметр("Статус", Перечисления.СтатусыОперации.ВПроцессе);
РезультатОперации = Запрос.Выполнить().Выбрать();
Пока РезультатОперации.Следующий() Цикл
Операция = РезультатОперации.Ссылка.ПолучитьОбъект();
Операция.Статус = Перечисления.СтатусыОперации.Отменена;
Операция.Записать();
КонецЦикла;
УстановитьПривилегированныйРежим(Ложь);
КонецПроцедуры
Рекомендации
Что делать в модуле менеджера:
- Инициализация переменных
- Загрузка кэша
- Проверка версии конфигурации
- Запуск регламентных заданий
- Очистка при завершении
Чего избегать:
- Долгих операций в ПриСтартеСистемы() — это тормозит запуск
- Вывода сообщений об ошибках при старте
- Работы с внешними сервисами без try-catch
- Использование привилегированного режима без необходимости
Заключение
Предопределённые обработчики модуля менеджера — это критические точки в жизненном цикле приложения:
- ПриСтартеСистемы() — инициализация
- ПриЗавершенииРаботыСистемы() — финализация
- ПриСтартеПолучитьИсключение() — обработка ошибок
Правильное использование этих процедур обеспечивает стабильность и надёжность приложения.