Имя: Пароль:
1C
1С v8
Можно ли получить ГУИД элемента справочника напрямую из БД
0 Начинаю
 
11.06.13
10:59
Можно ли получить ГУИД элемента справочника напрямую из БД через внешние источники данных (или через внешюю программу на C#)? Т.е. значение ячейки _IDRRef (массив байтов) преобразовать в GUID?
1 Beduin
 
11.06.13
11:00
УникальныйИдентификатор()
2 Начинаю
 
11.06.13
11:03
да (1)
3 Maxus43
 
11.06.13
11:03
можно, но противоречит лицензионному соглашению 1с.
4 Defender aka LINN
 
11.06.13
11:04
(0) cast(_IDRRef as uniqueidentifier)
5 МихаилМ
 
11.06.13
11:06
(0)
всего путаете GUID и его представление. у 1с и Ms разные представления 8 байт
на этом форуме есть примеры -> в поиск
6 Матадор
 
11.06.13
11:06
select Cast(cast(_IDRRef as uniqueidentifier) as char(36))
7 Начинаю
 
11.06.13
11:08
(6) попробую
8 Начинаю
 
11.06.13
11:45
(6) УникальныйИдентификатор() в 1С не совпадает с Cast(cast(_IDRRef as uniqueidentifier) as char(36)) в С#
9 МихаилМ
 
11.06.13
11:46
(8)
Вам в (5) на это было указано.
10 Начинаю
 
11.06.13
12:22
(5) ничего не нашел
11 Jaap Vduul
 
11.06.13
12:42
(8)
В 1цэ части гуида местами переставлены.
Где-то у меня была функция на t-sql для такой модификации...
12 Матадор
 
11.06.13
12:43
(8)
Функция Guid1S(GuidSql) Экспорт
   Возврат Нрег(Сред(GuidSql,29,8)+Сред(GuidSql,24,5)+Сред(GuidSql,19,5)+"-"+Сред(GuidSql,7,2)+Сред(GuidSql,5,2)+
   "-"+Сред(GuidSql,3,2)+Сред(GuidSql,1,2)+Сред(GuidSql,12,2)+Сред(GuidSql,10,2)+Сред(GuidSql,17,2)+Сред(GuidSql,15,2));
КонецФункции
13 Начинаю
 
11.06.13
12:53
(12) то что надо! спасибо Матадор!
14 Jaap Vduul
 
11.06.13
12:58
+11
Вот, держи, на всякий случай:
create function getStringUUID (@binaryUUID binary(16))
returns char(36)
as
begin
 declare @buffer char(32)
 select @buffer = replace(convert(char(36),cast(@binaryUUID as uniqueidentifier)), '-', '')
 
 return right(@buffer, 8) + '-' +
   substring(@buffer, 21, 4) + '-' +
   substring(@buffer, 17, 4) + '-' +
   substring(@buffer, 7, 2) +
   substring(@buffer, 5, 2) + '-' +
   left(@buffer, 4) +
   substring(@buffer, 11, 2) +
   substring(@buffer, 9, 2) +
   substring(@buffer, 13, 4)
end
15 Начинаю
 
11.06.13
13:01
(14) благодарю
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.