Имя: Пароль:
1C
1С v8
Из 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
ну понял, попробую через ЗначениеВСтроку()....
Пользователь не знает, чего он хочет, пока не увидит то, что он получил. Эдвард Йодан