Имя: Пароль:
1C
1С v8
Как добавить характеристику со свойствами?
0 SashaNox
 
29.07.11
00:32
Приветствую, вот я добавляю характеристику номенклатуры

Процедура КнопкаВыполнитьНажатие(Кнопка)
   Харак = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
   Харак.Владелец = Номенклатура;
   Харак.Наименование = "Цвет красный";    
   СвойствоЗначение = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   СвойствоЗначение.Активность = Истина;
   СвойствоЗначение.Объект = Номенклатура;
   СвойствоЗначение.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет1");
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗначенияСвойствОбъектов.Ссылка,
                  |    ЗначенияСвойствОбъектов.Владелец,
                  |    ЗначенияСвойствОбъектов.Наименование
                  |ИЗ
                  |    Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                  |ГДЕ
                  |    ЗначенияСвойствОбъектов.Владелец = &Владелец
                  |    И ЗначенияСвойствОбъектов.Наименование = &Наименование";
   Запрос.УстановитьПараметр("Владелец", СвойствоЗначение.Свойство);
   Запрос.УстановитьПараметр("Наименование", "Красный");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   СвойствоЗначение.Значение = Выборка.Ссылка;    
   СвойствоЗначение.Записать();
   Харак.Записать();
КонецПроцедуры


А когда открываю созданную характеристику, то значение свойства не заполнено. Что не так, подскажите?
1 Либерал
 
29.07.11
00:40
Процедура КнопкаВыполнитьНажатие(Кнопка)
   Харак = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
   Харак.Владелец = Номенклатура;
   Харак.Наименование = "Цвет красный";  
   Харак.Записать();  
   СвойствоЗначение = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   СвойствоЗначение.Активность = Истина;
   СвойствоЗначение.Объект = Харак.Ссылка;
   СвойствоЗначение.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет1");
   Запрос = Новый Запрос;
   Запрос.Текст = "ВЫБРАТЬ
                  |    ЗначенияСвойствОбъектов.Ссылка,
                  |    ЗначенияСвойствОбъектов.Владелец,
                  |    ЗначенияСвойствОбъектов.Наименование
                  |ИЗ
                  |    Справочник.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
                  |ГДЕ
                  |    ЗначенияСвойствОбъектов.Владелец = &Владелец
                  |    И ЗначенияСвойствОбъектов.Наименование = &Наименование";
   Запрос.УстановитьПараметр("Владелец", СвойствоЗначение.Свойство);
   Запрос.УстановитьПараметр("Наименование", "Красный");
   Выборка = Запрос.Выполнить().Выбрать();
   Выборка.Следующий();
   СвойствоЗначение.Значение = Выборка.Ссылка;    
   СвойствоЗначение.Записать();
КонецПроцедуры
2 Либерал
 
29.07.11
00:40
найди три отличия ))
3 Reaper_1c
 
29.07.11
00:42
А обработку для работы с характеристиками слабо заюзать?
4 SashaNox
 
29.07.11
00:44
Спасибо, сообразил. А что за обработка?:L
5 Reaper_1c
 
29.07.11
02:14
ЗначенияСвойствОбъекта
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн