GUID конвертер

Опубликовал Владимир Абакумов (knight2007) в раздел Администрирование - Сервисные утилиты

Преобразование 1С GUID в GUID Microsoft и наоборот

Ни для кого не секрет, что 1С 8 интерпретирует стандартный GUID в свой формат. Особенно при потере какого-либо документа выдается не нормальный GUID документа, а его внутреннее представление в 1С.

Данная утилита помогает конвертировать GUID, не загружая саму 1С.

Скачать файлы

Наименование Файл Версия Размер
GUID конвертер, исполняемый
.zip 458,01Kb
07.08.10
102
.zip 458,01Kb 102 Скачать
GUID конвертер, исходник на Lazarus
.zip 195,02Kb
07.08.10
17
.zip 195,02Kb 17 Скачать

См. также

Добавить вознаграждение
Комментарии
1. Андрей Григорьев (Borisych) 501 11.08.10 08:39 Сейчас в теме
Для чего это используется?
2. Владимир Абакумов (knight2007) 199 11.08.10 09:02 Сейчас в теме
(1) Мне необходимо было отлавливать документы по ссылкам. GIUD который генерируется отличается от GUID хранящегося в базе 1С.
3. Вадим Ляхин (lvadim) 21 16.08.10 11:42 Сейчас в теме
Можно так :)

// Преобразует ГУИД из формата 1С в формат SQL
Функция ГУИДдляSQL(Строка) Экспорт

Если ПустаяСтрока(Строка) Тогда
Возврат Строка;
КонецЕсли;

Результат = "";
Строка = СтрЗаменить(СтрЗаменить(СтрЗаменить(Строка, "-",""), "{", ""), "}", "");
СтрокаПозиций = "23211917272531291315091101030507";
Для к = 0 По 15 Цикл
ИсхПозиция = Число(Сред(СтрокаПозиций, к*2+1,2));
Результат = Результат + Сред(Строка, ИсхПозиция, 2);
КонецЦикла;

Возврат Врег(Сред(Результат, 1, 8)+"-"+Сред(Результат, 9, 4)+"-"+Сред(Результат, 13, 4)+"-"+Сред(Результат, 17, 4)+"-"+Сред(Результат, 21, 12));

КонецФункции // ГУИДдляSQL()

// Преобразует ГУИД из формата SQL в формат 1С
Функция ГУИДдля1С(Строка) Экспорт
Если ПустаяСтрока(Строка) Тогда
Возврат Строка;
КонецЕсли;
Результат = "";
Строка = СтрЗаменить(СтрЗаменить(СтрЗаменить(Строка, "-",""), "{", ""), "}", "");
СтрокаПозиций = "25272931212317190705030111091513";
Для к = 0 По 15 Цикл
ИсхПозиция = Число(Сред(СтрокаПозиций, к*2+1,2));
Результат = Результат + Сред(Строка, ИсхПозиция, 2);
КонецЦикла;
Возврат Врег(Сред(Результат, 1, 8)+"-"+Сред(Результат, 9, 4)+"-"+Сред(Результат, 13, 4)+"-"+Сред(Результат, 17, 4)+"-"+Сред(Результат, 21, 12));
КонецФункции
paveldv92; +1 Ответить
4. Igor Александрович (igor_1c) 12 13.10.11 13:14 Сейчас в теме
5. arjuna (arjuna) 16.10.12 00:00 Сейчас в теме
6. Владимир Абакумов (knight2007) 199 16.10.12 08:25 Сейчас в теме
(4) igor_1c, это про 1С или про методы, помогающие ковертировать UID?
7. Владимир Абакумов (knight2007) 199 16.10.12 08:25 Сейчас в теме
(5) arjuna, спасибо за развернутый комментарий...
8. Виталий Быков (sick_russian) 04.11.13 08:30 Сейчас в теме
можно было попроще) надо же просто кусочки ключа в определенном порядке переставить)

гуид = Строка(докссылка.УникальныйИдентификатор());
Для й = 1 по СтрЧислоВхождений(гуид,"-") Цикл
гуид = СтрЗаменить(гуид,"-", Символы.ПС);
КонецЦикла;
скульныйгуид = "0x" + СтрПолучитьСтроку(гуид,4) + СтрПолучитьСтроку(гуид,5) + СтрПолучитьСтроку(гуид,3) + СтрПолучитьСтроку(гуид,2) + СтрПолучитьСтроку(гуид,1);

Сообщить(скульныйгуид);
9. Владимир Абакумов (knight2007) 199 04.11.13 11:17 Сейчас в теме
(8) sick_russian,
да можно. Вариантов кучу уже предложили.
Но нужно было не загружая 1С :)
10. Юрий (hakim-aka) 25.12.14 15:30 Сейчас в теме
В sql гуид имеет такой вид 0x91300bd4a49e7db34be9ba7f2c1bf3ee, всегда начинается с 0x . А эти функции ни чего такого не делают. И кроме того они возвращают нечто с дефисами, а в моем примере дефиса нет. Объясните пожалуйста как искать гуид в 1с есль есть гуид sql вида 0x91300bd4a49e7db34be9ba7f2c1bf3ee?
11. Сергей Самошин (saiten) 211 25.12.14 15:34 Сейчас в теме