|
Выделить общий программный код из двух внешних обработок |
☑ |
0
zelenprog
31.08.23
✎
13:49
|
Здравствуйте!
Есть две внешние обработки, которые имеют много одинакового кода.
Можно ли этот код выделить куда-то? Например, в третью внешнюю обработку?
Если можно, то как потом использовать этот общий код?
Конфигурацию менять не хотелось бы. Желательно это реализовать внешними обработками.
|
|
1
Tatitutu
31.08.23
✎
13:54
|
Можно
|
|
2
zelenprog
31.08.23
✎
14:04
|
Процедура ПриОткрытии()
|
|
3
Табуретко
31.08.23
✎
14:04
|
Сравнить файлы...?
|
|
4
zelenprog
31.08.23
✎
14:13
|
Сделать вот такой пример.
В "рабочей" форме внешней обработки №1 выполняется вот такой код, который обращается к внешней обработке №2:
&НаКлиенте
Процедура ПриОткрытии()
лИмяФайлаВХранилищеНаСервере = "";
лРез = ПоместитьФайл(лИмяФайлаВХранилищеНаСервере, "c:\ВО_Тест.epf", , Ложь);
ПриОткрытии_ПодключитьВнешнююОбработку_НаСервере(лИмяФайлаВХранилищеНаСервере);
КонецПроцедуры
&НаСервере
Функция ПриОткрытии_ПодключитьВнешнююОбработку_НаСервере (пИмяФайлаВХранилищеНаСервере)
ИмяОбработки = ВнешниеОбработки.Подключить(пИмяФайлаВХранилищеНаСервере,,Ложь);
МояОбработка = ВнешниеОбработки.Создать(ИмяОбработки);
МояОбработка.ПроцедураТест();
КонецФункции
Процедура "ПроцедураТест" расположена в модуле объекта внешней обработки №2 как экспортная.
Это вроде бы работает.
А как мне теперь из формы №1 снова вызвать метод внешней обработки №2?
Например, по какой-нибудь команде надо еще раз вызвать метод "ПроцедураТест()". Но ведь на серверной части "рабочей" формы ссылка на внешнюю обработку №2 уже "исчезла".
Снова подключать и создавать внешнюю обработку?
Получается, это нужно делать при каждом серверном вызове? Но это же очень неэффективно, если 1С-ка каждый раз будет подгружать форму.
Как это правильно сделать?
|
|
5
Галахад
31.08.23
✎
14:31
|
А в создать реквизит обработки "МояОбработка"?
|
|
6
Мультук
31.08.23
✎
14:32
|
(4)
Создай расширение.
Там добавь общий модуль (или несколько общих модулей).
В общий модуль свои функции и пользуйся.
|
|
7
zelenprog
14.09.23
✎
08:46
|
(6) Спасибо!
С расширением это действительно оказалось намного удобнее и проще.
Неудобство только в том, что приходится "привязываться" к базе, подгружая расширение.
|
|