Вход | Регистрация
 

Как задать уникальный идентификатор для нового элемента справочника

Как задать уникальный идентификатор для нового элемента справочника
Я
   Sergant666
 
08.05.08 - 00:12
Можно ли для нового элемента справочника задать конкретный уникальный идентификатор?
 
 Партнерская программа EFSOL Oblako
   php5
 
1 - 08.05.08 - 00:13
можно))
   php5
 
2 - 08.05.08 - 00:15
НовыйУникальныйИдентификатор = Новый УникальныйИдентификатор;
   Михей
 
3 - 08.05.08 - 00:23
СоздатьСсылкуНового
   Paxa
 
4 - 08.05.08 - 00:37
УстановитьСсылкуНового()
   Sergant666
 
5 - 08.05.08 - 00:40
А как присвоить этой ссылке уникальный идентификатор, который я задаю сам?
   Paxa
 
6 - 08.05.08 - 00:42
а по Ctrl+F1 ничего не понятно?
   Sergant666
 
7 - 08.05.08 - 00:49
СправочникОбъект.<Имя справочника> (CatalogObject.<Имя справочника>)
УстановитьСсылкуНового (SetNewObjectRef)
Синтаксис:
УстановитьСсылкуНового(<Ссылка>)
Параметры:
<Ссылка> (обязательный)
Тип: СправочникСсылка. Ссылка, которая будет назначена при записи нового объекта.

Вопрос: как создать эту ссылку? Или здесь задается уникальный идентификатор?
   GROOVY
 
8 - 08.05.08 - 01:06
(7) У тя есть ссылка которую ты хочешь присвоить новому элементу? Тогда (4)
(7) У тя нет ссылки и ты хочешь выдумать что то свое? Тогда... нахрен?
   Sergant666
 
9 - 08.05.08 - 01:36
Тоесть, если я придумал свой уникальный идентификатор, то я не смогу его использовать для создания новой ссылки?
   Oleg_Kag
 
10 - 08.05.08 - 07:22
Примерно так 
Процедура СоздатьНовыйОбъектПоСсылкеНажатие(Элемент)
   // Вставить содержимое обработчика. 
    
    Если СтрДлина(СокрЛП(GUID)) <> 32 Тогда
          Предупреждение("Длина GUID ссылки должна быть равна 32 знакам");
          Возврат;
    КонецЕсли;
    
    Если ТипБитойСсылки = Неопределено Тогда
          Предупреждение("Тип ссылки не задан");
          Возврат;
    КонецЕсли;

    МетаОбъект = Метаданные.НайтиПоТипу(ТипБитойСсылки.Типы()[0]);
    ПолноеИмяОбъекта = МетаОбъект.ПолноеИмя();
    ТипОбъекта = Лев(ПолноеИмяОбъекта,Найти(ПолноеИмяОбъекта,".")-1);
    ИмяОбъекта = МетаОбъект.Имя;
    UUID = Новый УникальныйИдентификатор(ПолучитьUUIDПоУникальномуИдентификатору(GUID));

    Если ТипОбъекта = "Справочник"  Тогда
        НоваяСсылка = Справочники[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = Справочники[ИмяОбъекта].СоздатьЭлемент();
    ИначеЕсли ТипОбъекта = "Документ" Тогда
        НоваяСсылка = Документы[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = Документы[ИмяОбъекта].СоздатьДокумент();
    ИначеЕсли ТипОбъекта = "ПланВидовХарактеристик" Тогда
        НоваяСсылка = ПланыВидовХарактеристик[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = ПланыВидовХарактеристик[ИмяОбъекта].СоздатьЭлемент();
    ИначеЕсли ТипОбъекта = "ПланСчетов" Тогда
        НоваяСсылка = ПланыСчетов[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = ПланыСчетов[ИмяОбъекта].СоздатьСчет();
    ИначеЕсли ТипОбъекта = "ПланВидовРасчета" Тогда
        НоваяСсылка = ПланыВидовРасчета[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = ПланыВидовРасчета[ИмяОбъекта].СоздатьВидРасчета();
    ИначеЕсли ТипОбъекта = "ПланОбмена" Тогда
        НоваяСсылка = ПланыОбмена[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = ПланыОбмена[ИмяОбъекта].СоздатьУзел();
    ИначеЕсли ТипОбъекта = "БизнесПроцесс" Тогда
        НоваяСсылка = БизнесПроцессы[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = БизнесПроцессы[ИмяОбъекта].СоздатьБизнесПроцесс();
    ИначеЕсли ТипОбъекта = "Задача" Тогда
        НоваяСсылка = Задачи[ИмяОбъекта].ПолучитьСсылку(UUID);
        НовыйОбъект = Задачи[ИмяОбъекта].СоздатьЗадачу();
    Иначе
        Предупреждение("Неизвестный тип объекта");
        Возврат;
    КонецЕсли;    
    
    Если НоваяСсылка.ПолучитьОбъект() <> Неопределено Тогда
        Предупреждение("Объект с такой ссылкой существует и не может быть создан");        
        Возврат;
    КонецЕсли;
    
    Попытка
        НовыйОбъект.УстановитьСсылкуНового(НоваяСсылка);
        НовыйОбъект.ПолучитьФорму().Открыть();
    Исключение
        Предупреждение("Ошибка создания новой ссылки");
    КонецПопытки;
        
КонецПроцедуры
   Sergant666
 
11 - 08.05.08 - 09:23
спасибо! попробую

Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Ветка сдана в архив. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.