Программное создание характеристик
Здравствуйте, в УТ 11.1 передается ТЗ (КодНоменклатуры, Хар1, Знач1 и т.п. информация).
По знаниям УТ10 накидал простенький код:
В общем код отрабатывает, создается Характеристика, Свойство и Значение свойства. А если в карточке номенклатуры открыть Характеристики - любое значение, то в карточке Характеристики будет только наименование, а внизу поля с перенесенными видами свойств остаются пустые, жмешь на выбор (...) кидает в Выберите значение свойств характеристика, можно выбрать нужное. А почему оно сразу не подставилось?
ЧЯДНТ?
По знаниям УТ10 накидал простенький код:
Характеристика = Справочники.ХарактеристикиНоменклатуры.НайтиПоНаименованию(ХарЗнСвойствНаименование);
Если НЕ ЗначениеЗаполнено(Характеристика) Тогда
СпрХар = Справочники.ХарактеристикиНоменклатуры.СоздатьЭлемент();
СпрХар.Владелец = СпрНомРодитель.Ссылка;
СпрХар.Наименование = ХарЗнСвойствНаименование;
СпрХар.Записать();
//Проверим свойство
Свойство = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию(ХарВидыСвойств);
Если НЕ ЗначениеЗаполнено (Свойство) Тогда
НовСв = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.СоздатьЭлемент();
НовСв.ТипЗначения = "Дополнительное значение";
НовСв.Наименование = ХарВидыСвНаименование;
НовСв.Записать();
Свойство = НовСв.Ссылка;
Иначе
Свойство = Свойство.Ссылка;
КонецЕсли;
//Проверим значение
ЗначениеСвойства = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ХарЗнСвойствНаименование);
Если НЕ ЗначениеЗаполнено(ЗначениеСвойства) Тогда
НовЗнач = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
НовЗнач.Наименование = ХарЗнСвойствНаименование;
НовЗнач.Владелец = Свойство.Ссылка;
НовЗнач.Записать();
Значение = НовЗнач.Ссылка;
Иначе
Значение = ЗначениеСвойства.Ссылка;
КонецЕсли;
//Регистр
ТаблицаДляЗаписиВрегистр = Новый ("ТаблицаЗначений");
ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Свойство");
ТаблицаДляЗаписиВРегистр.Колонки.Добавить("Значение");
НоваяСтрока = ТаблицаДляЗаписиВРегистр.Добавить();
НоваяСтрока.Свойство = Свойство;
НоваяСтрока.Значение = Значение;
//
ЗаписьЗначенияВРегистр = РегистрыСведений.ДополнительныеСведения.СоздатьМенеджерЗаписи();
НаборЗаписейЗначенияСвойств = РегистрыСведений.ДополнительныеСведения.СоздатьНаборЗаписей();
Для Каждого Строка из ТаблицаДляЗаписиВРегистр Цикл
Если ЗначениеЗаполнено(Строка.Свойство) И ЗначениеЗаполнено(Строка.Значение) Тогда
Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект = СпрХар.Ссылка;
Запись.Свойство = Строка.Свойство;
Запись.Значение = Строка.Значение;
КонецЕсли;
КонецЦикла;
НаборЗаписейЗначенияСвойств.Записать();
Иначе
КонецЕсли;
ПоказатьВ общем код отрабатывает, создается Характеристика, Свойство и Значение свойства. А если в карточке номенклатуры открыть Характеристики - любое значение, то в карточке Характеристики будет только наименование, а внизу поля с перенесенными видами свойств остаются пустые, жмешь на выбор (...) кидает в Выберите значение свойств характеристика, можно выбрать нужное. А почему оно сразу не подставилось?
ЧЯДНТ?
По теме из базы знаний
- Автоматическое создание характеристик номенклатуры в 1С
- Программное создание реквизита управляемой формы заданной точности
- Программное создание номенклатуры. УТ 11.4
- Программное создание характеристик с дополнительными реквизитами в УНФ 1.6
- Программное создание корректировочного счета-фактуры выданного в УПП 1.3
Ответы
В избранное
Подписаться на ответы
Сортировка:
Древо развёрнутое
Свернуть все
Вакансии
1С-Программист (интегратор Битрикс24)
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день
Санкт-Петербург
зарплата от 150 000 руб. до 250 000 руб.
Полный день