Имя: Пароль:
1C
1С v8
Запись во внешние источники данных
0 Arutynov
 
29.08.16
13:51
Имеется таблица на SQL и подключена она к 1с как внешний источник. Необходимо из внешней обработки записать в таблицу данные. Попробовал так:

&НаСервере
Процедура Команда1НаСервере()
    Данные=ВнешниеИсточникиДанных.ТаблицаSQL.Таблицы.dbo_eanuidnom.СоздатьОбъект();
    Данные.code_ut=422;
    Данные.ean=Данные.code_ut.ean;
    Данные.guid=22234;
    Данные.Записать();
КонецПроцедуры

&НаКлиенте
Процедура Команда1(Команда)
    Команда1НаСервере();
КонецПроцедуры


Выдает ошибку!
по причине:
Ошибка внешней базы данных:
ошибка при выполнении запроса
по причине:
Ошибка ODBC. SQLSTATE: 23000
Номер ошибки: 547
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Конфликт инструкции INSERT с ограничением FOREIGN KEY "FK_eanuidnom_nomenklatura". Конфликт произошел в базе данных "SCAN_SKLAD", таблица "dbo.nomenklatura", column 'Code'.
Ошибка ODBC. SQLSTATE: 01000
Номер ошибки: 3621
Описание: [Microsoft][ODBC SQL Server Driver][SQL Server]Выполнение данной инструкции было прервано.



Что делаю не так?
1 igork1966
 
29.08.16
13:53
(0) "Что делаю не так?"
поле 'Code' не заполняешь?
2 Arutynov
 
29.08.16
13:58
В таблице вроде нету такого поля!
3 sapphire
 
29.08.16
13:58
(0)
Ошибка связана с тем, что у вас вводится значиние которое отсуствует в связанной таблице (на которое указывает внешний ключ). Т.е. одному из полей сушности назначается неверное значение. Вам надо или задать его правильно или снять ограничение внешнего ключа с таблицы.
4 Garykom
 
гуру
29.08.16
14:03
таблица "dbo.nomenklatura", column 'Code'.
5 Garykom
 
гуру
29.08.16
14:06
(4) Скорее всего "dbo.eanuidnom.code_ut" должно быть равно "dbo.nomenklatura.Code",
т.н. нельзя записывать ШК пока связанная запись в номенклатуре с таким же кодом не существует.
6 Arutynov
 
29.08.16
14:12
Большое спасибо все заработало!