Каталог решений - Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll

Максимум изменений в стандартной конфигурации при их минимуме с использованием formex.dll

В наличии

Восстанавливаю ранее опубликованную статью. Может кому пригодится…
Иногда очень хочется что-нибудь добавить в стандартную конфигурацию, но потом возникают проблемы, связанные с "затиранием" кода при обновлении. Каждый раз помнить где и что — напряжно.
При данном подходе в Глобальный Модуль добавляется всего одна (!) строчка

Категория:

Описание

В Глобальный Модуль добавляем всего одну строчку:

Процедура ПриНачалеРаботыСистемы()
   
//………………………………
   
ОткрытьФорму(«Отчет»,Контекст,КаталогИБ()+«СтартСистемы.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С

Недостаток:

При синтаксис-контроле система, естественно, не видит глобальные процедуры, функции и

переменные (например, при их вызове в отчете), объявленные в ДопГМ, и ругается.

 

has been added to your cart:
Оформление заказа