Имя: Пароль:
1C
1С v8
Выдача ошибки при попытке записать группу в номенклатуре
,
0 Michail_19
 
12.05.13
17:25
Вот что пишет:
"Значение не является значением объектного типа (Наименование)"

Как исправить
1 Mitriy
 
12.05.13
17:31
провести ревизию своих дописок...
2 Michail_19
 
12.05.13
17:32
эх еще бы определить в каком месте смотреть
3 marvak
 
12.05.13
17:36
(0)
Ну ссылаешься на пустой объект или ссылку.
4 shuhard
 
12.05.13
17:44
(2) 37 строка общего модуля
5 zippygrill
 
12.05.13
17:50
~37 :)
6 ДенисЧ
 
12.05.13
17:56
(4) неправда! 49я!
7 Michail_19
 
12.05.13
17:58
Вот строку нашел:
ЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование;

Только не пойму что в ней не так?
8 Mitriy
 
12.05.13
18:17
Вариантов три:
ЕдиницаОбъект = Неопределено
БазоваяЕдиницаИзмерения = Неопределено
или
и то и другое...
9 Michail_19
 
12.05.13
18:19
(8) Так?
ЕдиницаОбъект.Наименование ИЛИ БазоваяЕдиницаИзмерения.Наименование;
10 Mitriy
 
12.05.13
18:20
В отладке поставь галочку останавливаться по ошибке, попробуй записать группу и посмотри, что у тебя в этих переменных, а потом разберись, откуда оно взялось...
11 Michail_19
 
12.05.13
18:20
(8) Вот та часть кода
Если Результат.Пустой() Тогда
ЕдиницаОбъект = Справочники.ЕдиницыИзмеренияНоменклатуры.СоздатьЭлемент();
ЕдиницаОбъект.Владелец = Ссылка;
ЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
ЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование;
ЕдиницаОбъект.Коэффициент = 1;
ЕдиницаОбъект.Записать();    
       КонецЕсли;
12 NickOmsk
 
12.05.13
18:21
Сделай остановку перед записать и внимательно посмотри, что ты пытаешься записать
13 Mitriy
 
12.05.13
18:22
у тебя базоваяединицаизмерения не определена...
14 Michail_19
 
12.05.13
18:23
(13) Вот это выдает
Ошибка при выполнении обработчика - 'ПриЗаписи'
по причине:
{Справочник.Номенклатура.МодульОбъекта(65)}: Значение не является значением объектного типа (Наименование)
           ЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование;
15 Michail_19
 
12.05.13
18:25
(13) Код всей процедуры

Процедура ПриЗаписи(Отказ)
   Если Не Отказ Тогда
       Запрос = Новый Запрос;
       Запрос.Текст = "ВЫБРАТЬ
       |    ЕдиницыИзмеренияНоменклатуры.Ссылка
       |ИЗ
       |    Справочник.ЕдиницыИзмеренияНоменклатуры КАК ЕдиницыИзмеренияНоменклатуры
       |ГДЕ
       |    ЕдиницыИзмеренияНоменклатуры.Владелец = &Владелец
       |    И ЕдиницыИзмеренияНоменклатуры.ЕдиницаПоКлассификатору = &ЕдиницаПоКлассификатору";
       
       Запрос.УстановитьПараметр("Владелец", Ссылка);
       Запрос.УстановитьПараметр("ЕдиницаПоКлассификатору", БазоваяЕдиницаИзмерения);
       
       Результат = Запрос.Выполнить();
       
       Если Результат.Пустой() Тогда
           ЕдиницаОбъект = Справочники.ЕдиницыИзмеренияНоменклатуры.СоздатьЭлемент();
           ЕдиницаОбъект.Владелец = Ссылка;
           ЕдиницаОбъект.ЕдиницаПоКлассификатору = БазоваяЕдиницаИзмерения;
           ЕдиницаОбъект.Наименование = БазоваяЕдиницаИзмерения.Наименование;
           ЕдиницаОбъект.Коэффициент = 1;
           ЕдиницаОбъект.Записать();    
       КонецЕсли;
   КонецЕсли;
КонецПроцедуры
16 Mitriy
 
12.05.13
18:27
у группы нет базовой единицы измерения...
17 Mitriy
 
12.05.13
18:28
вставь вот это:
Если Не Отказ и Не ЭтоГруппа Тогда
...

и спи спокойно...
18 Michail_19
 
12.05.13
18:31
(17) Спасибо заработало