8.х внешняя обработка для изменения свойств номенклатуры

Тема в разделе "Отчеты и обработки для "1С:Предприятие 8"", создана пользователем Simon-Phoenix, 16 ноя 2007.

Статус темы:
Закрыта.
  1. TopicStarter Overlay
    Simon-Phoenix
    Offline

    Simon-Phoenix

    Регистрация:
    16 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    1С восьмерка
    занимаюсь совсем недавно, так что может вопрос и простой, но для меня сложный )

    ситуация: нужно изменить одно из свойств товара, в часности Основной производитель

    есть форма, в которой указывается изменяемое свойство и какое значение ему присваивать, подгрузка списка номенклатуры, у которой нужно изменить указанное свойство, осуществляется из экселевского файла

    модуль формы:

    Код:
    Перем ВыборФайла, Exel;
    
    
    Процедура КнопкаВыполнитьНажатие(Элемент)
    
    Если ВыборФайла.Выбрать() Тогда
    
    Файл = Exel.Workbooks.Open(ВыборФайла.ПолноеИмяФайла);
    Табл = Файл.WorkSheets(1);
    
    ЗначенияСвойствОбъектов = РегистрыСведений.ЗначенияСвойствОбъектов;
    НаборСвойств = ЗначенияСвойствОбъектов.СоздатьНаборЗаписей();
    
    
    Для СчСтрок = 1 По КоличествоСтрок Цикл
    
    КодТовара = Табл.Cells(СчСтрок, 1).Text;
    Товар = Справочники.Номенклатура.НайтиПоНАИМЕНОВАНИЮ(КодТовара).Ссылка;
    
    Если Товар.Пустая() Тогда
    Сообщить("Не найден элемент справочника: Код - " + КодТовара + " Наименование - " + Табл.Cells(СчСтрок, 1).Text);
    
    Продолжить;
    
    КонецЕсли;
    
    НовоеСвойство = НаборСвойств.Добавить();
    НовоеСвойство.Объект  = Товар;
    НовоеСвойство.Свойство = Свойство;
    НовоеСвойство.Значение = Значение;
    
    
    КонецЦикла;
    НаборСвойств.Записать();
    
    КонецЕсли;
    
    
    Файл.Close();
    Exel.Quit();
    КонецПроцедуры
    
    
    Exel = Новый COMОбъект("Excel.Application",);
    ВыборФайла = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
    ВыборФайла.МножественныйВыбор = Ложь;
    

    проблема в том, что фактически создается новый РегистрыСведений.ЗначенияСвойствОбъектов, затирая уже имеющийся, а мне же надо, чтобы он добавлял запись, если таковой не присутствует, либо изменял уже существующую, меняя в ней свойство...третий день сижу, зарывшись в пособия разработчика 1С )...поможите плз )
  2. TopicStarter Overlay
    Simon-Phoenix
    Offline

    Simon-Phoenix

    Регистрация:
    16 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    попытался добавить в код
    НаборСвойств.Отбор.Объект.Установить(Товар);
    НаборСвойств.Отбор.Свойство.Установить(Свойство);
    НаборСвойств.Прочитать();
    если ставлю перед
    НовоеСвойство = НаборСвойств.Добавить();
    НовоеСвойство.Объект = Товар;
    НовоеСвойство.Свойство = Свойство;
    НовоеСвойство.Значение = Значение;
    то новые записи добавляет, но старые не редактирует, ругаясь, что запись уже существует в списке...т.е. ведет себя так, будто Запись=Ложь
    если ставлю перед
    НаборСвойств.Записать(Истина);
    то вообще никакой реакции не получаю, будто обработка и не выполнялась )
  3. TopicStarter Overlay
    Simon-Phoenix
    Offline

    Simon-Phoenix

    Регистрация:
    16 ноя 2007
    Сообщения:
    11
    Симпатии:
    0
    Баллы:
    1
    все, разобрался
Статус темы:
Закрыта.

Поделиться этой страницей