1. succub1_5 59 08.06.15 17:54 Сейчас в теме

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

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

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


как-то так
succub1_5; +1 Ответить
3. Serginio 756 08.06.15 20:27 Сейчас в теме
НовСв.ТипЗначения Должно быть ОписаниеТипов
succub1_5; +1 Ответить
5. Wefast 03.01.17 20:07 Сейчас в теме
(3)

если попытаться сделать так: Новый Описаниетипов("Дополнительное значение") то так не работает.
4. succub1_5 59 09.06.15 09:49 Сейчас в теме
Всем спасибо, получилось =)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Разработчик 1С
Москва
зарплата от 100 000 руб. до 160 000 руб.
Полный день

Программист 1С
Москва
зарплата от 80 000 руб.
Полный день

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству