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

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

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

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


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