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

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

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

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


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

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

Вакансии

Программист 1С
Благовещенск (Амурская область)
зарплата от 40 000 руб. до 70 000 руб.
Полный день

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

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

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

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