Вход | Регистрация


Правила обмена данными и "ДопОбработки"

Правила обмена данными и "ДопОбработки"
Я
   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
(2) И хапнул горюшка
   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), всё будет работать так как я пропишу в обработке. Это не минус - это норма для любой разработки

Список тем форума
Рекламное место пустует  Рекламное место пустует
Ошибка? Это не ошибка, это системная функция.
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует