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

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

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 7.7 _ SQL таблицы и запись в них данных из 1с

Автор: liksoft 20.12.09, 23:08

повторюсь вопросом заданным на уаклабе, поскольку ответа никто не дал.

Все еще мучаюсь с Universale, у него таблицы с данными в SQL server, моя же задача выгрузить данные с 1с, все вроде прекрасно, но как быть со связанными полями, не совсем понятно. более конкретно, есть таблица Depts с индексированным полем NDep в котором содержится номер отдела, записываю туда без проблем, и есть таблица DeptsItem и двумя индексированными полями NDep и Code и кучей прочих полей, которая содержит данные о товарах в отделах, т.е. значение NDep должно быть равно номеру отдела.
Пытаюсь в нее записать данные

INSERT INTO DeptItems (NDep,Code,Name,Cen,Dep,Grp,Tax,Kol,FreeCen,FracKol,WatchKol,Quote,DiscType,Sale
d,Modified,Deleted,Verified,Online,Term,KeepDays,ServDays,PC omm) VALUES ('1',4840526001169,'"Домашнее Вино" ',30.9,'1','1','1','5','0','0','255','','','','','','','1','','','','')

но нарываюсь на

Violation of PRIMARY KEY constraint 'PK_DeptItems'. Cannot insert duplicate key in object 'DeptItems'.
The statement has been terminated.

я все понимаю, но выхода не вижу

описание, сам Universale здеся (http://rapidshare.com/files/322660806/universale-full.rar.html), 130 метров, если кто пожелает помочь

Автор: World1С 21.12.09, 8:20

Могу предположить: попробуй не заполнять значение поля NDep.

Если перевод ошибки верный: Не может вставить двойной ключ в объект ''DeptItems''

ИМХО: Эти таблицы (Depts DeptsItem) связаны, наверное, по ключевому полю NDep. И поэтому таблицу Depts не заполняй.

Автор: Кузьмич 21.12.09, 8:46

видимо запись с уникальным ключом с номером "1" уже существует.
Ты поле NDep не указывай. И вообще посмотри в этой таблице уникальные поля какие и их не указывай вообще. это для начала...

Автор: Fynjy 21.12.09, 9:14

Нужно select ом получить максимальное значение индексируемого поля, потом делать insert.

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