|
УникальныйИдентификатор в запросе | ☑ | ||
---|---|---|---|---|
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
|
Возможно, что новый реквизит будет решением проблемы.
Главное, чтобы он не пропал при очередном обновлении конфигурации/платформы. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |