Com соединение + запрос

1. user1008893 13.12.22 19:47 Сейчас в теме
Создаю com соединение. Затем делаю запрос.
В итоге, когда преобразу.ю в ТЗ. То получаю "" Объект не найден..... ", но не по всей получаемой информации, а по некоторым строкам. Если посмотреть в запрашиваемой базе, то там всё нормально, объект не удалён. Никак не могу понять. Нужно это для переноса данных с одной базы в другую. Подскажите пожалуйста.

РезультатКомНоменГруппы = ЗапросКом.Выполнить().Выгрузить();
		   стррезультат=КомСоединение.ЗначениеВСтрокуВнутр(РезультатКомНоменГруппы);
	ДанныеВнешнейБазы=ЗначениеИзстрокиВнутр(стррезультат);

		//Пока РезультатКомНоменГруппы.Следующий() Цикл
			Для каждого стр из ДанныеВнешнейБазы цикл
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. spacecraft 13.12.22 19:56 Сейчас в теме
(1) э... ссылки выгрузили в ТЗ? Конечно данных по этим ссылкам нет в текущей базе.
3. user1008893 13.12.22 19:58 Сейчас в теме
А почему тогда на другие строки есть информация? И при выгрузке всё нормально заполняется.
4. spacecraft 13.12.22 20:00 Сейчас в теме
(3) посмотрите внимательно. Информация есть на примитивные типы данных, которые передаются без проблем.
5. user1008893 13.12.22 20:05 Сейчас в теме
(4) это я Вам показала информацию, только по одной номенклатуре. А по другой всё выгружается. И ещё он пишет объект не найден, хотя точно такой же есть в базе, которая получает информацию.

Может есть ещё какой нибудь способ получить информацию с идентичной базы.
6. spacecraft 13.12.22 20:56 Сейчас в теме
(5) обычно передается УИД ссылки. По нему в принимающей базе и производится поиск. Если не найден, то создается новый элемент справочника с таким же УИД.

Ссылка же, помимо УИД (в бинарном виде) содержит и идентификатор самого объекта метаданных. Причем этот идентификатор означает последовательный номер добавление в конфигурацию самого объекта метаданных. Следовательно он будет соответствовать разным базам, если только одна из них полный клон второй.
Обычно же, на это не стоит ориентироваться. Даже если в обе базы были добавлены такие же объекты метаданных, то не факт, что они имеют одинаковые идентификаторы.

Ну и не маловажно то, как сохранять объект в приемнике. Данные могут быть одинаковые, но с разным УИД. Соответственно по УИД их не сопоставить.
user1008893; Vitaly1C8; +2 Ответить
7. user1008893 14.12.22 06:43 Сейчас в теме
(6)у нас база самописная и в принципе нам достаточно сравнить по коду. Вот только данные получить не могу, т.к. объект не найден.
9. umev 14.12.22 09:37 Сейчас в теме
(7) Ну так и получай в запросе не ссылку, а код.
user1008893; +1 Ответить
10. spacecraft 14.12.22 10:02 Сейчас в теме
(7) понимаете, ссылка это не объект. По карточке в библиотеке невозможно прочитать книгу.
Если такой элемент не загружался, то получаете данные самого объекта. Снова же необходима сериализация ссылочных типов.
8. user1008893 14.12.22 07:54 Сейчас в теме
(6)Даже если сделать так как вы пишите,то как получить полную информацию о этом объекте(который не найден)?
11. spacecraft 14.12.22 10:08 Сейчас в теме
(8) передачей сериализованных данных самого объекта.
Если объект уже передавался и сохранен в приемнике, то осуществляете поиск его. Критерий поиска определяете сами. Как сопоставляли объекты, по УИД, или коду, или еще как. Вот уже полученную ссылку подставляете в нужных местах принимаемых данных.
12. soft_wind 14.12.22 10:20 Сейчас в теме
(1)Зачем вам эти СОМ запросы? используйте стандартный метод конвертации данных между разными базами!
а если базы индентичные, то и вообще обмен можно сделать с помощью универсальной обработки ВыгрузкаЗагрузкаДанныхXML
(вообще без правил конвертации)
user1008893; +1 Ответить
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот