Версия для печати темы (https://pro1c.org.ua/index.php?s=e3c1396cb44e90c01facf861629a5fdf&showtopic=67621)

Нажмите сюда для просмотра этой темы в обычном формате

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 _ Программирование в 1С Предприятие 8.3 _ Як отримати значення свойства номенклатури

Автор: berest.andriy 25.08.24, 21:21

доброго вечора. Хто підкаже як отримати значення свойства номенклатури
наприклад є номенклатура ТОВАР, в неї є свойство розмірА та розмірБ, (розмірА=30, розмірБ=70)
як програмно отримати скажімо РозмірА?
знайшов ось такий код

ЗначениеСвойства = РегистрыСведений.ЗначенияСвойствОбъектов.Получить(
   Новый Структура("Объект, Свойство", ОбъектСсылка, ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию(ИмяСвойства))
).Значение;

але не можу зрозуміти що має бути в ОбъектСсылка
пробував підставити значення типу Справочники.найтипонаименованию("ТОВАР") - пусто

УТП 10,30

Автор: Slon747 26.08.24, 6:23

berest.andriy @ Вчера, 22:21 * ,
ОбъектСсылка - посиланная на номенклатуру.
Ваш код пацює

Автор: berest.andriy 26.08.24, 8:58

Slon747 @ Сегодня, 7:23 *
ні, якраз і не працює
нічого не видає. думаю там десь треба приліпити Обьект

ось так працює через запрос

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

Автор: Slon747 26.08.24, 9:05

berest.andriy @ Сегодня, 9:58 * ,
Я майже завжди використовую запит. Але тут перевіряв через Получить() і отримав значення свойства.
Але у вас НайтиПоНаименованию(). Тому треба звернути увагу на другий параметр ф-ціі

Автор: berest.andriy 26.08.24, 12:15

Slon747 @ Сегодня, 10:05 * ,
можете детальніше пояснити де застосовуєте получить?

Автор: denis84 26.08.24, 12:42

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


Автор: Slon747 26.08.24, 13:21

Цитата(berest.andriy @ 26.08.24, 13:15) *
можете детальніше пояснити де застосовуєте получить?


Це у вас РегистрыСведений.ЗначенияСвойствОбъектов.Получить()

Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7
https://pro1c.org.ua