Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
25 ноя 2024, 05:14

Код обработки Свойств номенклатуры не добавляет значения

Автор Василий Кокорин, 20 ноя 2016, 01:25

0 Пользователей и 1 гость просматривают эту тему.

Василий Кокорин

Обработка загружает из EXCEL свойства номенклатуры. Cуть в том, что они добавлятся только в новую, создаваемую номенклатуру. А вот если я хочу обновить уже имеющуюся, то ничего не происходит.
Помогите исправить КОД что бы при обновлении значение тоже записывалось. А лучше проверялось, есть такое или нет в справочнике ЗначенияСвойствОбъектов, если есть то бралось оттуда, если нет, тогда записывалось и подставлялось. Так избежим гору дублей свойств.

Процедура ЗаписатьСвойстваНоменлатуры(ТекущаяСтрокаТаблицы, ТекНом)

НаборЗаписейЗначенияСвойств = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
// Производитель
Если ЗначениеЗаполнено(КолонкаПроизводитель) Тогда
Если ЗначениеЗаполнено(ТекущаяСтрокаТаблицы[КолонкаПроизводитель]) Тогда

ЗначениеСвойства = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ТекущаяСтрокаТаблицы[КолонкаПроизводитель]);
Если ЗначениеСвойства.Пустая() Тогда
НовЗначСв = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
НовЗначСв.Владелец = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Производитель");
НовЗначСв.Наименование = ТекущаяСтрокаТаблицы[КолонкаПроизводитель];
НовЗначСв.Записать();
ЗначениеСвойства = НовЗначСв.Ссылка;
КонецЕсли;


Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект   = ТекНом;
Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Производитель");
Запись.Значение = ЗначениеСвойства;

КонецЕсли;
КонецЕсли;

// ПартНомер
Если ЗначениеЗаполнено(КолонкаПартНомер) Тогда
Если ЗначениеЗаполнено(ТекущаяСтрокаТаблицы[КолонкаПартНомер]) Тогда

ЗначениеСвойства = Справочники.ЗначенияСвойствОбъектов.НайтиПоНаименованию(ТекущаяСтрокаТаблицы[КолонкаПартНомер]);
Если ЗначениеСвойства.Пустая() Тогда
НовЗначСв = Справочники.ЗначенияСвойствОбъектов.СоздатьЭлемент();
НовЗначСв.Владелец = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Код производителя, MPN");
НовЗначСв.Наименование = ТекущаяСтрокаТаблицы[КолонкаПартНомер];
НовЗначСв.Записать();
ЗначениеСвойства = НовЗначСв.Ссылка;
КонецЕсли;

Запись = НаборЗаписейЗначенияСвойств.Добавить();
Запись.Объект   = ТекНом;
Запись.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Код производителя, MPN");
Запись.Значение = ЗначениеСвойства;

КонецЕсли;
КонецЕсли;

НаборЗаписейЗначенияСвойств.Отбор.Объект.Установить(ТекНом);
Попытка
НаборЗаписейЗначенияСвойств.Записать();
Исключение
КонецПопытки;

КонецПроцедуры

Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск