Имя: Пароль:
1C
1С v8
При Загрузке из файла эксель в 1С ошибка
0 bebibo
 
20.08.19
08:56
Здравствуйте! При загрузке из файла эксель ошибка: Значение не является значением объектного типа (НаименованиеПолное).
В чем может быть причина? Где это наименование вообще? Как исправить? может кто сталкивался?
1 Cyberhawk
 
20.08.19
08:57
Не туда смотришь. В таком тексте ошибки говорится о слове левее точки, а не том, что включено в текст ошибки, бгг.
2 Cyberhawk
 
20.08.19
08:58
Но тебе это все равно не поможет, забей
3 bebibo
 
20.08.19
08:59
Вот текст кода где есть НаименованиеПолное
Если СправочникИмя="ХарактеристикиНоменклатуры" И НЕ ЭтоГруппа Тогда
        Элемент.НаименованиеПолное = Элемент.Наименование;
    КонецЕсли;    
    
    Если СправочникИмя="Номенклатура" И НЕ ЭтоГруппа Тогда
        
        //Элемент.ОбменДанными.Загрузка = Истина;
        Элемент.НаименованиеПолное = Элемент.Наименование;
4 bebibo
 
20.08.19
09:00
(2) В смысле забей? я за помощью сюда, а не забивать
5 ДенисЧ
 
20.08.19
09:01
(3) " Элемент.НаименованиеПолное = "
Что такое Элемент и как он присвается?
6 bebibo
 
20.08.19
09:02
(5) Сейчас посмотрю
7 bebibo
 
20.08.19
09:05
(5) Элемент - это справочник объект.номенклатура
8 ДенисЧ
 
20.08.19
09:07
(7) Значит, он у тебя не заполняется. Вот и ругается.ю
9 bebibo
 
20.08.19
09:07
(8) Заполняется, сейчас смотрю вот что там: Проволока вязальная термич.обработки (мягкая) d1.0мм, низкоугл.ГОСТ3282-74
10 ДенисЧ
 
20.08.19
09:10
(9) Отладчиком встань на эту строчку, когда возникла ошибка (используй остановку по ошибке) и смотри. или у тебя нет реквизита НаименованиеПолное. А может, у тебя вообще группа выбралась...
11 bebibo
 
20.08.19
09:11
(10) сейчас посмотрю
12 bebibo
 
20.08.19
09:14
13 НадюшаЯ
 
20.08.19
09:16
(12) есть мысли в чем может быть дело?
14 НадюшаЯ
 
20.08.19
09:17
(1) тут есть подсказка)
15 bebibo
 
20.08.19
09:17
И элемент не определено пишет сейчас
16 bebibo
 
20.08.19
09:17
Когда сделала остановку по ошибке
17 ДенисЧ
 
20.08.19
09:18
(12) Значит, у тебя элемент или заполняется позднее, или не находится. Откуда он вообще берётся?
18 bebibo
 
20.08.19
09:20
Из номенклатуры берется то
19 bebibo
 
20.08.19
09:20
вот эта функция
&НаСервере
Функция ЭлементСправочника(Наименование, ЭтоГруппа=ЛОЖЬ, Родитель=Неопределено, СтрокаТЗ=Неопределено,
    СправочникИмя="Номенклатура", Владелец=Неопределено)
    
    Если Родитель = Неопределено Тогда
        Родитель = Справочники[СправочникИмя].ПустаяСсылка();
    КонецЕсли;    
    
    Если СправочникИмя="Номенклатура" И НЕ ЭтоГруппа Тогда
        Если ПустаяСтрока(СтрокаТЗ.УИД) Тогда
            Элемент = Справочники.Номенклатура.ПустаяСсылка();
        Иначе
            УИД = Новый УникальныйИдентификатор(СтрокаТЗ.УИД);
            Элемент = Справочники.Номенклатура.ПолучитьСсылку(УИД);
        КонецЕсли;
    Иначе
        Элемент = Справочники[СправочникИмя].НайтиПоНаименованию(Наименование, ИСТИНА, Родитель);
    КонецЕсли;    
    
    Если Элемент.Пустая() И НЕ СправочникИмя="Номенклатура" Тогда
        Элемент = Справочники[СправочникИмя].НайтиПоНаименованию(Наименование, ИСТИНА,);
    КонецЕсли;
    
    Если Элемент.Пустая() Тогда
        
        Если ЭтоГруппа Тогда
            Элемент = Справочники[СправочникИмя].СоздатьГруппу();
        Иначе
            Элемент = Справочники[СправочникИмя].СоздатьЭлемент();
            Если НЕ Владелец = Неопределено Тогда
                Элемент.Владелец = Владелец;                
            КонецЕсли;    
        КонецЕсли;
        
        Элемент.Наименование = Наименование;
        
        Если НЕ СправочникИмя="ХарактеристикиНоменклатуры" Тогда
            Элемент.Родитель = Родитель;
        КонецЕсли;
        
        Если СправочникИмя="ВидыНоменклатуры" Тогда
            Сообщить("Не найден вид номенклатуры -" + Наименование + "- , элемент сформирован автоматически", СтатусСообщения.ОченьВажное);
        КонецЕсли;
        
    ИначеЕсли (НЕ СправочникИмя="Номенклатура") ИЛИ (СправочникИмя="Номенклатура" И ЭтоГруппа) Тогда
        
        Возврат Элемент.Ссылка;
        
    Иначе
        
        Элемент = Элемент.ПолучитьОбъект();

    КонецЕсли;
    
    Если СправочникИмя="УпаковкиЕдиницыИзмерения" И НЕ ЭтоГруппа Тогда
        Сообщить("Не найдена единица измерения - " + Наименование);
        Возврат Справочники.УпаковкиЕдиницыИзмерения.ПустаяСсылка();
    КонецЕсли;
    
    Если СправочникИмя="ВидыНоменклатуры" И НЕ ЭтоГруппа Тогда
        Элемент.ТипНоменклатуры = Перечисления.ТипыНоменклатуры.Товар;
        Элемент.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;
    КонецЕсли;
    
    Если СправочникИмя="ХарактеристикиНоменклатуры" И НЕ ЭтоГруппа Тогда
        Элемент.НаименованиеПолное = Элемент.Наименование;
    КонецЕсли;    
    
    Если СправочникИмя="Номенклатура" И НЕ ЭтоГруппа Тогда
        
        //Элемент.ОбменДанными.Загрузка = Истина;
        Элемент.НаименованиеПолное = Элемент.Наименование;
        Элемент.ВидНоменклатуры = СтрокаТЗ.ВидНоменклатуры_Ссылка;
        Элемент.ВариантОформленияПродажи = Перечисления.ВариантыОформленияПродажи.РеализацияТоваровУслуг;
        Элемент.Качество = Перечисления.ГрадацииКачества.Новый;
        Элемент.СтавкаНДС = Перечисления.СтавкиНДС.НДС20;
20 ДенисЧ
 
20.08.19
09:21
(18) А похоже, что с потолка... Наверняка там какой-то поиск есть... По какому-то реквизиту... Или создание... Вот этот ксок и надо найти.
21 bebibo
 
20.08.19
09:22
Вот не всю же номенклатуру он не грузит, а какие то особенные
22 НадюшаЯ
 
20.08.19
09:23
УИД = Новый УникальныйИдентификатор(СтрокаТЗ.УИД);
            Элемент = Справочники.Номенклатура.ПолучитьСсылку(УИД);
Наверно тут косяк, нету в базе этого УИДа
23 ДенисЧ
 
20.08.19
09:23
(21) Ну вот выдели эти особенные и по ним пошагово пройдись.
24 bebibo
 
20.08.19
09:23
В коде который скинула в параметрах функции есть наименование, вот там есть номенклатура, а ниже где строка; Элемент.НаименованиеПолное = Элемент.Наименование;
Она уже неопределена
25 bebibo
 
20.08.19
09:26
(22) Если его нет, то он создает этот уид
Но отладкой смотрю он есть
26 bebibo
 
20.08.19
09:26
Вот на этой строке уже не определяется ничего:
Элемент = Справочники.Номенклатура.ПолучитьСсылку(УИД);
27 bebibo
 
20.08.19
09:27
объект не найден пишет (26)
28 НадюшаЯ
 
20.08.19
09:27
(26) ну хотябы читать начали, хоть и не сразу, но радует
29 НадюшаЯ
 
20.08.19
09:27
а теперь смотрите сюда (22)
30 НадюшаЯ
 
20.08.19
09:28
Могу повторить для жирафа, в вашей базе нет номенклатуры с таким уидом.
31 bebibo
 
20.08.19
09:28
32 bebibo
 
20.08.19
09:28
(29) Да, я уже поняла. И что делать?
33 НадюшаЯ
 
20.08.19
09:29
(2) я бы предложила вот этот вариант)
34 НадюшаЯ
 
20.08.19
09:29
А какова постановка задачи
35 bebibo
 
20.08.19
09:30
(33) Так мне нужно решить эту проблему)))
36 bebibo
 
20.08.19
09:30
(34) не могут загрузить, надо чтобы загружалость в 1с
37 НадюшаЯ
 
20.08.19
09:34
(36) что вы грузите то хоть, от кого, ну что из вас все нужно выпытывать.
1) Можете забить как в (2) говориться и сказать, что экселька не правильная, там неправильные уиды указаны, пусть дают правильные.
2) Можете пропускать эти строки, прямо проверяя на равенство Элемент = неопределенно
3) Создавать новую позицию и грузить в базу

Каждый метод имеет обратную сторону, чтобы порекомендовать что то конкретное нужно понимать детали задачи, что это за уиды, откуда этот эксель и что это за обмен файлами такой.
38 Йохохо
 
20.08.19
09:37
Кaк может человек ожидaть, что его мольбaм о снисхождении ответит тот, кто превыше, когдa сaм он откaзывaет в милосердии тем, кто ниже его? Петр Трубецкой