Имя: Пароль:
1C
 
Как программно добавить характеристику номенклатуры в УТ?
0 shoma
 
25.06.07
22:36
Как программно добавить характеристику номенклатуры в УТ?
1 ТелепатБот
 
гуру
25.06.07
22:36
2 shoma
 
25.06.07
22:46
//Попробуем создать характеристику номенклатуры
   ХарНом = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
   ХарНом.Владелец = СсылкаНаОбъектНоменклатуры;
   ХарНом.Наименование = L, 170, 200 black;
   
   
   //Поиграемся со ссылками
   ХарНом.УстановитьСсылкуНового(Справочники.ХарактеристикиНоменклатуры.ПолучитьСсылку(Новый УникальныйИдентификатор));
   СсылкаНаХарНом = ХарНом.ПолучитьСсылкуНового();
   
   ХарНом.Записать();
   
   //Владелец характеристики номенклатуры
   ВладелецХарНом = СсылкаНаХарНом;
   
   //Сейчас попробуем поработать с регистрами сведений
   //Надо добавить записи в регистры сведений
   ШтрихЭлНом                                = РегистрыСведений.Штрихкоды.СоздатьМенеджерЗаписи();
   ШтрихЭлНом.Владелец                        = СсылкаНаОбъект;
   ШтрихЭлНом.Код                            = ПолучитьНовыйКодДляРегистраСведений("Штрихкоды");
   ШтрихЭлНом.ТипШтрихкода                    = ПланыВидовХарактеристик.ТипыШтрихкодов.EAN128;
   ШтрихЭлНом.Штрихкод                        = "12345678901234567890";
   ШтрихЭлНом.ЕдиницаИзмерения                = СсылкаНаОбъектЕдИзм;
   ШтрихЭлНом.ХарактеристикаНоменклатуры    = ВладелецХарНом;
   ШтрихЭлНом.Качество                        = Справочники.Качество.Новый;
   
   ШтрихЭлНом.Записать();
3 shoma
 
25.06.07
22:47
Я таким образом добавляю, но у меня к сожалению не идет отбор по характеристикам Размер, Рост, Цвет.
4 Злобный Фей
 
25.06.07
23:10
Не совсем понятно, при чем тут штрих коды...ну да бог с ними

Ваще если ничего не путаю, то вот так мона чета добавить: (сорри за ошибки и неточности, нема под рукой 1С)

Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
Характеристика.Владелец = НоменклатураСсылка;
Характеристика.Записать();

//Дальше желательно знать, какие у твоей характеристики свойства...

Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
Запись.Объект = Характеристика.Ссылка;
ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет");
Запись.Свойство = ВидСвойства;
Запись.Записать();
//повторяешь это для каждого вида свойств

//Дальше мона автоматом создать наименование характеристики
СвойстваХарактеристики = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
СвойстваХарактеристики.Отбор.Объект.Значение = Характеристика.Ссылка;
СвойстваХарактеристики.Отбор.Объект.Использование = Истина;
Характеристика.СформироватьНаименование(СвойстваХарактеристики.Выгрузить());
Хатактеристика.Записать();
5 Злобный Фей
 
25.06.07
23:11
ЗЫ: и не надо плодить сто веток
6 shoma
 
25.06.07
23:15
Большое Спасибо :)! Попробую разобраться.
7 shoma
 
26.06.07
02:00
Все получилось!
Вот код:
   Размер = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Размер);
   Рост = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Рост);
   Цвет = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(Цвет);
   
   Характеристика = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
   Характеристика.Владелец = СсылкаНаОбъект;
   Характеристика.Наименование = Размер + ", " + Рост + ", " + Цвет;
   Характеристика.Записать();
   
   Запись = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   //Размер
   Запись.Объект = Характеристика.Ссылка;
   ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Размер");
   Запись.Свойство = ВидСвойства;
   Запись.Значение    = Размер;
   Запись.Записать();
   
   //Рост
   ЗаписьРост = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   ЗаписьРост.Объект = Характеристика.Ссылка;
   ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Рост");
   ЗаписьРост.Свойство = ВидСвойства;
   ЗаписьРост.Значение    = Рост;
   ЗаписьРост.Записать();

   //Цвет
   ЗаписьЦвет = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
   ЗаписьЦвет.Объект = Характеристика.Ссылка;
   ВидСвойства = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Цвет");
   ЗаписьЦвет.Свойство = ВидСвойства;
   ЗаписьЦвет.Значение    = Цвет;
   ЗаписьЦвет.Записать();
   
   СвойстваХарактеристики = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
   СвойстваХарактеристики.Отбор.Объект.Значение = Характеристика.Ссылка;
   СвойстваХарактеристики.Отбор.Объект.Использование = Истина;
   Характеристика.СформироватьНаименование(СвойстваХарактеристики.Выгрузить());
   Характеристика.Записать();

А как добавить Основного поставщика?
Следующее не работает:
НовыйЭлНом = Справочники.Номенклатура.СоздатьЭлемент();        
СсылкаОснПоставщик = Справочники.Контрагенты.НайтиПоКоду(00003);
НовыйЭлНом.ОсновнойПоставщик = СсылкаОснПоставщик;

//Запишемся
НовыйЭлНом.Записать();
8 Злобный Фей
 
26.06.07
06:08
СсылкаОснПоставщик = Справочники.Контрагенты.НайтиПоКоду("00003");
9 Alexpoloh
 
26.06.07
07:22
10 blake
 
10.11.07
12:17
тут бы еще проверочку добавить чтобы не добалялось уже имеющееся значение свойства
11 Zjama
 
15.02.08
04:57
(0) Если не секрет, где используешь этот код? Для автоматического создания характеристик - это понятно, а вот откуда и куда....
12 Stepa86
 
15.02.08
10:16
для работы со свойствами объектов (в том числе с характеристикой) есть Обработка "ЗначенияСвойствОбъекта". Сама собирает данные по регистрам и записывает что нужно куда надо...