8.х УТ Изменение значений свойств в Номенклатуре (УТ)

Тема в разделе ""1С:Управление торговлей УТ"", создана пользователем TAHk, 13 окт 2006.

  1. TopicStarter Overlay
    TAHk
    Offline

    TAHk Опытный в 1С

    Регистрация:
    31 авг 2006
    Сообщения:
    100
    Симпатии:
    0
    Баллы:
    26
    Бьюсь который день - не получается - мозги закипели. :unsure:
    Поможите, объясните кто-нить, как изменять/просматривать значения свойств (и сами свойства) у элементов справочника Номенклатура (УТ) программным путем.

    Вложения:

  2. Gusev
    Offline

    Gusev Опытный в 1С

    Регистрация:
    4 авг 2011
    Сообщения:
    81
    Симпатии:
    0
    Баллы:
    26
    Приподниму, ибо сам в свое время оч.долго с этим разбирался :D

    Читаем свойства:

    Код:
    Функция ОпределитьЗначениеСвойства(ЗначениеСвойства,ВыбОбъект) Экспорт
    Перем Стр;
    
    Стр = "";
    
    Спр = ПланыВидовХарактеристик.СвойстваОбъектов;
    ВыбСпр = Спр.НайтиПоНаименованию(ЗначениеСвойства);
    Если Не ВыбСпр = Спр.ПустаяСсылка() Тогда
    Запрос = Новый Запрос("
    |Выбрать * Из РегистрСведений.ЗначенияСвойствОбъектов
    |ГДЕ Объект = &ВыбОбъект И Свойство = &ВыбСвойство");
    
    Запрос.УстановитьПараметр("ВыбОбъект",ВыбОбъект);
    Запрос.УстановитьПараметр("ВыбСвойство",ВыбСпр);
    
    Выборка = Запрос.Выполнить().Выбрать();
    Выборка.Следующий();
    Стр = Выборка.Значение;
    КонецЕсли;    
    
    Возврат Стр;    
    КонецФункции
    
    
    Изменяем свойства:

    Код:
    СвойствоДатаПоступления = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("3");
    ЗП = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗП.Объект = Товар.Ссылка;
    ЗП.Свойство = СвойствоДатаПоступления;
    ЗП.Значение = ТекущаяДата();
    ЗП.Записать();
    
    СвойствоДатаНачалаПродаж = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("8");
    ЗП = РегистрыСведений.ЗначенияСвойствОбъектов.СоздатьМенеджерЗаписи();
    ЗП.Объект = Товар.Ссылка;
    ЗП.Свойство = СвойствоДатаНачалаПродаж;
    ЗП.Значение = Формат(НН.Дата, "ДЛФ=Д");
    ЗП.Записать();
    
    
    В первом куске мы передаем в функцию само св-во и объект, по которому это св-во ищем. Например:
    Код:
    ОтборДатаНачалаПродаж = Новый Структура("Объект,Свойство");
    ОтборДатаНачалаПродаж.Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоКоду("8");
    
    Для каждого ТД Из ТабДанные Цикл
    //
    ОтборДатаНачалаПродаж.Объект = ТД.Номенклатура;
    ТД.ДатаНачалаПродаж = ОпределитьЗначениеСвойства(ОтборДатаНачалаПродаж.Свойство,ТД.Номенклатура);
    //
    КонецЦикла;
    
    
    Во втором куске кода св-во "Дата поступления" у меня в справочнике под кодом "3", св-во "Дата начала продаж" под кодом "8".
    Надеюсь кому-нибудь еще проигодится...

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