Имя: Пароль:
1C
 
v8: Как создать Элемент Справочника со своим ГУИДОМ( или ГУИДОМ другой базы)
0 zladenuw
 
12.03.10
10:38
Как создать Элемент Справочника со своим ГУИДОМ( или ГУИДОМ другой базы).... или хотя бы где можно про это почитать
1 Нуф-Нуф
 
12.03.10
10:39
Если СтрДлина(СокрЛП(GUID)) <> 32 Тогда
         Предупреждение("Длина GUID ссылки должна быть равна 32 знакам");
         Возврат;
   КонецЕсли;
   
   Если ТипБитойСсылки = Неопределено Тогда
         Предупреждение("Тип ссылки не задан");
         Возврат;
   КонецЕсли;

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

   Если ТипОбъекта = "Справочник"  Тогда
       НоваяСсылка = Справочники[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = Справочники[ИмяОбъекта].СоздатьЭлемент();
       Вл = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "Документ" Тогда
       НоваяСсылка = Документы[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = Документы[ИмяОбъекта].СоздатьДокумент();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "ПланВидовХарактеристик" Тогда  
       НоваяСсылка = ПланыВидовХарактеристик[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = ПланыВидовХарактеристик[ИмяОбъекта].СоздатьЭлемент();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "ПланСчетов" Тогда
       НоваяСсылка = ПланыСчетов[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = ПланыСчетов[ИмяОбъекта].СоздатьСчет();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "ПланВидовРасчета" Тогда
       НоваяСсылка = ПланыВидовРасчета[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = ПланыВидовРасчета[ИмяОбъекта].СоздатьВидРасчета();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "ПланОбмена" Тогда
       НоваяСсылка = ПланыОбмена[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = ПланыОбмена[ИмяОбъекта].СоздатьУзел();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "БизнесПроцесс" Тогда
       НоваяСсылка = БизнесПроцессы[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = БизнесПроцессы[ИмяОбъекта].СоздатьБизнесПроцесс();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   ИначеЕсли ТипОбъекта = "Задача" Тогда
       НоваяСсылка = Задачи[ИмяОбъекта].ПолучитьСсылку(UUID);
       НовыйОбъект = Задачи[ИмяОбъекта].СоздатьЗадачу();
       Ос = ЭлементыФормы.ПолеВвода.Значение.Ссылка;
   Иначе
       Предупреждение("Неизвестный тип объекта");
       Возврат;
   КонецЕсли;    
   
   Если НоваяСсылка.ПолучитьОбъект() <> Неопределено Тогда
       Предупреждение("Объект с такой ссылкой существует и не может быть создан");        
       Возврат;
   КонецЕсли;
   
   Попытка
       НовыйОбъект.УстановитьСсылкуНового(НоваяСсылка);
       Если Не ЭлементыФормы.ПолеВвода.Значение.Пустая() Тогда
           Зн = ЭлементыФормы.ПолеВвода.Значение;
           Если ТипОбъекта = "Справочник"  Тогда
               НовыйОбъект.Владелец = Вл;
           Иначе
               НовыйОбъект.Основание = Ос;
           КонецЕсли;
       КонецЕсли;
       НовыйОбъект.ЕдиницаПоКлассификатору= НовыйОбъект.Владелец.БазоваяЕдиницаИзмерения;
       НовыйОбъект.Наименование =  НовыйОбъект.Владелец.БазоваяЕдиницаИзмерения.Наименование;
       НовыйОбъект.Коэффициент = 1;
       новыйобъект.записать();
       //НовыйОбъект.ПолучитьФорму().Открыть();
   Исключение
       Предупреждение("Ошибка создания новой ссылки");
   КонецПопытки;
2 Beduin
 
12.03.10
10:42
(1) Ты когда копипастишь хотя бы функции расшифровывай "ПолучитьUUIDПоУникальномуИдентификатору"
3 Нуф-Нуф
 
12.03.10
10:42
Функция ПолучитьUUIDПоУникальномуИдентификатору(Знач GUID) Экспорт
   
     ч1 = Сред(GUID,25,8);
     ч2 = Сред(GUID,21,4);
     ч3 = Сред(GUID,17,4);
     ч4 = Сред(GUID,1,4);
     ч5 = Сред(GUID,5,12);
     
     Возврат  ч1 +"-"+ ч2 +"-"+ ч3 +"-"+ ч4 +"-"+ ч5;
 КонецФункции
4 zladenuw
 
12.03.10
10:45
СПС!!!! ))))
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой