Программное создание характеристик

1. Иван Сидоров (succub1_5) 31 08.06.15 17:54 Сейчас в теме
Здравствуйте, в УТ 11.1 передается ТЗ (КодНоменклатуры, Хар1, Знач1 и т.п. информация).
По знаниям УТ10 накидал простенький код:
Характеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ХарЗнСвойствНаименование);
		Если НЕ ЗначениеЗаполнено(Характеристика) Тогда
			
			СпрХар = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
			СпрХар.Владелец = СпрНомРодитель.Ссылка;
			СпрХар.Наименование = ХарЗнСвойствНаименование;
			СпрХар.Записать();
			
			//Проверим свойство
			Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ХарВидыСвойств);
			Если НЕ ЗначениеЗаполнено (Свойство) Тогда
				НовСв = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
				НовСв.ТипЗначения = "Дополнительное значение";
				НовСв.Наименование = ХарВидыСвНаименование;
				НовСв.Записать();
				Свойство = НовСв.Ссылка;
			Иначе
				Свойство = Свойство.Ссылка;
			КонецЕсли;
			
			//Проверим значение
			ЗначениеСвойства = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ХарЗнСвойствНаименование);
			Если НЕ ЗначениеЗаполнено(ЗначениеСвойства) Тогда
				НовЗнач = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
				НовЗнач.Наименование = ХарЗнСвойствНаименование;
				НовЗнач.Владелец = Свойство.Ссылка;
				НовЗнач.Записать();
				Значение = НовЗнач.Ссылка;
			Иначе
				Значение = ЗначениеСвойства.Ссылка;
			КонецЕсли;
			
			//Регистр
			ТаблицаДляЗаписиВрегистр = Новый ("ТаблицаЗначений");
			ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Свойство");
			ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Значение");
			
			НоваяСтрока = ТаблицаДляЗаписиВРегистр.Добавить();
			НоваяСтрока.Свойство = Свойство;
			НоваяСтрока.Значение = Значение;
			//
			ЗаписьЗначенияВРегистр = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
			НаборЗаписейЗначенияСвойств = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
			
			Для Каждого Строка из ТаблицаДляЗаписиВРегистр Цикл
				Если ЗначениеЗаполнено(Строка.Свойство) И ЗначениеЗаполнено(Строка.Значение) Тогда
					Запись = НаборЗаписейЗначенияСвойств.Добавить();				
					Запись.Объект = СпрХар.Ссылка;
					Запись.Свойство = Строка.Свойство;
					Запись.Значение = Строка.Значение;			
				КонецЕсли;
			КонецЦикла;
			НаборЗаписейЗначенияСвойств.Записать();
			
		Иначе
			
		КонецЕсли;
...Показать Скрыть

В общем код отрабатывает, создается Характеристика, Свойство и Значение свойства. А если в карточке номенклатуры открыть Характеристики - любое значение, то в карточке Характеристики будет только наименование, а внизу поля с перенесенными видами свойств остаются пустые, жмешь на выбор (...) кидает в Выберите значение свойств характеристика, можно выбрать нужное. А почему оно сразу не подставилось?
ЧЯДНТ?
Ответы
2. Михаил Зотов (ZOMI) 471 08.06.15 18:19 Сейчас в теме
НовХарСтрокаТЧ = СпрХар.ДополнительныеРеквизиты.Добавить();
НовХарСтрокаТЧ.Свойство = Свойство;
НовХарСтрокаТЧ.Значение = ЗначениеХарактеристики;
.... // и тд
СпрХар.Записать();
...Показать Скрыть


как-то так
succub1_5; +1 Ответить
3. Сергей Смирнов (Serginio) 605 08.06.15 20:27 Сейчас в теме
НовСв.ТипЗначения Должно быть ОписаниеТипов
4. Иван Сидоров (succub1_5) 31 09.06.15 09:49 Сейчас в теме
Всем спасибо, получилось =)
5. Владимир Командровский (Wefast) 03.01.17 20:07 Сейчас в теме
(3)

если попытаться сделать так: Новый Описаниетипов("Дополнительное значение") то так не работает.
Оставьте свое сообщение