Имя: Пароль:
1C
 
Конвертация данных: ошибка при передачи параметра в алгоритм
,
0 fantomrik
 
27.02.17
15:27
Коллеги, привет!
Есть правила обмена. В которых 3 ПВД.
Есть глобальный параметр - ИмяФайлаРегистрацииИзменений = "D:\Exchange_1C\Logs\Uploads_" + ТекущаяДатаСтрокой + ".txt"

В конце каждого ПВД получатся имя глобального параметра (файла) и алгоритме с этим параметром записывается

В ПВД:
ИмяФайла = Параметры.ИмяФайлаРегистрацииИзменений;
Дописывать = Истина;
ТекстСтроки = "Бла бла бла";
Выполнить(Алгоритмы.ЗаписьТекста);

В Алгоритме:
Текст = Новый ЗаписьТекста;
Текст.Открыть(ИмяФайла, КодировкаТекста.ANSI, , Дописывать);
Текст.ЗаписатьСтроку(ТекстСтроки);
Текст.Закрыть();

Если выполнять обмен по правилам вречную, через УниверсальныйОбмен - все хорошо, логирование работает.
Но если попытаться программно создать обработку, подставить правила и параметры - ругается на на имя параметра "ИмяФайла".

ПВД  =  МойПВД
Обработчик  =  ПередОбработкойВыгрузкиДанных
ОписаниеОшибки  = Ошибка при вызове метода контекста (Открыть): Недопустимое значение параметра (параметр номер '1')
ПозицияМодуля  =  (6)
КодСообщения   =  31
Тут точнее на пвд ругается, но методом научного тыка выяснил что имя ему не нравится...

Сталкивался может кто?
1 fantomrik
 
27.02.17
15:46
ап
2 vicof
 
27.02.17
15:49
Ну на сервере создается, а путь клиентский указываешь, например.
3 fantomrik
 
27.02.17
16:07
(2) Инициализция обработки и ОбменXML.ВыполнитьВыгрузку() идут в одной процедуре.
При иницализации в ОбменXML.Параметры - вижу свой параметр он заполнился, но в ПВД первом пред вызовом алгоритма пишу Сообщить("Имя файла выгрузки:" + Параметры.ИмяФайлаРегистрацииИзменений) выводит пустое...
Почему теряется имя и как исправить ума не приложу(
4 fantomrik
 
27.02.17
16:07
База серверная, но отлаживаю ее на терминале на этом же серевере
5 h-sp
 
27.02.17
16:22
(4) это ничего не меняет.
6 fantomrik
 
27.02.17
16:22
(5) И какое решение?)
7 fantomrik
 
27.02.17
16:23
Кстати база 8.1 и на платформе 8.1 работает, так уж повилось и пока не изменить этого.
8 vicof
 
27.02.17
16:26
(3) Надо посмтреть стек вызовов
9 fantomrik
 
27.02.17
16:35
(8) Ну выгрузка идет в одной процедуре. тоесть инициализация обработки, загрузка правил (ПослеЗАгрузкиПравилОбмена создается мой файл лога как раз) и далее выгрузка по ПВД из правил обмена. Но уже в первом ПВД параметр глобальный почему то равен нулю

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

В какой момент мне стек вызовов смотреть?
10 fantomrik
 
27.02.17
16:44
Инициализацию начальную параметров перенес из ПослеЗагрузкиПравилОбмена в ПередВыгрузкойДанных и Все взлетело.

Спасибо всем!
Я не хочу быть самым богатым человеком на кладбище. Засыпать с чувством, что за день я сделал какую-нибудь потрясающую вещь — вот что меня интересует. Стив Джобс