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) Занимаюсь переработкой/тестирование модуля Меркурий_Обмен ....