В Глобальный Модуль добавляем всего одну строчку:
Процедура ПриНачалеРаботыСистемы()
//....................................
ОткрытьФорму("Отчет",Контекст,КаталогИБ()+"СтартСистемы.ert");
КонецПроцедуры // ПриНачалеРаботыСистемы()
Запускаемая при старте системы обработка "СтартСистемы.ert":
Перем Путь,Имя;
Перем лСервис; // местная
Процедура Сформировать()
// здесь процедуры, ктр. необходимо выполнить при входе ВСЕХ пользователей
РасположениеФайла(Путь,Имя);
ФС.УстТекКаталог(Путь);
лСервис.ДобавитьГлобальныйМодуль("#ЗагрузитьИзФайла ДопГМ.txt");
КонецПроцедуры
Процедура СформироватьАвтопилот()
//-- тут можно написать что-то для режима автозапуска программы
//-- например, стартануть обработку восстановления последовательности
КонецПроцедуры
Процедура ПриОткрытии()
ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"FormEx.dll");
// лСервис - локальный контекст, только для загрузки дополнительного Глобального Модуля
лСервис = СоздатьОбъект("Сервис");
Сформировать();
Если ВРЕГ(ИмяПользователя())="AUTOPILOT" Тогда
СформироватьАвтопилот();
КонецЕсли;
СтатусВозврата(0);
КонецПроцедуры
Примерный текст дополнительного Глобального модуля уже подгруженного formex
Перем Сервис Экспорт;
Перем L Экспорт;
//-- любые другие глобальные переменные
Процедура ПослеОткрытия(Конт)
ФормаРасш = СоздатьОбъект("РасширениеФормы");
//-- да! забыл... тут лучше поставить блок попытка-исключение,
//--а то ругается на список Констант
Попытка
ФормаРасш.УстановитьФорму(Конт.Форма);
Исключение
Возврат;
КонецПопытки;
Тип=ФормаРасш.ТипОбъекта();
ПолныйТип=ФормаРасш.ПолныйТипОбъекта();
// -- далее полный простор для творчества
КонецПроцедуры
//------------------------------------------------------------------------------------------------
//-- в теле модуля - это фактически продолжение ПриНачалеРаботыСистемы()
Сервис= СоздатьОбъект("Сервис"); // это уже глобальная для всей системы
//-- грузим любые необходимые нам DLL
//-- или выполняем другие действия при старте системы
ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"MiracleV8.dll");
L=СоздатьОбъект("AddIn.MiracleClass");
L.RUS();
ТекстОкна=" Мой текст";
L.SetMainText(ТекстОкна);
L.SetMainIcon(КаталогИБ()+"Main.ico");
Преимущества подхода:
1. Всего одну строчку добавить в ГМ после обновления.
2. СтартСистемы.ert, и ДопГМ правятся "на лету", никого выгонять из базы не надо.
Изменения станут доступными пользователю после его перезахода в 1С
Недостаток:
При синтаксис-контроле система, естественно, не видит глобальные процедуры, функции и
переменные (например, при их вызове в отчете), объявленные в ДопГМ, и ругается.