Имя: Пароль:
1C
1С v8
обмен xml через com
0 DeeK
 
27.02.18
10:30
беру правила свои в БУХ 3.0 выгружаю ручками через универсальный обмен, потом загружаю в УПП - все ок, нужные документы (платежное поручение входящее) в базе получателе проводятся (в ПКО после загрузки код). Беру обработку, которая выгружает в бух в файл, а потом через com лезет (под тем же пользователем, что и загружаю вручную) в УПП и там загружает, и документы становятся распроведенными (правила те же). ВТФ?

вот так гружу
_Сообщить(ИмяФайлаЛога, "Начало загрузки XML", "i");
        ПутьКБазе = "тут путь";
        V8=Новый COMОбъект("V83.ComConnector");  
        Если не ПустаяСтрока(ПутьКБазе) Тогда
            Подключение = V8.Connect(ПутьКБазе);    
        Иначе
            Сообщить("Не удалось подключиться к базе для обмена");
            Возврат;
        КонецЕсли;    
        Если Подключение = неопределено Тогда
            Сообщить("ERROR");
        Иначе    
            Сообщить("OK");
        КонецЕсли;
        КаталогОбмена           = "тут каталог";

        Путь = КаталогОбмена + "тут файл";
        
        
        Обработка = Подключение.Обработки.УниверсальныйОбменДаннымиXML.Создать();
        Обработка.РежимОбмена     = "Загрузка";
        Обработка.ВыводВПротоколСообщенийОбОшибках      = Истина;
        Обработка.ВыводВПротоколИнформационныхСообщений = ИСТИНА;
        Обработка.ИмяФайлаПротоколаОбмена               = ИмяФайлаПротокола;
        Обработка.ДописыватьДанныеВПротоколОбмена         = Истина;
        Обработка.ЗагружатьДанныеВРежимеОбмена               = Истина;
        Обработка.ОбъектыПоСсылкеЗагружатьБезПометкиУдаления = Истина;
        
        
        

        Обработка.ВыводВОкноСообщенийИнформационныхСообщений = ЛОЖЬ;            
        Обработка.ИмяФайлаОбмена = Путь;
        
        УстановитьПривилегированныйРежим(Истина);
        Обработка.ВыполнитьЗагрузку();
        УстановитьПривилегированныйРежим(Ложь);
        
        _Сообщить(ИмяФайлаЛога, "Загрузка из XML закончена", "i");

проведение доков так в ПКО после загрузки

ВсеОК = Истина;
Попытка
    Объект.Записать(РежимЗаписиДокумента.Запись);
Исключение
    ВсеОК = Ложь;
    Сообщить("ВНИМАНИЕ! ошибка записи документа: " + Объект);
    Сообщить("   " + ОписаниеОшибки());
КонецПопытки;

Если ВсеОК Тогда
    ОбъектМодифицирован = Ложь;
    Если Объект.Проведен Тогда
        Попытка
            Объект.Записать(РежимЗаписиДокумента.Проведение, РежимПроведенияДокумента.Неоперативный);
        Исключение
            Объект.Проведен = Ложь;
            Сообщить("ВНИМАНИЕ! документ не проведен: " + Объект);
            Сообщить("   " + ОписаниеОшибки());
        КонецПопытки;
    ИначеЕсли Объект.ПометкаУдаления Тогда
        Попытка
            Объект.УстановитьПометкуУдаления(Истина);
        Исключение
            Сообщить("ВНИМАНИЕ! не удалось установить пометку удаления: " + Объект);
            Сообщить("   " + ОписаниеОшибки());
        КонецПопытки;
    Иначе
        Попытка
            Объект.Записать(РежимЗаписиДокумента.ОтменаПроведения);
        Исключение
            Сообщить("ВНИМАНИЕ! ошибка записи документа: " + Объект);
            Сообщить("   " + ОписаниеОшибки());
        КонецПопытки;
    КонецЕсли;
КонецЕсли;

подайте идею
1 Ёпрст
 
гуру
27.02.18
11:28
у пользователя, через которое лезешь по ком - нет прав на проведение доков.
Втыках отладочные сообщения в лог.
2 DeeK
 
27.02.18
11:45
(1) есть, лезу под админом
3 DeeK
 
27.02.18
11:51
такое ощущение что не задаю какой-то из параметров обработки в УПП (у нее много реквизитов)
4 DeeK
 
27.02.18
12:24
есть решение, подписка на событие не имела галки "внешнее соединение"
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший