Обновление.txt - 1Cv7 ВСД в ГИС Меркурий - КБ99 Redmine

Проект

Общее

Профиль

Обновление.txt

Анисимов Михаил, 19.09.2017 15:20

 
1
1) В глобмальный модуль конфигурации добавляем переменные:
2

    
3
Перем глМеркурий Экспорт;
4
Перем глМеркурийИнтеграция Экспорт;
5

    
6

    
7
Добавлем код в процедуру 
8
Процедура ПриНачалеРаботыСистемы()
9
....
10

    
11
	//эту загрузку можно переписать как удобнее, у меня 1CPP загружается так
12

    
13
		Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы() + "LIB\"	+ "1cpp.dll")	<>	1	Тогда
14
			Предупреждение("Компонента 1cpp.dll не найдена!");
15
			СтатусВозврата(0);
16
			Возврат;
17
		КонецЕсли;
18

    
19
		
20
....
21
		//{Подключение модуля интеграции Меркурий 		
22
		глМеркурий 					= СоздатьОбъект("Меркурий");
23
		КаталогМеркурий 			= глМеню.НайтиКаталог("<Меркурий>",0); 			//здесь указать путь к каталогу обработок
24
		КаталогБиблиотек 			= КаталогПрограммы() + "LIB\";					//путь к хранилищу стандартных библиотек
25
		ФайлНастроекПользователя 	= КаталогПользователя()+"Меркурий_Константы";	//имя базового файла настроек пользователя, Тест или рабочий а так же расширение проставятся сами.
26
		ТестовыйРежимРаботыМодуля	= Число(ВосстановитьЗначение("Меркурий_РежимРаботыМодуля"));
27
		глМеркурий.Инициализация(КаталогМеркурий,КаталогБиблиотек,ФайлНастроекПользователя,ТестовыйРежимРаботыМодуля);
28
		
29
		глМеркурийИнтеграция			= СоздатьОбъект("МеркурийИнтеграция");			//Интеграционный модуль, переопределенные функции
30
		глМеркурийИнтеграция.Инициализация(глМеркурий);
31
		//}
32
....
33
КонецПроцедуры
34

    
35

    
36

    
37
2) В каталог базы данных копируем файл defcls.prm
38
Содержимое файла правим на актуальный путь нахождения модулей.
39

    
40
3) В каталог где хранятся обработки копируем файлы
41
Меркурий.prm
42
Меркурий.ert  (это бывший ГлобальныйМодуль.txt с изменениями)
43
МеркурийИнтеграция.ert
44

    
45
4) Изменения 
46
4.1) Подключаемый модуль (глобальный модуль) сделан в виде объекта (его можно дебагить в отладчике).
47
4.2) Все процедуры переделаны в функции (интуитивное решение)
48
4.3) Добавленны служебные процедуры по инициализации класса а так же для поддержки механизма переопределения функций (для интеграции).
49
	В начале каждой процедуры добавлен код
50

    
51
	...	
52
Функция ПолучитьОтветХС(applicationID, ХС) Экспорт
53
	
54
	//{Проверим на переопределение функции, если переопределена вызовем из перекрывающего модуля
55
	ОбъектВыполнения = ПроверитьПереопределениеФункции("ПолучитьОтветХС");
56
	Если ПустоеЗначение(ОбъектВыполнения)=0 Тогда
57
		Возврат ОбъектВыполнения.ПолучитьОтветХС(applicationID, ХС);
58
	КонецЕсли;	
59
	//}
60

    
61
	//далее стандартное поведение функции	
62
	...
63
	
64
в каждую новую функцию этот код надо добавлчть (изменяя имена функции), 
65

    
66
4.4) Модуль МеркурийИнтеграция - необходим для переопределения стандартных функций из модуля Меркурий. 
67
Настройка переопределения выполняется при его инициализации, смотреть код там все вроде понятно. Этого модуля может и не быть вовсе, тогда убрать его определение в глобальном модуле.
68

    
69
4.5) Функции в модуле Меркурий переделаны (отвязаны от текущего контекста выполнения). Протестированы пока не все функции. 
70

    
71
4.6) Переделан механизм перехода на тестовую и рабочую версии серверов. В обработке Меркурий_Параметры добавлена новая кнопка, через которую происходит переключение между тестовой и рабочей версии. Анализ имени запускаем обработки на наличие _ТЕСТ не выполняется. (Пока актуально только для уже переработанных обработок).
72

    
73
4.7) Сгруппированы параметры в обработке Меркурий_Параметры
74

    
75
4.8) Проведено тестирование процедур в обработке Меркурий_Параметры - все работает, внесены изменения в код.
76

    
77
4.9) Занимаюсь переработкой/тестирование модуля Меркурий_Обмен ....