Имя: Пароль:
1C
1С v8
Конвертация данных 2.0. Настройка ПВД для узла обмена
0 poisk87
 
23.03.19
21:22
Доброго времени суток, уважаемые! Давно знаю и иногда посещаю этот форум и вот настал час спросить Вашей помощи.. Очень на Вас надеюсь.

Есть обмен данными из УТ11 в самописную ИБ.
Есть несложные правила обмена в КД 2.0, они нормально выгружают через универсальный обмен данными в формате XML (2.1.8) (УОД). В ПВД есть выгрузка документа по произвольному алгоритму, сам документ отсутствует в УТ11, он нужен лишь как документ-регистратор регистров накопления в самописной базе. Регистры отбираются по алгоритму и собираются в документ.
Есть задача наладить регулярный обмен между базами. Регистры сведений, справочники и документы (стандартной выборкой) нормально проходят, Беда в выгрузке документа с произвольным алгоритмом.
Если в УОД проставить этому документу узел обмена, то он выпадает в ошибку.
Отладчиком ошибка выпадает здесь:
   МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки);

СтрокаПравилаВыгрузки.ОбъектВыборки - значение = пусто, Тип = Неопределено

Лог ошибки:
Ошибка при выгрузке данных для узла плана обмена
    ОписаниеОшибки         =  Ошибка при вызове метода контекста (НайтиПоТипу): Несоответствие типов (параметр номер '1')

В ПВД объект выборки - пусто, ведь стоит произвольный алгоритм.
В состав плана обмена документ тоже не включить, так как отсутствует в базе источнике.
В описании отладки обработчиков есть такой - Отказ, и на некоторых форумах пишут, что его в истину надо ставить. Пробовал ставить Перед обработкой и Перед выгрузкой, но ошибка не меняется, просьба помочь советом или делом.

Надеюсь на Вашу помощь.
1 Cyberhawk
 
23.03.19
21:27
На худой конец есть глобальные обработчики конвертации, некоторые из которых срабатывают однократно - туда выгрузку и забубень
2 poisk87
 
23.03.19
21:31
(1) Спасибо за быстрый ответ и совет. Пока про них ничего не знаю. Хотелось бы обойтись как-то малой кровью, думается что проблема не глобальная и кто-то уже решал такие вещи.
3 Cyberhawk
 
23.03.19
21:31
Ты говоришь как в видео про 7 красных линий: "Задача поставлена и надо ее решать" ))
4 poisk87
 
23.03.19
21:38
(3) Вообще не знал о таком.. "Давайте не будем тратить время на не продуктивные решения. Задача поставлена. Задача четкая и ясная." ))
6 unbred
 
24.03.19
15:02
снять с обмена не предлагать?
7 hhhh
 
24.03.19
15:18
(4) может документ забыл включить в план обмена?
8 poisk87
 
24.03.19
15:19
(6) Да, не предлагать. Пробовал как предложил (1) через глобальные - через Перед получением измененных, а в ПВД перед обработкой Отказ = Истина, ошибка такая же.
Проблема похожая с Конвертация, как сделать выгрузку по произвольному алгоритму

(7) в том и дело что документ в план обмена не включить и объект выгрузки пустой, сам документ отсутствует в базе Источнике.
9 poisk87
 
24.03.19
15:24
ошибка происходит Функции ВыполнитьВыгрузкуИзмененныхДанныхДляУзлаОбмена(УзелОбмена, МассивПравилКонвертации, СтруктураДляУдаленияРегистрацииИзменений)

в цикле
Для Каждого СтрокаПравилаВыгрузки Из ВременныйМассивПравилКонвертации Цикл
            
        МетаданныеПВД = Метаданные.НайтиПоТипу(СтрокаПравилаВыгрузки.ОбъектВыборки);
        МассивВыгружаемыхМетаданных.Добавить(МетаданныеПВД);
        
КонецЦикла;
10 Мимохожий Однако
 
24.03.19
15:46
Добавь для отладки
ТипЗнч(СтрокаПравилаВыгрузки.ОбъектВыборки);
Может быть, подсказка будет
Тупой вариант через Попытку - Исключение в этом же месте с выводом ОписаниеОшибки()
11 poisk87
 
24.03.19
15:59
(10) Через точку останова СтрокаПравилаВыгрузки.ОбъектВыборки - Тип =  Неопределено
так ведь да, Объект Выборки же пуст в источнике.
12 Мимохожий Однако
 
24.03.19
16:29
Если ОбъектВыборки пуст, то не обрабатывать и в отказ
13 Cyberhawk
 
25.03.19
11:48
Ну так выгружать-то надо не в лоб, а в файл дописывать немного вручную. В обмене БСП фильтрация значит не позволяет выгружать через ПВД то, что не входит в состав плана обмена, в т.ч. и произвольный алгоритм.
14 poisk87
 
25.03.19
20:41
(13) Обмен не БСП, а через планы обмена без БСП, но суть не в этом. Хотелось бы ещё мнение людей, кто сталкивался с этим и как обходил. И не факт совсем что "ЗНАЧИТ не позволяет..". Мне б где про это почитать, или посмотреть, что так нельзя или так можно. Ведь это нормальная ситуация, когда Произвольным алгоритмом данные отбираются и выгружаются. Не думаю, что совсем нельзя..
15 Garykom
 
гуру
25.03.19
20:46
В твоей ситуации от КД смысла не вижу, поднять в УТ одату и написать свой обмен в самописке через http
16 Cyberhawk
 
26.03.19
09:37
Ну раз выгрузка не через обработку из конфигурации, а через старый добрый УОД, то не делай "Если в УОД проставить этому документу узел обмена"