|
Загрузка документов через Com | ☑ | ||
---|---|---|---|---|
0
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 |
|||
4
msv999
19.07.21
✎
07:14
|
(3) Как тогда загрузить документы? Выгружать в список и потом загружать?
|
|||
5
msv999
19.07.21
✎
07:15
|
У меня вопрос не то, чтобы к документам или регистрам, это я так. А не загружает, что делаю не так
|
|||
6
Обработка
19.07.21
✎
07:19
|
(0) Если хоть чуть чуть знаешь КД2 юзай КД2
Если не знаешь КД2 тогда выгрузи в таблицу и загрузи с таблицы. Ну в конце концов можно в текст или в ексель итп. И самое главное Отладкой пользоваться умеешь? Если нет о в первую очередь научись элементарным правилам отладки кода. Это не сложно на это уйдет 10-15 минут. |
|||
7
ДенисЧ
19.07.21
✎
07:30
|
(5) "не загружает, что делаю не так"
Не раскарываешь тему сисек зачёркнуто ошибок и результатов прохода отладчиком. |
|||
8
Chai Nic
19.07.21
✎
08:01
|
Главное, что нужно уяснить: любой объектовый тип через COM это не он, а его COM-отображение, что может принести внезапные сюрпризы. Поэтому при возможности через COM лучше работать исключительно через строковые типы. Та же таблица результата запроса должна содержать только примитивные типы, а передаваться - через сериализацию "там" и десериализацию "тут".
|
|||
9
Обработка
19.07.21
✎
08:20
|
В запросе Выборка.Организация должно быть строковой а не ссылочной Выборка.Организация.Наименование!!!
|
|||
10
nodrama
19.07.21
✎
09:54
|
(3) Человек через старый КОМ не может загрузить. А ты ему предлагаешь сделать через ws, которого он скорее всего даже не видел)
|
|||
11
smpulan
19.07.21
✎
09:59
|
Пример создания документа в базе приемнике с GUID из базы источника.
//Получаем тип в базе приемнике Сом_Тип = СоединениеCOM.NewObject("ОписаниеТипов", "ДокументСсылка.ТребованиеНакладная").Типы().Получить(0); //Создаем новый документ в базе приемнике Требование = СоединениеCOM.Документы.ТребованиеНакладная.СоздатьДокумент(); //Формируем ссылку источника в базе приемнике СсылкаИсточник = СоединениеCOM.XMLЗначение(Сом_Тип, XMLСтрока(Док.Ссылка)); //Устанавливаем УИД источника для нового документа в базе приемнике Требование.УстановитьСсылкуНового(СсылкаИсточник); |
|||
12
VladZ
19.07.21
✎
10:04
|
(3) +500!
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |