Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 01:18

Преобразования типа данных – Ссылка

Автор t955938, 24 фев 2012, 12:36

0 Пользователей и 1 гость просматривают эту тему.

t955938

Добрый день, уважаемые Знатоки! Надеюсь на вашу помощь!
Передо мной поставили задачу связать две базы данных через 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с его снова сделать ссылкой.

t955938

Я бы хотел уточнить вопрос. В сторонней базе данных мне ссылку использовать не надо, мне нужно ее только сохранить в таблице. А лишь после возвращения в базу 1с, мне нужно будет использовать эту ссылку. Поэтому, если это легче, то в качестве ключевого поля таблицы можно сделать поле номер справочника, а ссылку хранить в любом виде (в этой таблице). Но я не знаю как?

t955938

Спасибо, всем откликнувшимся. Подведем итог.
Сохранить ссылку в сторонней базе невозможно, да и не надо. Лучше идентифицировать элементы справочников  по коду, наименованию.
Желаю Удачи!!! Спасибо форуму.

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск