Модуль приложения
В модуле приложения находятся обработчики событий, которые выполняются при запуске конфигурации и при завершении работы. Другое название данного модуля — модуль управляемого приложения. Также есть модуль обычного приложения, который используется в конфигурациях с основным режимом запуска Обычное приложение (конфигурации на обычных формах).
Модуль приложения доступен только при запуске в режиме тонкого клиента, веб клиента и толстого клиента в режиме управляемого приложения. Данный модуль недоступен на сервере. Если в процессе его выполнения возникнет необработанное исключение, то это приведет к аварийному завершению работы системы.
В модуле приложения можно объявлять переменные с использованием ключевого слова Перем. Если добавить ключевое слово Экспорт, то переменная будет доступна в других клиентских модулях (глобальная переменная). Процедуры и функции с ключевым словом Экспорт будут доступны в любых клиентских модулях (общие неглобальные модули, модули формы, модули команды).
1 2 3 4 5 6 7 |
Перем ПеременнаяМодуляПриложения; //обычная переменная модуля Перем ГлобальнаяПеременная Экспорт; //глобальная переменная //данная функция будет доступна в любых клиентских модулях Функция Экспортная() Экспорт Возврат Истина; КонецФункции |
Из модуля приложения можно вызывать процедуры и функции клиентских общих модулей и серверных неглобальных общих модулей с флагом ВызовСервера.
Для открытия модуля приложения нужно щелкнуть правой кнопкой по корню конфигурации и выбрать Открыть модуль приложения:

Основные события модуля приложения
- ПередНачаломРаботыСистемы — выполняется при запуске конфигурации, до открытия основного окна. Есть параметр Отказ, если установить Отказ = Истина, то программа не запустится. Основное предназначение данного события — это выполнить различные проверки (например прав доступа) и при необходимости запретить запуск программы. Также в данном событии можно инициализировать какие-нибудь глобальные переменные.
- ПриНачалеРаботыСистемы — выполняется после открытия основного окна конфигурации. Здесь уже нельзя отказаться от запуска программы. В основном его используют для открытия каких-нибудь форм при запуске конфигурации.
- ПередЗавершениемРаботыСистемы — выполняется перед завершением работы конфигурации, до закрытия основного окна. Есть 2 параметра: Отказ и ТекстПредупреждения. Если установить Отказ = Истина, то до закрытия основного окна будет выдано предупреждение «Работа в данном окне не завершена» и предложено 2 варианта: завершить работу, продолжить работу.
1 2 3 |
Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) Отказ = Истина; КонецПроцедуры |

Если выбрать Завершить работу, то программа будет закрыта. Если выбрать Продолжить работу, то нет.
Если заполнить параметр ТекстПредупреждения, то вместо «Работа в данном окне не завершена» будет выведен текст из данного параметра:
1 2 3 4 |
Процедура ПередЗавершениемРаботыСистемы(Отказ, ТекстПредупреждения) ТекстПредупреждения = "Закрыть программу?"; Отказ = Истина; КонецПроцедуры |

- ПриЗавершенииРаботыСистемы — выполняется при завершении работы конфигурации, после закрытия основного окна приложения. В данном событии нельзя использовать сообщения и открытие форм. В основном используется для выполнения каких-либо действий при выходе из программы.
Серверные вызовы и открытие окон при завершении работы
В событиях ПередЗавершениемРаботыСистемы и ПриЗавершенииРаботыСистемы нельзя использовать серверные вызовы, иначе будет ошибка «Серверные вызовы при завершении работы запрещены». Также нельзя использовать открытие окон, иначе будет ошибка «Открытие окон при завершении работы запрещено».