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

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

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

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