Имя: Пароль:
1C
 
Перенос справочников
0 BUBU
 
23.02.15
22:14
Подскажите, что здесь неправильно

Функция ПолучитьКонтрагента(КонтрагентСтруктура)

   НовКонтрагентГруппа = неопределено;
    
   НовКонтрагент = Справочники.Контрагенты.НайтиПоКоду(КонтрагентСтруктура.Код);    
   Если (НовКонтрагент <> Справочники.Контрагенты.ПустаяСсылка()) и (ЗначениеЗаполнено(НовКонтрагент)) тогда
        //возврат НовКонтрагент;     // 23.02.15
        новКонтрАгент=Справочники.Контрагенты.ПолучитьСсылку();
   Иначе    
        НовКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
   КонецЕсли;    

   Если ЗначениеЗаполнено(КонтрагентСтруктура.Родитель_Код) тогда
  
        НовКонтрагентГруппа = Справочники.Контрагенты.НайтиПоКоду(КонтрагентСтруктура.Родитель_Код);    
        Если (НовКонтрагентГруппа = Справочники.Контрагенты.ПустаяСсылка()) или (НовКонтрагентГруппа = неопределено) тогда
    
              НовКонтрагентГруппа = Справочники.Контрагенты.СоздатьГруппу();
              НовКонтрагентГруппа.Код = КонтрагентСтруктура.Родитель_Код;
              НовКонтрагентГруппа.Наименование = КонтрагентСтруктура.Родитель_Наименование;
              НовКонтрагентГруппа.Записать();
              НовКонтрагентГруппа = НовКонтрагентГруппа.Ссылка;
        
        КонецЕсли;
   КонецЕсли;
        
   ЗаполнитьЗначенияСвойств(НовКонтрагент,КонтрагентСтруктура);
   НовКонтрагент.Родитель = НовКонтрагентГруппа;  // 23.02.15
   НовКонтрагент.ИНН = КонтрагентСтруктура.ИНН;
   НовКонтрагент.КодПоОКПО = КонтрагентСтруктура.ОКПО;
   НовКонтрагент.НаименованиеПолное = КонтрагентСтруктура.ПолноеНаименование;
   НовКонтрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
   НовКонтрагент.Записать();

   Возврат НовКонтрагент.Ссылка;            
КонецФункции            


Ругается


Форма.Форма.Форма(414)}: Поле объекта недоступно для записи (Родитель)
   НовКонтрагент.Родитель = НовКонтрагентГруппа;
1 DJ Anthon
 
23.02.15
22:17
новКонтрАгент=Справочники.Контрагенты.ПолучитьСсылку();
2 Крошка Ру
 
23.02.15
22:17
Гуглить уже считается плохим тоном?
3 DJ Anthon
 
23.02.15
22:18
преврати ссылку в объект перед присваиваниями
4 BUBU
 
23.02.15
22:36
(3) Пишу так

Функция ПолучитьКонтрагента(КонтрагентСтруктура)

   НовКонтрагентГруппа = неопределено;
    
   НовКонтрагент = Справочники.Контрагенты.НайтиПоКоду(КонтрагентСтруктура.Код);    
   Если (НовКонтрагент <> Справочники.Контрагенты.ПустаяСсылка()) и (ЗначениеЗаполнено(НовКонтрагент)) тогда
        //возврат НовКонтрагент;     // 23.02.15
        ссылка=Справочники.Контрагенты.ПолучитьСсылку();
        новКонтрАгент=новКонтрАгент.получитьОбъект();
   Иначе    
        НовКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
   КонецЕсли;    

   Если ЗначениеЗаполнено(КонтрагентСтруктура.Родитель_Код) тогда
  
        НовКонтрагентГруппа = Справочники.Контрагенты.НайтиПоКоду(КонтрагентСтруктура.Родитель_Код);    
        Если (НовКонтрагентГруппа = Справочники.Контрагенты.ПустаяСсылка()) или (НовКонтрагентГруппа = неопределено) тогда
    
              НовКонтрагентГруппа = Справочники.Контрагенты.СоздатьГруппу();
              НовКонтрагентГруппа.Код = КонтрагентСтруктура.Родитель_Код;
              НовКонтрагентГруппа.Наименование = КонтрагентСтруктура.Родитель_Наименование;
              НовКонтрагентГруппа.Записать();
              НовКонтрагентГруппа = НовКонтрагентГруппа.Ссылка;
        
        КонецЕсли;
   КонецЕсли;
        
   ЗаполнитьЗначенияСвойств(НовКонтрагент,КонтрагентСтруктура);
   НовКонтрагент.Родитель = НовКонтрагентГруппа;  // 23.02.15
   НовКонтрагент.ИНН = КонтрагентСтруктура.ИНН;
   НовКонтрагент.КодПоОКПО = КонтрагентСтруктура.ОКПО;
   НовКонтрагент.НаименованиеПолное = КонтрагентСтруктура.ПолноеНаименование;
   НовКонтрагент.ЮридическоеФизическоеЛицо = Перечисления.ЮрФизЛицо.ЮрЛицо;
   НовКонтрагент.Записать();

   Возврат НовКонтрагент.Ссылка;            
КонецФункции            


Правильно ?
5 Либерал
 
23.02.15
22:44
махровый семерошник?))  

НовКонтрагент = Справочники.Контрагенты.НайтиПоКоду(КонтрагентСтруктура.Код);    
   Если ЗначениеЗаполнено(НовКонтрагент) тогда

        НовКонтрагент=НовКонтрагент.получитьОбъект();
   Иначе    
        НовКонтрагент = Справочники.Контрагенты.СоздатьЭлемент();
   КонецЕсли;
6 arccos6pi
 
23.02.15
23:46
(5) можно проверять НовКонтрагент.Пустая()
Закон Брукера: Даже маленькая практика стоит большой теории.