УникальныйИдентификатор в запросе #589423


#0 by ezmemo
Программно можно добраться до уникального идентификатора так   А можно ли получить его в запросе SQL ?
#1 by andrewks
#2 by ezmemo
Имелось ввиду в SQL запросе. Это нужно при репликации с другой базой(не 1С). По номеру и времени не предлагать, т.к. они могут изменится, а GUID не меняется. нужно проверить есть ли документ с GUID="b2d33b65-7a92-11d9-b797-505054503030" в базе. Или это решается только добавлением в документы своих полей и последующее их использование?
#3 by andrewks
т.е. у тебя будет запрос к СУБД не из 1с, так?
#4 by Rie
Поле _IDRRef
#5 by Sammo
Это если выбирать из родной скулевской таблицы.
#6 by ezmemo
Тогда другой вопрос. Как узнать название таблицы РегистрБухгалтерии.Хозрасчетный? Конфигурация БП 2.0.27.10
#7 by Rie
См. справку по ПолучитьСтруктуруХраненияБазыДанных
#8 by ezmemo
Спасибо. Я правильно понял, что средствами 1С получить ИЗ SQL запроса нельзя?
#9 by Мыш
Можно. Через СОМ. :)
#10 by ezmemo
Через COM в SQL запросе?
#11 by Мыш
Язык запросов 1С не предоставляет доступа к полю _IDRRef, известному также как "Уникальный идентификатор". Через скульный запрос данное поле получить можно. В 1С создаем СОМ-коннектор к серверу баз данных. Для этого потребуется знать адрес сервера/имя сервера/имя пользователя/пароль/имя бд. Выполняем запрос, получаем результат. Короче, мечта проктолога. Потому и смайлик.
#12 by rs_trade
АДО, какой нафиг COM
#13 by Rie
Можешь в самом запросе средствами SQL преобразовать binary в varchar. А потом из полученную строку средствами 1С составить УникальныйИдентификатор. Только не могу понять - зачем тебе это надо?
#14 by Мыш
Что, такая большая разница? :) > Microsoft's ActiveX Data Objects (ADO) is a set of Component Object Model (COM) objects for accessing data sources.
#15 by rs_trade
А можно глянуть пример прямого запроса к базе 1С через COM соединение?
#16 by ezmemo
>>Можешь в самом запросе средствами SQL преобразовать binary в varchar. Вот тут можно по-подробней. Как получить  binari в SQL запросе? из "ссылка"?
#17 by ezmemo
Я так понимаю, что люди советую  "чисто теоретически". Т.к. через COM точно такие же запросы как и в 1С. Через ADO Все понятно, но напрямую бы лезть в базу не хотелось бы.
#18 by Explorer1c
А репликация у тебя через 1ску настраивается?
#19 by ezmemo
Нет Внешняя база     Ключем репликации и планируется брать UID.
#20 by rs_trade
реквизит заведи с уидом и не парься
#21 by Rie
Например, select substring(sys.fn_sqlvarbasetostr(_IDRRef),3,32) from _Reference102
#22 by Rie
+ _IDRRef имеет тип binary - возможно, для внешней базы можно просто его взять и не париться.
#23 by ezmemo
select substring(sys.fn_sqlvarbasetostr(_IDRRef),3,32) from _Reference102 Это запрос SQL, но это не запрос 1С SQL.
#24 by ezmemo
Возможно, что новый реквизит будет решением проблемы. Главное, чтобы он не пропал при очередном обновлении конфигурации/платформы.
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям