Имя: Пароль:
1C
1С v8
УникальныйИдентификатор в запросе
0 ezmemo
 
13.01.12
10:14
Программно можно добраться до уникального идентификатора так
 
UID = Выборка.Ссылка.УникальныйИдентификатор();

А можно ли получить его в запросе SQL ?
1 andrewks
 
13.01.12
10:15
2 ezmemo
 
13.01.12
10:25
Имелось ввиду в SQL запросе.

Это нужно при репликации с другой базой(не 1С).
По номеру и времени не предлагать, т.к. они могут изменится, а GUID не меняется.

нужно проверить есть ли документ с
GUID="b2d33b65-7a92-11d9-b797-505054503030" в базе.

Или это решается только добавлением в документы своих полей и последующее их использование?
3 andrewks
 
13.01.12
10:26
(2) т.е. у тебя будет запрос к СУБД не из 1с, так?
4 Rie
 
13.01.12
10:27
(2) Поле _IDRRef
5 Sammo
 
13.01.12
10:39
(4) Это если выбирать из родной скулевской таблицы.
6 ezmemo
 
13.01.12
10:42
Тогда другой вопрос.
Как узнать название таблицы РегистрБухгалтерии.Хозрасчетный?

Конфигурация БП 2.0.27.10
7 Rie
 
13.01.12
10:47
(6) См. справку по ПолучитьСтруктуруХраненияБазыДанных()
8 ezmemo
 
13.01.12
14:09
(7) Спасибо.

Я правильно понял, что средствами 1С получить ИЗ SQL запроса нельзя?
9 Мыш
 
13.01.12
14:18
(8) Можно. Через СОМ. :)
10 ezmemo
 
13.01.12
14:27
(9) Через COM в SQL запросе?
11 Мыш
 
13.01.12
14:36
(10) Язык запросов 1С не предоставляет доступа к полю _IDRRef, известному также как "Уникальный идентификатор". Через скульный запрос данное поле получить можно. В 1С создаем СОМ-коннектор к серверу баз данных. Для этого потребуется знать адрес сервера/имя сервера/имя пользователя/пароль/имя бд. Выполняем запрос, получаем результат. Короче, мечта проктолога. Потому и смайлик.
12 rs_trade
 
13.01.12
14:39
АДО, какой нафиг COM
13 Rie
 
13.01.12
14:42
(8) Можешь в самом запросе средствами SQL преобразовать binary в varchar. А потом из полученную строку средствами 1С составить УникальныйИдентификатор.
Только не могу понять - зачем тебе это надо?
14 Мыш
 
13.01.12
14:45
(12) Что, такая большая разница? :)
> Microsoft's ActiveX Data Objects (ADO) is a set of Component Object Model (COM) objects for accessing data sources.
15 rs_trade
 
13.01.12
15:14
(14) А можно глянуть пример прямого запроса к базе 1С через COM соединение?
16 ezmemo
 
13.01.12
15:29
(13)
>>Можешь в самом запросе средствами SQL преобразовать binary в varchar.

Вот тут можно по-подробней.
Как получить  binari в SQL запросе? из "ссылка"?
17 ezmemo
 
13.01.12
15:31
(14) Я так понимаю, что люди советую  "чисто теоретически".
Т.к. через COM точно такие же запросы как и в 1С.

(12) Через ADO Все понятно, но напрямую бы лезть в базу не хотелось бы.
18 Explorer1c
 
13.01.12
15:37
(17)А репликация у тебя через 1ску настраивается?
19 ezmemo
 
13.01.12
15:48
(18) Нет Внешняя база
    Ключем репликации и планируется брать UID.
20 rs_trade
 
13.01.12
15:52
(19) реквизит заведи с уидом и не парься
21 Rie
 
13.01.12
16:03
(16) Например,
select substring(sys.fn_sqlvarbasetostr(_IDRRef),3,32) from _Reference102
22 Rie
 
13.01.12
16:04
+(21) _IDRRef имеет тип binary(16) - возможно, для внешней базы можно просто его взять и не париться.
23 ezmemo
 
13.01.12
16:43
select substring(sys.fn_sqlvarbasetostr(_IDRRef),3,32) from _Reference102

Это запрос SQL, но это не запрос 1С SQL.
24 ezmemo
 
13.01.12
16:45
Возможно, что новый реквизит будет решением проблемы.
Главное, чтобы он не пропал при очередном обновлении конфигурации/платформы.
2 + 2 = 3.9999999999999999999999999999999...