Имя: Пароль:
1C
 
Ссылка - > UUID, а в обратную сторону???
0 trinoo
 
29.09.04
14:45
Насколько я понимаю философию v8 (сдав на Профа и Спеца), со ссылками дела обстоят следующим образом:
На каждый объект, _записанный в базу_ можно ссылаться. Пока объект не записан, ссылаться нельзя. Ссылка, фактически, - это UUID (УникальныйИдентификатор), т.е. уникальная строка. Ссылку я всегда могу преобразовать в UUID(метод .УникальныйИдентификатор()), а по UUID - получить ссылку(.ПолучитьСсылку(UUID)).
НО... так почему нет функционала, позволяющего для еще _не записанного в базу_ объекта получать ссылку на него??? ведь UUID сгенерировать можно и без записи в базу. ;\
Или я где то прое..ся ?
1 trinoo
 
29.09.04
14:46
Вот с названием темы я точно прое..ся :)
2 SnarkHunter
 
29.09.04
14:47
Вот такие у нас "Профы и Спецы"...
3 trinoo
 
29.09.04
14:50
Решение так очевидно??? или ты на счет лексики? :)
4 Волшебник
 
29.09.04
14:58
5 trinoo
 
29.09.04
15:17
поясню:
   Сотрудник = Справочники.Сотрудники.СоздатьЭлемент();
   Сотрудник.Наименование = "Тест ссылок";
   Задача = Документы.Задача.СоздатьДокумент();
   Задача.Дата = ТекущаяДата();
   Задача.Исполнитель = Сотрудник.Ссылка;
       Задача.Записать();
   Сотрудник.Записать();
После записи обоих объектов, Документ.Исполнитель ссылается вникуда. Ссылки была
пустой, пустой и осталась. Зато если сначала выполнить Сотрудник.Записать();, тогда на него можно ссылаться.

Мне вообще эта возможность нужна, чтобы организовывать ссылку объектов друг на друга при их одновременном создании и до их записи. Приходится писать корявый код с сохранением объектов по нескольку раз.
6 Волшебник
 
29.09.04
15:21
(5) Вполне нормальный код.
7 SnarkHunter
 
29.09.04
15:31
ИД нового объекта создается при записи... Было бы странно, если б иначе...
8 v8
 
29.09.04
15:37
7 для нового объекта тоже можно
УстановитьСсылкуНового(<Ссылка>)  
Параметры:  
<Ссылка> обязательный  
Тип: СправочникСсылка.<Имя справочника>. Ссылка, которая будет назначена при записи нового объекта.  
Описание:  
Позволяет для нового (созданного и еще не записанного) объекта установить значение, которое будет назначено при записи в качестве ссылки. Значение не может равняться ссылке какого-либо из имеющихся в базе данных объекта данного типа. Уникальность ссылки проверяется при записи объекта.
9 trinoo
 
29.09.04
15:39
Ну да, и он дает нормальный результат
ИсполнительПустой = ?(Задача.Исполнитель.Пустая(),"Да","Нет");
// ИсполнительПустой  = "Да"
// а хотелось бы ИсполнительПустой  = "Нет"
10 trinoo
 
29.09.04
15:44
(8)
Нашелся таки функционал. v8 (человеку, а не платформе) - большое спасибо.
11 SnarkHunter
 
29.09.04
16:06
И что случится, если при проверке уникальности ссылки во время записи объекта выяснится, что проверка не пройдена?
12 Волшебник
 
29.09.04
20:36
(11) Исключение.
13 Asmody
 
29.09.04
20:49
(11) а ты пробовал проверять UUID'ы на уникальность? какова вероятность появления двух одинаковых UUID'ов?
14 SnarkHunter
 
29.09.04
21:26
(13)Только не надо меня лечить... В 60-е годы утверждалось, что США в конце века будет достаточно десятка мейнфреймов, сейчас утверждается, что уникальность ИД гарантирована...
15 Волшебник
 
29.09.04
21:27
(14) Одно дело экспертные прогнозы, другое - чистая статистика.
16 SnarkHunter
 
29.09.04
21:59
:-)
17 Asmody
 
30.09.04
00:00
(14) да, а еще БГ как то сказал, что всеем хватит 640 кб...