|
Из 8 получить ГУИД 7 |
☑ |
0
lEvGl
гуру
13.03.13
✎
08:50
|
ну поделитесь пжлст кодом получения ГУИДа 7-шной базы из 8-ки через СОМ. 8 - 8 проблем нет, а с 7 никогда не работал, даже не знаю как там ссылку получить, тем более через внешнее соединение, чем оно отличается от подключения к 8-шной базе?
|
|
1
Галахад
гуру
13.03.13
✎
08:51
|
А зачем?
|
|
2
zak555
13.03.13
✎
08:52
|
так его нет
|
|
3
zak555
13.03.13
✎
08:52
|
=)
|
|
4
mikecool
13.03.13
✎
08:52
|
Лев(Прав(ЗначениеВСтрокуВнутр(Тута объект),11),9)
|
|
5
ДенисЧ
13.03.13
✎
08:54
|
в 77 нет ГУИДа
|
|
6
lEvGl
гуру
13.03.13
✎
09:43
|
(1) надо связать справочники двух баз
(2) как, в 7-ке у ссылки нет ГУИДа?
(5) это грустно, видимо связку только по коду?
|
|
7
Kyon8
13.03.13
✎
09:52
|
МетаДата = СоздатьОбъект("MetaDataWork"); // 1C++
Значение = МетаДата.ЗначениеВДлиннуюСтрокуБД(Источник);
(4) Будет разное значение в зависимости от типа (Справочник или Справочник.Блаблабла)
|
|
8
ProxyInspector
13.03.13
✎
09:56
|
Можно и по другому.
Самый простой вариант - CRC32(ЗначениеВСтрокуВнутр(Тута объект)), а не достающие символы до GUID просто добавить.
Можно из ЗначениеВСтрокуВнутр() убрать не правильные символы, тогда можно будет получать ЗначениеВСтрокуВнутр <-> GUID
|
|
9
Kyon8
13.03.13
✎
10:02
|
(7) Хотя не, вариант (4) тоже работает. Но через MetaDataWork можно потом обратно конвертнуть + оно выдаёт ID_таблицы+GUID.
|
|
10
cw014
13.03.13
✎
10:04
|
(6) В семерке роль ГУИДА выполняет 36-разрядное значение идентификатора
|
|
11
Kyon8
13.03.13
✎
10:05
|
Вот тестовый пример запустил:
Процедура Сформировать()
МетаДата = СоздатьОбъект("MetaDataWork");
Сообщить("==================");
Сообщить("Ном = """ + МетаДата.ЗначениеВДлиннуюСтрокуБД(ВыбНом) + """");
Сообщить("Спр = """ + МетаДата.ЗначениеВДлиннуюСтрокуБД(ВыбСпр) + """");
Сообщить("Ном = """ + ЗначениеВСтрокуВнутр(ВыбНом) + """");
Сообщить("Спр = """ + ЗначениеВСтрокуВнутр(ВыбСпр) + """");
Сообщить("Лев(Прав... Ном...) = """ + Лев(Прав(ЗначениеВСтрокуВнутр(ВыбНом),11),9) + """");
Сообщить("Лев(Прав... Спр...) = """ + Лев(Прав(ЗначениеВСтрокуВнутр(ВыбСпр),11),9) + """");
КонецПроцедуры
==================
Ном = " 2C 1JCNT"
Спр = " 2C 1JCNT"
Ном = "{"B","0","0","84","0","0"," 55CNT"}"
Спр = "{"B","0","0","0","0","0"," 84 55CNT"}"
Лев(Прав... Ном...) = " 55CNT"
Лев(Прав... Спр...) = " 55CNT"
|
|
12
lEvGl
гуру
13.03.13
✎
10:37
|
ну понял, попробую через ЗначениеВСтроку()....
|
|
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший