|
v7: UID объекта в 7.7 | ☑ | ||
---|---|---|---|---|
0
Алексей777
26.04.12
✎
13:02
|
Всем привет! Подскажите есть ли в 7.7 аналог метода объекта 1С 8 -УникальныйИдентификатор(). Знаю про метод ЗначениеВСтрокуВнутр. Это тоже самое?
|
|||
1
Злопчинский
26.04.12
✎
13:04
|
v7plus.dll - смотри СП
|
|||
2
Злопчинский
26.04.12
✎
13:05
|
(0) вот смотри. откуда 7.7-ик будет знать проо УникальныйИдентификатор() из снеговика? я конечно догадываюсь, что это такое - но не увере. Есои просто получить уникальный ГУИД - то см.(1), если ИД объекта - то немножко по другому...
|
|||
3
NS
26.04.12
✎
13:06
|
(0) Если тебе нужен уникальный код объекта - тогда гугли внутренний код.
|
|||
4
ДенисЧ
26.04.12
✎
13:08
|
не совсем. Но близко.
|
|||
5
Алексей777
26.04.12
✎
13:11
|
Спасибо :). Книга знаний: Получение GUID в 1С - вот нашел ссылочку, сейчас почитаем.
|
|||
6
ДенисЧ
26.04.12
✎
13:12
|
(5) уууууууу......
|
|||
7
fisher
26.04.12
✎
13:13
|
(4) +1
(0) Скажем так - значение, возвращаемое методом ЗначениеВСтрокуВнутр() содержит в том числе и UID, хоть и в несколько ином виде, нежели он хранится в БД. (5) Так тебе UID объекта нужен, и произвольный GUID в 7.7 получить? |
|||
8
fisher
26.04.12
✎
13:13
|
"или произвольный GUID в 7.7 получить?"
|
|||
9
Алексей777
26.04.12
✎
13:15
|
(8)нет просто нужен uid, получать новый не нужно :)
|
|||
10
Алексей777
26.04.12
✎
13:16
|
(7) т.е. метод ЗначениеВСтрокуВнутр() в принципе подходит?
|
|||
11
Алексей777
26.04.12
✎
13:17
|
(7)имею ввиду для уникальной идентификации объектов.
|
|||
12
ДенисЧ
26.04.12
✎
13:17
|
(10) MetaDataWork.ЗначениеВСамуюДлиннуюСтрокуБД() - даст тебе полный "uid"
|
|||
13
NS
26.04.12
✎
13:17
|
(10) Подходит, но с последующей обработкой.
|
|||
14
fisher
26.04.12
✎
13:17
|
(10) Да посмотри наконец на его значение и всё понятно станет. Это обычная строка, результат сериализации UID и доп-данных.
|
|||
15
NS
26.04.12
✎
13:19
|
Стр=ЗначениеВСтрокуВнутр(Объект);
СЗ=СоздатьОбъект("СписокЗначений"); СЗ.ИзСтрокиСРазделителями(Сред(Стр,2,СтрДлина(Стр)-2)); UID=формат(СЗ.ПолучитьЗначение(4),"Ч(0)5")+Формат(сокрлп(СЗ.ПолучитьЗначение(СЗ.РазмерСписка())),"Ч(0)9"); |
|||
16
NS
26.04.12
✎
13:29
|
Чтоб обратно получить документ по UID -
ВидДок = Строка(Число(Сред(UID,1,5))); КодДок = Строка(Число(Сред(UID,6,9))); КодДок = ДобавитьСправа(КодДок,СтрДлина(КодДок)+3," "); КодДок = ДобавитьСлева(КодДок,13," "); Список = СоздатьОбъект("СписокЗначений"); Список.ДобавитьЗначение("O"); // тип Список.ДобавитьЗначение("0"); // длина Список.ДобавитьЗначение("0"); // точность Список.ДобавитьЗначение(ВидДок); // ИД вида объекта Список.ДобавитьЗначение("0"); // флаг неотр. (?) Список.ДобавитьЗначение("0"); // флаг разделения триад (?) Список.ДобавитьЗначение(КодДок); // ИД объекта Зн = ЗначениеИзСтрокиВнутр("{"+Список.ВСтрокуСРазделителями()+"}"); |
|||
17
NS
26.04.12
✎
13:30
|
Функция ДобавитьСлева(ИсходнаяСтрока,Длина,Заполнитель) Экспорт
// Эта функция дополняет ИсходнаяСтрока до необходимой Длина указанным Заполнитель РезультирующаяСтрока=ИсходнаяСтрока; Пока СтрДлина(РезультирующаяСтрока)<=Длина Цикл РезультирующаяСтрока=Заполнитель+РезультирующаяСтрока; КонецЦикла; РезультирующаяСтрока=Прав(РезультирующаяСтрока,Длина); Возврат РезультирующаяСтрока; КонецФункции //------------------------------------------------------------------------------- Функция ДобавитьСправа(ИсходнаяСтрока,Длина,Заполнитель) Экспорт // Эта функция дополняет ИсходнаяСтрока до необходимой Длина указанным Заполнитель РезультирующаяСтрока=ИсходнаяСтрока; Пока СтрДлина(РезультирующаяСтрока)<=Длина Цикл РезультирующаяСтрока=РезультирующаяСтрока+Заполнитель; КонецЦикла; РезультирующаяСтрока=Лев(РезультирующаяСтрока,Длина); Возврат РезультирующаяСтрока; КонецФункции |
|||
18
ДенисЧ
26.04.12
✎
13:30
|
(17) У тебя жена устроилась на бисерную фабрику?
|
|||
19
Алексей777
26.04.12
✎
13:33
|
Спасибо NS.
|
|||
20
NS
26.04.12
✎
13:49
|
(18) Специалист по бисеру О_О
Нет, бисер старые клиенты по блату поставляют. |
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |