|
Правила обмена данными и "ДопОбработки"
|
Я
|
|
SeiOkami 03.10.16 - 15:53 | Здравия!
Пишу правила обмена между самописной конфой на БСП 2.3.2.58 и просто самописной конфой. Использую конвертацию 2.1.8.1. Добавил в правила подключаемую обработку "МояОбработка". В справке к конвертахе написано:
"Доступ к подключаемым обработкам в обработчиках событий обмена осуществляется так:
ДопОбработки.<ИмяОбработки>.<ИмяЭкспортируемойПроцедурыИлиФункции()>"
Но моя обработке не подгружается в эту переменную. Прорыл код БСПшной обработки по универсальному обмену - нигде ничего в эту структуру не добавляется. Она только везде очищается. Открыл обработку из папки шаблонов, которая идёт вместе с конвертахой - там есть код, который добавляет в эту структуру подключаемые обработки, но этот код сработает только на клиенте.
Это норма? Или какая-то недоработка? |
Cyberhawk 1 - 03.10.16 - 16:00 | Для БСП это норма, их ОбменДаннымиXML несовместим с универсальным обменом данными ХМЛ
|
SeiOkami 2 - 03.10.16 - 16:01 | ( 1), так я взял обработку и с БСП и с конвертации |
SeiOkami 3 - 03.10.16 - 16:11 | ап
|
SeiOkami 4 - 03.10.16 - 16:21 | вверх
|
Cyberhawk 5 - 03.10.16 - 16:23 | |
SeiOkami 6 - 03.10.16 - 16:30 | То есть этот функционал в конвертации не работает?
|
Cyberhawk 7 - 03.10.16 - 16:33 | ( 6) В какой конвертации? Он работает в универсальном обмене на толстых формах. |
SeiOkami 8 - 03.10.16 - 16:35 | ( 7), но это только если ты вручную открыл обработку, ибо подключаемые обработки инициализируются только на клиенте |
SeiOkami 9 - 03.10.16 - 16:46 | странная недоработка...
|
Cyberhawk 10 - 03.10.16 - 17:02 | ( 8) Не понял, в чем твоя проблема в свете сказанного в ( 1) и ( 7)? В ОФ код, обрамленный в ту директиву, выполнится. В УФ это не поддерживается. |
Cyberhawk 11 - 03.10.16 - 17:03 | Я, наверное, не совсем точно в ( 1) выразился: это не только в обработке из БСП не поддерживается, но и в универсальной обработке обмена, адаптированной под УФ, тоже не поддерживается |
SeiOkami 12 - 04.10.16 - 07:57 | ( 10), а если код будет выполнен из фона\регламентного задания\серверного модуля ? Сомневаюсь |
SeiOkami 13 - 04.10.16 - 07:57 | ( 11) я об этом сразу в ( 0) написал |
SeiOkami 14 - 04.10.16 - 09:27 | Вставил такой алгоритм в правила обмена, чтобы исправить косяк типовой обработки:
врПравилаОбмена = Новый ЧтениеXML;
врПравилаОбмена.УстановитьСтроку(мXMLПравила);
Пока врПравилаОбмена.Прочитать() Цикл
Если врПравилаОбмена.ЛокальноеИмя = "Обработки" Тогда
Пока врПравилаОбмена.Прочитать() Цикл
Если врПравилаОбмена.ЛокальноеИмя = "Обработка" Тогда
Имя = одАтрибут(врПравилаОбмена, одТипСтрока, "Имя");
Если ДопОбработки.Свойство(Имя) Тогда
Продолжить;
КонецЕсли;
Если (одАтрибут(врПравилаОбмена, одТипБулево, "ИспользуетсяПриВыгрузке") И РежимОбмена = "Загрузка")
ИЛИ (одАтрибут(врПравилаОбмена, одТипБулево, "ИспользуетсяПриЗагрузке") И РежимОбмена <> "Загрузка") Тогда
ИмяВременногоФайла = КаталогВременныхФайлов() + Новый УникальныйИдентификатор() + ".epf";
одЗначениеЭлемента(врПравилаОбмена, одТипХранилищеЗначения).Получить().Записать(ИмяВременногоФайла);
ДопОбработки.Вставить(Имя, ВнешниеОбработки.Создать(ИмяВременногоФайла));
УдалитьФайлы(ИмяВременногоФайла);
КонецЕсли;
ИначеЕсли (врПравилаОбмена.ЛокальноеИмя = "Обработки") И (врПравилаОбмена.ТипУзла = одТипУзлаXML_КонецЭлемента) Тогда
Прервать;
КонецЕсли;
КонецЦикла
КонецЕсли;
КонецЦикла; |
Cyberhawk 15 - 04.10.16 - 11:22 | ( 12) Так там нет ОФ, поэтому ясен пень, что не выполнится.
1С это объясняет тем, что код обработок, хранящихся в файлике правил обмена, не должен выполняться на сервере (небезопасно) и поэтому назначение этих подключаемых обработок - только параметризация конвертации на клиенте (ну вот эти собственные формы настроек).
( 14) Ну т.е. ты повторил или почти повторил код обработки обмена, только без ограничивающей директивы :) Только у такого подхода есть минус - правила обмена, опирающиеся на код обработок, могут вести себя по-разному при интерактивной загрузке и при загрузке, например, регламентным заданием - во втором случае клиентские процедуры и всякие интерактивные штуки недоступны будут. |
SeiOkami 16 - 05.10.16 - 10:42 | ( 15), всё будет работать так как я пропишу в обработке. Это не минус - это норма для любой разработки |