Имя: Пароль:
1C
 
Внешние источники - MS SQL
,
0 DrLekter
 
13.02.17
10:04
Делаю выгрузку во внешнюю таблицу через ВнешнийИсточникДанных.
Использую следующие методы:

НовыйОбъект = ВнешнийИсточник.Таблицы.dbo_CUSTOMERS.СоздатьОбъект();
            НовыйОбъект.<Поле1> = ....
.....
            НовыйОбъект.Записать();

При первом проходе все ОК, а как только нужно изменить существующую запись, вываливает ошибку нарушения уникальности PRIMARY KEY. То есть  НовыйОбъект - он действительно новый, а не перезапись существующего. В методе Записать() у НабораЗаписей есть параметр "замещать", у объектных таблиц такого нету. НаборЗаписей с объектной таблицей не работает. Я чего-то не дочитал в СП? Не нашел там способов менять объекты ("Прочитать()" перед заполнением пробовал).
1 Тихий омут
 
13.02.17
10:07
имхо лучше через ado такие вещи делать. во всяком случае, там ты всегда будешь знать, что происходит, а не телепатию развивать в направлении фантазии разработчиков платформы.
2 DrLekter
 
13.02.17
10:38
Разобрался. Объектные данные нельзя редактировать. Если нужно отредактировать существующую запись в объектной таблице, нужно сначала её удалить, затем создать заново. *Рукалицо*, конечно, но для моей цели этого достаточно.
3 HardBall
 
13.02.17
10:45
(0) НайтиПоПолю(), Получить(), Записать() не канает?
4 DrLekter
 
13.02.17
12:10
Пользуюсь именно НайтиПоПолю. Наверное, проканает, только не Получить(), а ПолучитьОбъект(). Но мне как бы все равно в данном случае. Как в анекдоте, "сведём задачу к предыдущей" )