|
1) В глобмальный модуль конфигурации добавляем переменные:
|
|
|
|
Перем глМеркурий Экспорт;
|
|
Перем глМеркурийИнтеграция Экспорт;
|
|
|
|
|
|
Добавлем код в процедуру
|
|
Процедура ПриНачалеРаботыСистемы()
|
|
....
|
|
|
|
//эту загрузку можно переписать как удобнее, у меня 1CPP загружается так
|
|
|
|
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "LIB\" + "1cpp.dll") <> 1 Тогда
|
|
Предупреждение("Компонента 1cpp.dll не найдена!");
|
|
СтатусВозврата(0);
|
|
Возврат;
|
|
КонецЕсли;
|
|
|
|
|
|
....
|
|
//{Подключение модуля интеграции Меркурий
|
|
глМеркурий = СоздатьОбъект("Меркурий");
|
|
КаталогМеркурий = глМеню.НайтиКаталог("<Меркурий>",0); //здесь указать путь к каталогу обработок
|
|
КаталогБиблиотек = КаталогПрограммы() + "LIB\"; //путь к хранилищу стандартных библиотек
|
|
ФайлНастроекПользователя = КаталогПользователя()+"Меркурий_Константы"; //имя базового файла настроек пользователя, Тест или рабочий а так же расширение проставятся сами.
|
|
ТестовыйРежимРаботыМодуля = Число(ВосстановитьЗначение("Меркурий_РежимРаботыМодуля"));
|
|
глМеркурий.Инициализация(КаталогМеркурий,КаталогБиблиотек,ФайлНастроекПользователя,ТестовыйРежимРаботыМодуля);
|
|
|
|
глМеркурийИнтеграция = СоздатьОбъект("МеркурийИнтеграция"); //Интеграционный модуль, переопределенные функции
|
|
глМеркурийИнтеграция.Инициализация(глМеркурий);
|
|
//}
|
|
....
|
|
КонецПроцедуры
|
|
|
|
|
|
|
|
2) В каталог базы данных копируем файл defcls.prm
|
|
Содержимое файла правим на актуальный путь нахождения модулей.
|
|
|
|
3) В каталог где хранятся обработки копируем файлы
|
|
Меркурий.prm
|
|
Меркурий.ert (это бывший ГлобальныйМодуль.txt с изменениями)
|
|
МеркурийИнтеграция.ert
|
|
|
|
4) Изменения
|
|
4.1) Подключаемый модуль (глобальный модуль) сделан в виде объекта (его можно дебагить в отладчике).
|
|
4.2) Все процедуры переделаны в функции (интуитивное решение)
|
|
4.3) Добавленны служебные процедуры по инициализации класса а так же для поддержки механизма переопределения функций (для интеграции).
|
|
В начале каждой процедуры добавлен код
|
|
|
|
...
|
|
Функция ПолучитьОтветХС(applicationID, ХС) Экспорт
|
|
|
|
//{Проверим на переопределение функции, если переопределена вызовем из перекрывающего модуля
|
|
ОбъектВыполнения = ПроверитьПереопределениеФункции("ПолучитьОтветХС");
|
|
Если ПустоеЗначение(ОбъектВыполнения)=0 Тогда
|
|
Возврат ОбъектВыполнения.ПолучитьОтветХС(applicationID, ХС);
|
|
КонецЕсли;
|
|
//}
|
|
|
|
//далее стандартное поведение функции
|
|
...
|
|
|
|
в каждую новую функцию этот код надо добавлчть (изменяя имена функции),
|
|
|
|
4.4) Модуль МеркурийИнтеграция - необходим для переопределения стандартных функций из модуля Меркурий.
|
|
Настройка переопределения выполняется при его инициализации, смотреть код там все вроде понятно. Этого модуля может и не быть вовсе, тогда убрать его определение в глобальном модуле.
|
|
|
|
4.5) Функции в модуле Меркурий переделаны (отвязаны от текущего контекста выполнения). Протестированы пока не все функции.
|
|
|
|
4.6) Переделан механизм перехода на тестовую и рабочую версии серверов. В обработке Меркурий_Параметры добавлена новая кнопка, через которую происходит переключение между тестовой и рабочей версии. Анализ имени запускаем обработки на наличие _ТЕСТ не выполняется. (Пока актуально только для уже переработанных обработок).
|
|
|
|
4.7) Сгруппированы параметры в обработке Меркурий_Параметры
|
|
|
|
4.8) Проведено тестирование процедур в обработке Меркурий_Параметры - все работает, внесены изменения в код.
|
|
|
|
4.9) Занимаюсь переработкой/тестирование модуля Меркурий_Обмен ....
|
|
|