#6
by rs_trade
если просто взять гуид как 16-ричное число и убрать разделители, страшно представить какое там десятичное число получиться...
#15
by Гений 1С
меня только порядок тетрад беспокоит. Ну ладно, если все ок. то я включаю ее в свою библиотеку функций.
#19
by Гений 1С
Синхронизирую контакты с аутлук, в поле User4 контакта проставляю уникальный номер ссылки, соответствующей этому контакту в справочнике Контакты. Преобразовываю ГУИД в длину 25 символов по 36-ричной системе счисления, чтобы занимал 25, а не 32 символа, экономия таки.
#27
by Гений 1С
Тест выдает: 22345200-abe8-4f60-90c8-0d43c5f6c0f6 192 447 559 805 613 441 075 694 136 988 370 489 856 22345200-abe8-4f60-90c8-0d43c5f6c0f6 8KKJTDWBYFOY845G9L8ICSS8W 22345200-abe8-4f60-90c8-0d43c5f6c0f6 Короче, я только не уверен, что мне Злобный Мальчик дал правильный алгол для преобразования ГУИД в число, но если он правильный, то все пучком.
#28
by Гений 1С
Коллеги, на партнерском не могут мне помочь. Может вы подскажете: Написал алгоритм для перевода ГУИД в 16-ричный формат. Подскажите, коллеги, правильно или нет. Переводил ГУИД: "22345200-abe8-4f60-90c8-0d43c5f6c0f6" Получил шестнадцатичеричное число: 90C80D43C5F6C0F64F60ABE822345200
#29
by luns
Странное пристрастие к ГУИДам... что не ветка то про гуид... Наверное это потому что они длинные... ))))))))))
#31
by Гений 1С
Не фига он не ответил. У меня был конкретный вопрос - правильно ли я перевел число ГУИД в шестнадцатеричный формат. А он что ответил?
#33
by NcSteel
"Если представлять ГУИД как это делает 1С в строках <Объект не найден....>, то скомпоновал ты правильно." Краснов Денис.
#34
by Гений 1С
а если нет? меня интересует не как 1с переводит, а как правильно. Дайте мне ссылку на страницу в интернете, где написано: "Например, ГУИД такой-то в шестнадцатеричной форме пишется так".
#38
by Гений 1С
Блин, так неужели правильный ответ знает только БГ. Коллеги, кто снимет имидж "тупого 1сника"???
#40
by Гений 1С
Коллега, ну что вы такое говорите? ГУИД: "22345200-abe8-4f60-90c8-0d43c5f6c0f6" это вполне конкретное 128-битное число. Оно не может быть произвольным, т.к. по ГУИД формируется например CLSID OLE-объектов. Вот я и спрашиваю, это: ox90C80D43C5F6C0F64F60ABE822345200 или нет
#41
by bahmet
Спецом для тебя запустил скуль и написал: print cast(@a as varbinary) И вот какой ответ: 0xBB67BF402C745543ABB9DFF6A60BD701
#43
by Гений 1С
блин, эта тема освещена где-нибудь в интернете, или такой банальнейший вопрос остался за гранью освещения
#45
by Мой ник
ты рождён, чтобы задокументировать эту фишку и сделать внятное описание в интернете. А то наделали гуи, зачем не понятно, никто не знает как работает.
#48
by Гений 1С
нет, я просто тащусь. Никто не знает такой банальнейшей вещи, ладно я дебил... но другие-то
#50
by kot_bcc
Читаю себе, читаю. Сирожа, все дела. Тут бац, и ссылка на майкрософт. Ну, думаю, вот и гейтсу теперь Осипов снится будет. Потом уже перевел взгляд, увидел автора поста. Вы так не пугайте:) ЗЫ на : Вообще, такие вещи сперва стоит проверять. Аутлук хранит строки в UTF-16. Паршивая там экономия будет.
#52
by Гений 1С
к тому же с чего ты взял, что значения полей она хранит в UTF 16, возможно это текст хранится в этой кодировке
#55
by kot_bcc
Какие 14 байт? 16 байт GUID как GUID, и 50 байт на GUID как строку. Еще раз - какие 14 байт какой экономии?
#60
by Гений 1С
Как ты собираешься в аутлуке хранить GUID как GUID По сабжу меня интересовал порядок тетрад, чтобы преобразовать GUID в 16ричную форму, не надо умничать на пустом месте, буквоедство detected
#62
by kot_bcc
А догадаться слабо? Как 8 пар байт. Причем, в том же самом поле типа "Строка". И прежде чем кричать про нули - советую таки попробовать.
#64
by kot_bcc
:))))) Пытаемся представить, как будет выглядеть чудак, пытающийся позвонить по смартфону с 20000 контактов:)
#66
by H A D G E H O G s
Погодь, чего то я не въехал, Гений. Тебе же просто надо число из 16-ричной системы в 10-тичную перевести. И все!
#68
by Гений 1С
если я догадаюсь - я могу и ошибитьяс, а мне надо точно знать. Я этот код в библиотеку функций включаю
#72
by kot_bcc
Ладно. Говорю точнее. С точки зрения microsoft - гуид это 16 байт, которые можно представить также в виде 4 длинных слов (слева направо, индекс с 0) (т.н. "старое" представление), или в виде строки в нескольких вариантах, или в наборе из (длинное слово, короткое слово, короткое слово, 12 байт).
#74
by kot_bcc
Еще на Человек, ковыряющий 2000 контактов, смотрится примерно также, как человек с 20000 контактов. Качесвтенный переход, вообще говоря, несколько ниже, как я понимаю.
#75
by kot_bcc
+ Я таки продолжу. Вопрос про разнообразие видов строк представления GUID почти тривиален. В контексте 1С это либо вид "{ХХХХХХХХ-ХХХХ-ХХХХ-ХХХХХХХХХХХХ}", либо какой-либо пользовательский (например - в 36-ричной системе).
#76
by kot_bcc
+ Но менять систему исчисления имеет смысл только ради экономии (losless-сжатия). Причем, необходимо учитывать, что существуют более эффективные способы такого сжатия. Об одном из которых я и говорю. Он очень прост. Достаточно перейти от представления в виде строки к представлению в виде набора чисел.
#77
by kot_bcc
+ 1. В очепятка. "12 байт" -> "6 байт" 2. Совершенно необязательно следовать представлениям microsoft о группах в наборе GUID. Достаточно обеспечить взаимное преобразование. Что и было сделано (со строкой), например, в .
#78
by kot_bcc
+ Ну, и, собсно, пример losless без строки. Представим GUID как 8 коротких слов (по 16 бит). Такое представление тривиально хранится в строковых переменных с кодировкой UTF-16 (т.е. везде, практически): одно слово - один символ, всего 8 символов.
#79
by kot_bcc
Осталось только пробразовать группы символов (по 4 16-ричных символа на каждое слово) из "классического" строкового представления GUID в числа и обратно.
#80
by kot_bcc
Ему это число (128 бит в пределе) надо еще как-то засунуть в Outlook, в контакты. Да еще он хочет, чтобы покороче:)
#81
by kot_bcc
+ Здесь я вижу только один подводный камень. Все сказанное не проверялось на wince-девайсах. Если winmobile 5/6 - проблем с нулевыми символами быть не должно.
#82
by Гений 1С
Меня интересует вопрос академически, а не "лишь бы сделать", лишь бы сделать не вопрос. Меня интересует, в каком именно порядке должны идти в результирующее число тетрады из ГУИД. Но вы не парьтесь, на партнерке мне уже дали правильный ответ. По крайней мере в SQL и в функции JAVA guidtobyteArray результат одинаковый, значит можно считать его правильным.
#83
by bahmet
! выруби своего дятла и вруби гения, а потом кури пост + кури свою найденую ссылку на сайте мелкомягких...
#84
by Serg_1960
Кину ссылку на Вики - может поможет разобраться с типами GUID'ов и зачем "переставляют" группы
#85
by Гений 1С
Просто приведи пример. Хахаха. В этой статье строку: "Например, '22345200-abe8-4f60-90c8-0d43c5f6c0f6' соответствует шестнадцатеричному 128-битному числу 0x00523422E8AB604F90C80D43C5F6C0F6" написал я, по материалам разборки полетов с ГУИД на партнерке. Надеюсь, правильно.
#86
by Гений 1С
Написал функцию конвертации, провел тесты: ГУИД: 40bf67bb-742c-4355-abb9-dff6a60bd701 ГУИД числом: 249 104 320 812 803 032 337 390 685 874 299 852 545 ГУИД в шестнадцатеричной с/с: BB67BF402C745543ABB9DFF6A60BD701 ГУИД из шестнадцатеричной с/с обратно: 249 104 320 812 803 032 337 390 685 874 299 852 545 ГУИД: 22345200-abe8-4f60-90c8-0d43c5f6c0f6 ГУИД числом: 426 825 793 464 474 646 002 922 100 115 292 406 ГУИД в шестнадцатеричной с/с: 523422E8AB604F90C80D43C5F6C0F6 ГУИД из шестнадцатеричной с/с обратно: 426 825 793 464 474 646 002 922 100 115 292 406 Что забавно, функции конвертации числа в ГУИД и обратно оказались симметричными, т.е. практически идентичный код, наверное это как раз и говорит о том, что конвертация правильная: </pre>
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям
Похожие вопросы 1С
В этой группе 1С
- v8. Запрос по движению товаров на складе в разрезе партий
- Виртуальные таблицы регистра бухгалтерии
- ЗУП Табель, праздничные, ночные часы
- Как узнать Основание документа?
- Excel обрезает ноль при перекачке. Как бороться?
- Отладчик: искать предметы отладки на удаленном компьютере
- Вопрос по сканеру и scanopos
- Чтение файла Excel, без установленного офиса. Возможно?
- Как узнать количество записей в таблице Access?
- Как часто рекомендуется делать Shrink базы на SQL&
- А что под linux может конвертировать файлы PDF в doc или odt? Естественно бесплатно =
- отчет в несколько колонок на листе
- Удаленный доступ для техподдержки
- Картинка в строке поля ввода отображается только при начале редактирования
- v7: Документ-основание не записывает себя в глЗаказСтр(Заказ)
- Не срабатывает внешнее событие
- Как настроить удаленный доступ без открытия портов ?
- ПолучитьФормуНовогоЭлемента()
- Универсальный отчет
- Получение MD5 хеша строки