Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

Поле объекта недоступно для записи (Родитель)

Поле объекта недоступно для записи (Родитель)
Я
   Nzzzz
 
07.09.20 - 15:35
Есть обработка по загрузке номенклатуры из эксель. Код:

Артикул = МассивКолонок.Получить(0).Получить(строкаТП);
Производитель = МассивКолонок.Получить(1).Получить(строкаТП);
Наименование = МассивКолонок.Получить(2).Получить(строкаТП);
        
        СоздНоменклатура = Справочники.Номенклатура.СоздатьЭлемент();
        
        СоздНоменклатура.Артикул = Артикул;
        СоздНоменклатура.Наименование = Наименование;
        
        ГруппаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(Производитель,Истина);
        Если НЕ ЗначениеЗаполнено(ГруппаНоменклатуры) тогда
            ГруппаНом = Справочники.Номенклатура.СоздатьГруппу();
            ГруппаНом.Наименование = Производитель;
            ГруппаНом.Записать();
            СоздНоменклатура.Родитель.Родитель = Объект.ГруппаНоменклатуры;
        КонецЕсли;
            
        СоздНоменклатура.Родитель = ГруппаНоменклатуры;

У меня ошибка "Поле объекта недоступно для записи (Родитель)"
Знаю что нужно получить объект, но где получить его??Если СоздНоменклатура и так объект

СоздНоменклатура.Родитель.Родитель - выбирает пользователь на форме
а СоздНоменклатура.Родитель - из эксель присваивается
   Ёпрст
 
1 - 07.09.20 - 15:37
(0)
//  СоздНоменклатура.Родитель.Родитель = Объект.ГруппаНоменклатуры;
   Nzzzz
 
2 - 07.09.20 - 15:44
(1) Зачем так?
Есть иерархия номенклатуры:
   Номенклатура - корень
     Группа1
       Группа2
У меня есть номенклатура у нее группа2, мне нужно в родитель.родитель прописать Группа1.
Это на тот случай если группа не создана. Если она создана, то можно закомментировать, т.к. там и так Родитель.Родитель уже есть
Но если группы нет?? Я создаю группу2 и мне ее нужно поместить в Группу1, а не в корень как она делает сейчас, если закомментировать строку которую показали
   Ёпрст
 
3 - 07.09.20 - 15:48
(2)
Затем, что это Бред (Не Пит)
ЗЫ: ну получай объект Группы, присваивай ей реквизит Родитель, записывай.
   mikecool
 
4 - 07.09.20 - 15:49
(3) можно даже ссылку на группу получить, объекто то не присвоишь
   Ёпрст
 
5 - 07.09.20 - 15:52

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

   Nzzzz
 
6 - 07.09.20 - 16:02
(5) теперь группа2 создается  в группе1, но номенклатуры там нет..Странно
   Nzzzz
 
7 - 07.09.20 - 16:07
(5) СоздНоменклатура.Родитель = ГруппаНоменклатуры; 
Надо же
СоздНоменклатура.Родитель = ГруппаНом;
Но проходя эту строчку, там всё равно пусто, не присваивает почему то..
   Nzzzz
 
8 - 07.09.20 - 16:11
СоздНоменклатура.Родитель = ГруппаНом; - вот так присваивает группу
А так нет:
СоздНоменклатура.Родитель = ГруппаНоменклатуры;
   Фауст
 
9 - 07.09.20 - 16:11
ГруппаНоменклатуры = Справочники.Номенклатура.НайтиПоНаименованию(Производитель,Истина);
        Если ГруппаНоменклатуры = Справочники.Номенклатура.ПустаяССылка() тогда
            ГруппаНом = Справочники.Номенклатура.СоздатьГруппу();
            ГруппаНом.Наименование = Производитель;
            ГруппаНом.Родитель = Объект.ГруппаНоменклатуры;
            ГруппаНом.Записать();
            ГруппаНоменклатуры = ГруппаНом.Ссылка;// это еще добавить

        КонецЕсли;
        СоздНоменклатура.Родитель = ГруппаНоменклатуры;
   CaIIIka
 
10 - 07.09.20 - 16:12
Зачем две переменных? Оставьте только "ГруппаНоменклатуры".
   Nzzzz
 
11 - 07.09.20 - 16:17
О, заработало, спасибо!
Только куда ставка делась в БП 3.0 кто нибудь знает? Она теперь "УдалитьСтавкаНДС" в нее записывать?
   lodger
 
12 - 07.09.20 - 16:22
(11) префикс "Удалить" означает, что этот объект метаданных надо обходить стороной.
   Serg_1960
 
13 - 07.09.20 - 16:45
Хех. Если мне память не изменяет, то в 2018 волна была - перечисление СтавкаНДС было заменено на ВидыСтавокНДС... что, с тех пор УдалитьСтавкаНДС так и висит в конфигурации?
   Droning1C
 
14 - 07.09.20 - 17:08
(13) да, до сих пор висит

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