Версия для печати темы (https://pro1c.org.ua/index.php?s=c76ab49fb8989c912921ea3daf6c909e&showtopic=54578)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Выгрузка Акта сверки в Медок, ошибка при вызове метода контекста (Edit)

Автор: Мичман Харитонов 10.10.19, 11:30

Платформа 8.3.7,
Конфигурация самописная.
Переделываю на основе выгрузки для налоговых документов...

Код

Процедура ВыполнитьПередачуНакладных(Результат, ЭлементыФормы) Экспорт
    Попытка
        App = Новый COMОбъект("MEDOC.ZApplication");
    Исключение
        Сообщить("Приложение M.E.DOC не запущено!");
        Возврат;
    КонецПопытки;
    СведенияОПоставщике  =  УправлениеКонтактнойИнформацией.СведенияОЮрФизЛице(Организация,  ТекущаяДата());
    КодПоЕДРПОУ  =  СокрЛП(СведенияОПоставщике.КодПоЕДРПОУ);
    ЭлементыФормы.Состояние.Заголовок = "Осуществляется передача Актов Сверки...";
    Передано = 0;
    Для каждого Стр Из Результат Цикл
        Если Стр.Передавать = Ложь Тогда
            Продолжить;
        КонецЕсли;
        
        PDate = Дата(Год(Стр.Ссылка.Дата), Месяц(Стр.Ссылка.Дата), День(Стр.Ссылка.Дата));
        
        
        ИД = Строка(Стр.Ссылка.УникальныйИдентификатор());
                
         Бланк = "1C82A3";  
         Формирование_АктаСверки(App,  Стр.Ссылка,  Бланк,  PDate,  ИД)
        
    КонецЦикла;
    App.RefreshRstDoc();
    ЭлементыФормы.Состояние.Заголовок = "Передача Актов сверки завершена успешно.";
    Сообщить("Передано " + Передано + " документ(ов) ");
    
КонецПроцедуры

Функция Формирование_АктаСверки(App,  Документ,  Бланк,  PDate,  ИД)
Doc  =  App.OpenOrCreateByExDocID(Бланк, 0, PDate,  , ИД, 0);
rsMain = Doc.DataSets("MAIN");
            //rsMain = Doc.DataSets();
            rsMain.Edit();
....


На rsMain.Edit(); спотыкается, выдает ошибку

Автор: Petre 10.10.19, 12:05

Мичман Харитонов @ Today, 11:30 * ,
Возможно документ уже существует.

Автор: Inkognito 25.10.19, 8:23

Неправильно создаете первичный документ. Правильно использовать иную функцию создания первички:

pd =  App.GetPrimaryDocs(); 
Doc  =  pd.OpenOrCreateDocument(orgId,  Бланк, , ,  ИД,  0);
rsMain = Doc.DataSets();                     
rsMain.Edit();              
rsMain.Append();
rsMain.Post();

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua