Имя: Пароль:
1C
1С v8
1С 8.2 УТ 10.3 Создание характеристики номенклатуры
0 igel1969
 
28.08.14
18:11
Здравствуйте!

Включил в настройках параметров учета "Использовать характеристики номенклатуры". Вручную создавать характеристики удается. А программно - не смог ((((
Посмотрите, пожалуйста, что я забыл добавить в код?
Свойство объектов под названием МРЦ создано и имеет числовой тип значений. Когда мой программный код создает документ, то в регистре сведений создается одна запись, но в самом документе, в закладке "Характеристики" ее почему-то не видно. А если запустить код еще раз, то второй документ создастся, а вторая запись в регистре сведений - нет (((( вообще не понимаю.

Nomenkl = Справочники.Номенклатура.СоздатьЭлемент();
Nomenkl.Наименование = "3";
Nomenkl.НаименованиеПолное = "3";
Nomenkl.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
Nomenkl.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
Nomenkl.ВестиУчетПоХарактеристикам = True;
Nomenkl.Записать();

Y = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
Y.Владелец = Nomenkl.Ссылка;
Y.ЕдиницаПоКлассификатору = Nomenkl.БазоваяЕдиницаИзмерения;
Y.Наименование = Nomenkl.БазоваяЕдиницаИзмерения.Наименование;
Y.Коэффициент = 1;
Y.Записать();
Nomenkl.ЕдиницаДляОтчетов = Y.Ссылка;
Nomenkl.ЕдиницаХраненияОстатков  = Y.Ссылка;
Nomenkl.Записать();

X = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("МРЦ");
MRZ = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
T = MRZ.Добавить();
T.Объект = Nomenkl.Ссылка;
T.Свойство = X.Ссылка;
T.Значение = 55.43;
MRZ.Записать();
1 igel1969
 
28.08.14
18:13
(0) т.е. не в документе, а в номенклатуре, извините, уже мозги кипят
2 igel1969
 
28.08.14
18:22
добавил еще
MRZ.Отбор.Объект.Установить(Nomenkl.Ссылка);
MRZ.Отбор.Свойство.Установить(X.Ссылка);

после этого стало создавать для каждой номенклатуры новую запись в регистре сведений, но все-равно в номенклатуре ее не видно (((
3 mehfk
 
28.08.14
18:30
Ты не видишь характеристики потому что ты их не создаешь.
4 mehfk
 
28.08.14
18:31
То что ты создаешь можно попробовать увидеть на вкладке "Свойства".
5 igel1969
 
29.08.14
09:18
сам нашел ошибку, теперь код выглядит так и работает:

Nomenkl = Справочники.Номенклатура.СоздатьЭлемент();
Nomenkl.Наименование = "33333";
Nomenkl.НаименованиеПолное = "33333";
Nomenkl.БазоваяЕдиницаИзмерения = Справочники.КлассификаторЕдиницИзмерения.НайтиПоНаименованию("шт");
Nomenkl.ВидНоменклатуры = Справочники.ВидыНоменклатуры.НайтиПоНаименованию("Товар");
Nomenkl.ВестиУчетПоХарактеристикам = True;
Nomenkl.Записать();

Y = Справочники.ЕдиницыИзмерения.СоздатьЭлемент();
Y.Владелец = Nomenkl.Ссылка;
Y.ЕдиницаПоКлассификатору = Nomenkl.БазоваяЕдиницаИзмерения;
Y.Наименование = Nomenkl.БазоваяЕдиницаИзмерения.Наименование;
Y.Коэффициент = 1;
Y.Записать();
Nomenkl.ЕдиницаДляОтчетов = Y.Ссылка;
Nomenkl.ЕдиницаХраненияОстатков  = Y.Ссылка;
Nomenkl.Записать();

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


X = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("МРЦ");
MRZ = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
MRZ.Отбор.Объект.Установить(Nomenkl.Ссылка);
MRZ.Отбор.Свойство.Установить(X.Ссылка);
T = MRZ.Добавить();
T.Объект = Nomenkl.Ссылка;
T.Свойство = X.Ссылка;
T.Значение = R.Ссылка;
MRZ.Записать();