Имя: Пароль:
1C
1С v8
УТ11: Прочитать характеристики номенклатуры
0 Manonegro
 
04.11.12
15:39
Здравствуйте, помогите добраться до характеристик номенклатуры, т.е., например, размер и цвет для обуви и т.д. В программировании новичок, так что прошу сразу ногами по голове не бить.
1 shuhard
 
04.11.12
15:40
(0) в УТ 11 усё живет в ТЧ справочника
2 Manonegro
 
04.11.12
15:59
(1) ХарактеристикиНоменклатуры?
3 Wobland
 
04.11.12
16:00
(2) я понимаю, новичок, что такого. но сходить и посмотреть же можно было, не?
4 Manonegro
 
04.11.12
16:26
Если ВидНоменклатуры.ИспользоватьХарактеристики Тогда
           Характеристики = Справочники.ХарактеристикиНоменклатуры.Выбрать(,Выборка.Ссылка);
           Характеристики.Следующий();
           Для каждого Реквизит Из Выб.ДополнительныеРеквизиты Цикл
           
               
           КонецЦикла;
       КонецЕсли;

Пробую как-то так, но получается фигня какая-то...
5 Wobland
 
04.11.12
16:36
ВЫБРАТЬ
   ХарактеристикиНоменклатуры.Владелец,
   ХарактеристикиНоменклатуры.Наименование
ИЗ
   Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры

не?
6 Wobland
 
04.11.12
16:37
ГДЕ
   ХарактеристикиНоменклатуры.Владелец = &Владелец
7 Manonegro
 
04.11.12
18:50
(5) Да, именно оно. Большое спасибо. Пошёл учить язык запросов.
8 Manonegro
 
05.11.12
00:30
Нет. Всё-таки не оно. У кондиционеров подцепило характеристики, а для обуви результат запроса пустой, хотя куча характеристик присутствует: размер, полнота, цвет.
9 Manonegro
 
05.11.12
11:58
У справочника ХарактеристикиНоменклатуры два владельца: Номенклатура и ВидыНоменклатуры. Может собака здесь порылась?
10 Manonegro
 
05.11.12
13:10
Неужели никто не поможет с запросом? Не может такого быть...
11 Manonegro
 
05.11.12
13:41
Запрос = Новый Запрос;
Запрос.Текст = "ВЫБРАТЬ
|    ХарактеристикиНоменклатуры.Наименование
|ИЗ
|    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
|ГДЕ
|    ХарактеристикиНоменклатуры.Владелец = &Владелец";

Запрос.УстановитьПараметр("Владелец", Выборка.Ссылка);
Характеристики = Запрос.Выполнить().Выбрать();

На примере демо-базы УТ11 характеристики кондиционеров попадают в запрос, а обуви (размер, цвет, полнота) нет. Запрос пустой. Ума не приложу, почему так. Помогите, пожалуйста, разобраться.
12 Wobland
 
05.11.12
14:00
(11) а это всё потому, что для "Ботинки женские демисезонные" характеристики общие для вида номенклатуры. а у вида номенклатуры "Обувь" вполне всё есть
13 Manonegro
 
05.11.12
14:52
(12) а где узнать это? Ну, то, что общие для Вида номенклатуры, а не для элемента номенклатуры? Какой реквизит за это отвечает?
14 Wobland
 
05.11.12
14:53
(13) ИспользованиеХарактеристик у ВидаНоменклатуры
15 Wobland
 
05.11.12
15:16
ВЫБРАТЬ
   Номенклатура.Ссылка,
   ХарактеристикиНоменклатуры.Ссылка КАК Ссылка1
ИЗ
   Справочник.Номенклатура КАК Номенклатура
       ЛЕВОЕ СОЕДИНЕНИЕ Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
       ПО (ВЫБОР
               КОГДА Номенклатура.ВидНоменклатуры.ИспользованиеХарактеристик = ЗНАЧЕНИЕ(Перечисление.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ОбщиеДляВидаНоменклатуры)
                   ТОГДА ХарактеристикиНоменклатуры.Владелец = Номенклатура.ВидНоменклатуры
               ИНАЧЕ ХарактеристикиНоменклатуры.Владелец = Номенклатура.Ссылка
           КОНЕЦ)
16 Manonegro
 
05.11.12
15:19
(15) Огромное спасибо, мил человек!
Сделал так:


           Запрос = Новый Запрос;
           Запрос.Текст = "ВЫБРАТЬ
                          |    ХарактеристикиНоменклатуры.Наименование
                          |ИЗ
                          |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
                          |ГДЕ
                          |    ХарактеристикиНоменклатуры.Владелец = &Владелец";
                         
           Параметр = ?(ВидНоменклатуры.ИспользованиеХарактеристик = Перечисления.ВариантыВеденияДополнительныхДанныхПоНоменклатуре.ОбщиеДляВидаНоменклатуры, ВидНоменклатуры, Выборка.Ссылка);
           Запрос.УстановитьПараметр("Владелец", Параметр);
           Характеристики = Запрос.Выполнить().Выбрать();
17 Wobland
 
05.11.12
15:20
(16) тоже вариант. у меня консоль поломалась, я параметры установить не могу, поэтому делал для всего списка ;)
18 Manonegro
 
08.11.12
16:00
Поднимаю ветку.
Этим запросом удалось перебрать все наименования характеристик, а как перебрать ДополнительныеРеквизиты, которые входят в характеристики?
Например, у обуви есть доп. реквизиты: размер, полнота, цвет. Нужно для данной позиции номенклатуры вывести список доп. характеристик со значениями:

размер | полнота | цвет
 37      |      1        | коричневый
 38      |      5        | черный

Помогите, пожалуйста. Очень нужно.
19 Manonegro
 
08.11.12
16:51
Запрос = Новый Запрос("ВЫБРАТЬ
                          |    ХарактеристикиНоменклатуры.ДополнительныеРеквизиты.(
                          |        Свойство.Наименование,
                          |        Значение
                          |    )
                          |ИЗ
                          |    Справочник.ХарактеристикиНоменклатуры КАК ХарактеристикиНоменклатуры
                          |ГДЕ
                          |    ХарактеристикиНоменклатуры.Владелец = &Владелец");


Фигня какая-то получается...
20 Wobland
 
08.11.12
16:55
>Помогите, пожалуйста. Очень нужно.
вот ваще не аргумент

слепая модификация твоего прежнего варианта:
ВЫБРАТЬ
   ХарактеристикиНоменклатурыДополнительныеРеквизиты.*
ИЗ
   Справочник.ХарактеристикиНоменклатуры.ДополнительныеРеквизиты КАК ХарактеристикиНоменклатурыДополнительныеРеквизиты
ГДЕ
   ХарактеристикиНоменклатуры.Владелец = &Владелец
21 Manonegro
 
08.11.12
17:21
Откуда возьмется ХарактеристикиНоменклатуры.Владелец?

Мы ведь выбираем из ХарактеристикиНоменклатурыДополнительныеРеквизиты.
22 Wobland
 
08.11.12
17:22
(21) ХарактеристикиНоменклатурыДополнительныеРеквизиты.Ссылка.Владелец
сам уже мог догадаться
23 Manonegro
 
08.11.12
22:50
(22) Что бы я делал без тебя, Вобланд! Дай бог тебе здоровья.