Имя: Пароль:
1C
1С v8
Поле объекта недоступно для записи
🠗 (Волшебник 05.07.2018 11:40)
0 sidalexsandr
 
05.07.18
10:59
У меня УТ 10.3. Вот текст программы:
Попытка
        Эксель = Новый COMОбъект("Excel.Application"); //создаем объект
    Исключение
        Сообщить(ОписаниеОшибки(),"!!!");
        Сообщить("Возможно, MS Excel не установлен у Вас на копьютере.");
        Возврат;
    КонецПопытки;
    
    Книга = Эксель.WorkBooks.Open(ИмяФайла);
    Лист = Книга.WorkSheets(1);
        
    Для Строка = НачальнаяСтрока по КонечнаяСтрока цикл
                                
                    
        Артикул = СокрЛП(Лист.Cells(Строка,1).Value);
        Артикул1 = СтрЗаменить(Артикул,Символы.НПП,"");
        Н = Справочники.Номенклатура.НайтиПоРеквизиту("Артикул", Артикул1);            
        Н.НоменклатурнаяГруппа = Группа;
        Н.Записать();
    КонецЦикла;        

    
    Эксель.Application.Quit();

Выдает ошибку:
{ВнешняяОбработка.ЗагрузкаИнструменты.Форма.Форма.Форма(316)}: Поле объекта недоступно для записи (НоменклатурнаяГруппа)
        Н.НоменклатурнаяГруппа = Группа;
1 sidalexsandr
 
05.07.18
11:00
Мне надо получить объект?
2 catena
 
05.07.18
11:01
(1)Это вопрос?
3 Бертыш
 
05.07.18
11:02
Возвращаемое значение:

Тип: СправочникСсылка.<Имя справочника>.
Ссылка на найденный элемент справочника. Если не существует ни одного элемента с требуемым значением реквизита, то будет возвращена пустая ссылка.

А писАть надо в объект
4 Бертыш
 
05.07.18
11:03
или пИсать
5 Aleksandr N
 
05.07.18
11:03
(0) мда...
6 sidalexsandr
 
05.07.18
11:03
(2) Это вопрос. Я сам проверил, получил объект и все заработало. Ветку можно закрывать.
7 sidalexsandr
 
05.07.18
11:22
Теперь выдает другую ошибку:
{ВнешняяОбработка.ЗагрузкаИнструменты.Форма.Форма.Форма(318)}: Ошибка при вызове метода контекста (ПолучитьОбъект)
        ТекНом = Н.ПолучитьОбъект();
по причине:
Элемент не выбран!
8 HomoAlbus
 
05.07.18
11:39
(7) Реально проще каждый рах на форум такую фигню писать, чем книжечку открыть и прочитать один раз?
Элемент не выбран - значит там пустая ссылка. Не найден он и получать нечего.
9 Бертыш
 
05.07.18
11:41
(7) А ссылку на пустоту не суть Ба про верить :(
10 sidalexsandr
 
05.07.18
12:43
(7) Отладил, оказалось что одного из артикулов не было в справочнике номенклатура. Исправили артикул на существующий.
Для отладки использовал
Попытка
Исключение
КонецПопытки;
11 HomoAlbus
 
05.07.18
12:58
(10) Выбрасывание исключений и их обработка - это куда более емкое действие нежели проверка на заполненность того, что должно быть заполнено. Поэтому лучше проверяй нашлось ли, если не нашлось - пиши в лог и обрабатывай дальше
12 sidalexsandr
 
05.07.18
14:15
(11) Спасибо, учту.