Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Загрузка документов через Com

Загрузка документов через Com
Я
   msv999
 
19.07.21 - 05:23
Всем, доброго дня! Подскажите пожалуйста как можно программно загрузить документы из другой баз по Com? Подскажите где у меня не правильно

&НаСервере
Процедура ЗагрузитьДокументыНаСервере()

Соединение = Новый COMОбъект("V83.COMConnector");
ПараметрыДоступа = "File=;Usr=;Pwd="; // тут естественно прописываю параметры к базе
Попытка
    База = Соединение.Connect(ПараметрыДоступа);
Исключение
    Сообщить("Проблемы при подключении: " + ОписаниеОшибки());
    Возврат;
КонецПопытки;

Док = Документы.План.СоздатьДокумент();    
Запрос = База.NewObject("Запрос");
Запрос = Новый Запрос;
// Далее идет запрос к документу - это будет правильно или нужно из регистра?


Запрос.УстановитьПараметр("ДатаНачала", ЭтотОбъект.Объект.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ЭтотОбъект.Объект.ДатаОкончания);
    
    
    Выборка = Запрос.Выполнить().Выбрать();

    
    Пока Выборка.Следующий() Цикл
      
    Док.Дата = Выборка.Дата;
    Док.Организация = Справочники.Организации.НайтиПоНаименованию(Выборка.Организация);
    
    Для каждого стрТаб из Док.Таблица Цикл
    стрТаб.Наименование = Справочники.СтатьиЗатрат.НайтиПоНаименованию(Выборка.Наименование);
    и т.д.
        КонецЦикла;
    Док.Записать();

    КонецЦикла;

Сообщить("Загружено");



КонецПроцедуры
   ДенисЧ
 
1 - 19.07.21 - 05:36
Странный вопрос... Ты загружаешь что-то из другой базы. По неизвестному нам алгоритму.
И спрашиваешь нас, куда тебе правильней обращаться - к регистру или документу? Тебе видней...
   Обработка
 
2 - 19.07.21 - 06:18
(0) Если загружаешь документы то обращаешься к документам. А если Перетаскиваешь записи регистрам то к регистрам.
Уточнение если регистр подчинен регистратору то по любому регистратора переносишь или же сам назначаешь на этой стороне.
   Адинэснег
 
3 - 19.07.21 - 07:07
(0) выкидывай эту тормозную com, не в 2021 её колхозить.
ws, hs
   msv999
 
4 - 19.07.21 - 07:14
(3) Как тогда загрузить документы? Выгружать в список и потом загружать?
   msv999
 
5 - 19.07.21 - 07:15
У меня вопрос не то, чтобы к документам или регистрам, это я так. А не загружает, что делаю не так
   Обработка
 
6 - 19.07.21 - 07:19
(0) Если хоть чуть чуть знаешь КД2 юзай КД2
Если не знаешь КД2 тогда выгрузи в таблицу и загрузи с таблицы.
Ну в конце концов можно в текст или в ексель итп.
И самое главное Отладкой пользоваться умеешь? Если нет о в первую очередь научись элементарным правилам отладки кода. Это не сложно на это уйдет 10-15 минут.
   ДенисЧ
 
7 - 19.07.21 - 07:30
(5) "не загружает, что делаю не так"
Не раскарываешь тему сисек зачёркнуто ошибок и результатов прохода отладчиком.
   Chai Nic
 
8 - 19.07.21 - 08:01
Главное, что нужно уяснить: любой объектовый тип через COM это не он, а его COM-отображение, что может принести внезапные сюрпризы. Поэтому при возможности через COM лучше работать исключительно через строковые типы. Та же таблица результата запроса должна содержать только примитивные типы, а передаваться - через сериализацию "там" и десериализацию "тут".
   Обработка
 
9 - 19.07.21 - 08:20
В запросе Выборка.Организация должно быть строковой а не ссылочной Выборка.Организация.Наименование!!!
   nodrama
 
10 - 19.07.21 - 09:54
(3) Человек через старый КОМ не может загрузить. А ты ему предлагаешь сделать через ws, которого он скорее всего даже не видел)
   smpulan
 
11 - 19.07.21 - 09:59
Пример создания документа в базе приемнике с GUID из базы источника.

//Получаем тип в базе приемнике


Сом_Тип = СоединениеCOM.NewObject("ОписаниеТипов", "ДокументСсылка.ТребованиеНакладная").Типы().Получить(0);
//Создаем новый документ в базе приемнике


Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент();
//Формируем ссылку источника в базе приемнике


СсылкаИсточник = СоединениеCOM.XMLЗначение(Сом_Тип, XMLСтрока(Док.Ссылка));
//Устанавливаем УИД источника для нового документа в базе приемнике


Требование.УстановитьСсылкуНового(СсылкаИсточник);
   VladZ
 
12 - 19.07.21 - 10:04
(3) +500!

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.