Добрый день, уважаемые Знатоки! Надеюсь на вашу помощь!
Передо мной поставили задачу связать две базы данных через ADO. Первая база это родная 1С 8.1 а вторая «самописная» MS SQL. Я в 1С создал справочник Номенклатуры, посмотрел через SQL Server Management Studio на создавшуюся таблицу, с полями:
Ссылки (_IDRRef) типа binary(16)
_Code типа nchar(9)
_Description типа nvarchar(25)
Создал в сторонней базе данных MS SQL таблицу с теми же полями. Хочу разобраться как мне записать в стороннюю базу ссылку на объект справочника, а затем чтобы ее можно было обратно считать.
Запрос = Новый Запрос();
Запрос.Текст="ВЫБРАТЬ
| Номенклатура.Ссылка,
| Номенклатура.Код
|ИЗ
| Справочник.Номенклатура КАК Номенклатура";
ЗапросТекущий=Запрос.Выполнить();
ВыбТек = ЗапросТекущий.Выбрать();
ВыбТек.Следующий();
Connection = Новый COMОбъект("ADODB.Connection");
Connection.ConnectionTimeOut =600;
Connection.CursorLocation = 3;
Connection.Open("Provider=SQLOLEDB;Password=955938;Data Source=andrey;Persist Security Info=True;User ID=user_1c;Initial Catalog=sait");
Command = Новый COMОбъект("ADODB.Command");
Command.ActiveConnection = Connection;
Command.CommandText ="INSERT INTO Table_1 (Code) VALUES ('" + ВыбТек.Ссылка + "')";
Command.CommandType = 1;
RecordSet = Новый ComОбъект("ADODB.RecordSet");
RecordSet.CursorType = 3;
RecordSet.LockType = 2;
RecordSet = Command.Execute();
При запуске выдается ошибка.
Implicit conversion from data type varchar to binary is not allowed. Use the CONVERT function to run this query.
Понятно, что тип ссылки нужно преобразовать,. Но не понятно как его нужно преобразовать и при обратном считывании в 1с его снова сделать ссылкой.
Конечно, можно обойтись другими реквизитами: Номером, Наименованием и уже потом по ним искать в справочнике ссылку. Но хотелось, бы научиться преобразовывать саму ссылку.