Имя: Пароль:
1C
1С v8
8.3 УФ: Найти номенклатуру по дополнительному реквизиту
0 smolik
 
03.01.17
15:33
Для номенклатуры был создан дополнительный реквизит "СтарыйКод" с типом число.

Теперь необходимо найти номенклатуру по числу, которое храниться в доп реквизите. Пытаюсь найти с помощью метода НайтиПоРеквизиту.

РеквСтарыйКод = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("СтарыйКод");

ЧтоНашли = ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоРеквизиту(РеквСтарыйКод, Число(Код));

Постоянно ругается что не правильно указан Реквизит. Подскажите каким образом можно найти ссылку на справочник по полю дополнительного реквизита(какие еще есть варианты)?
1 НаборДанных
 
03.01.17
15:49
(0)Точно не в ПВХ, в РС смотри.
2 smolik
 
03.01.17
16:10
Высмотрел что для номенклатуры все доп реквизиты хранятся в ТЧ ДополнительныеРеквизиты с колонками Свойство(ПВХ), Значение(Характеристика), ТекстоваяСтрока

Может кто подскажет как сделать поиск по ТЧ номенклатуры.
3 H A D G E H O G s
 
03.01.17
16:29
(2) запросом
4 Cool_Profi
 
03.01.17
16:33
зн = ном.ДополнительныеРеквизиты.Найти(РеквСтарыйКод,"Свойство").Значение;
5 smolik
 
03.01.17
17:44
(3) Наковырял все таки консолью запрос:
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    Номенклатура.Наименование,
        |    Номенклатура.ДополнительныеРеквизиты.(
        |        Свойство,
        |        Значение
        |    ),
        |    Номенклатура.Ссылка КАК СтарыйКод
        |ИЗ
        |    Справочник.Номенклатура КАК Номенклатура
        |ГДЕ
        |    Номенклатура.ЭтоГруппа = ЛОЖЬ
        |    И Номенклатура.ДополнительныеРеквизиты.Значение = &Значение
        |    И Номенклатура.ДополнительныеРеквизиты.Свойство = &Свойство";

    Запрос.УстановитьПараметр("Значение", Число(Код));
    Запрос.УстановитьПараметр("Свойство", ПланыВидовХарактеристик.ДополнительныеРеквизитыИСведения.НайтиПоНаименованию("СтарыйКод"));
6 Cool_Profi
 
03.01.17
18:54
"ВЫБРАТЬ
        |    Номенклатура.Наименование,
        |    Номенклатура.ДополнительныеРеквизиты.(
        |        Свойство,
        |        Значение
        |    ),

За такое сразу расстреливать.
7 smolik
 
03.01.17
22:57
Расскажи за что, не понимаю.
8 dachnik
 
04.01.17
08:56
(7) Крайне не рекомендуется смешивать данные из реквизитов самого объекта и из его табличных частей. Наименование номенклатуры ты можешь получить из ссылки в табличной части. Т.е. нужно заменить таблицу в запросе с Номенклатура на ТЧ номенклатуры "Доп.реквизиты". Доклад закончил. СНГ!
9 palpetrovich
 
04.01.17
09:03
хз, я так примерно ищу:
ВЫБРАТЬ
|    ЗначенияСвойствОбъектов.Объект
|ИЗ
|    РегистрСведений.ЗначенияСвойствОбъектов
|ГДЕ
|    ЗначенияСвойствОбъектов.Свойство = &Свойство
|    И ЗначенияСвойствОбъектов.Значение = &Значение
10 Cool_Profi
 
04.01.17
09:05
(9) Допреквизит, Карл!!!
11 smolik
 
04.01.17
13:39
Оставим для истории:

ВЫБРАТЬ
    Номенклатура.ДополнительныеРеквизиты.(
        Ссылка КАК НашелТебя,
        Свойство,
        Значение
    )
ИЗ
    Справочник.Номенклатура КАК Номенклатура
ГДЕ
    Номенклатура.ДополнительныеРеквизиты.Свойство = &Свойство
    И Номенклатура.ДополнительныеРеквизиты.Значение = &Значение
12 Cool_Profi
 
04.01.17
13:43
ВЫБРАТЬ
    Номенклатура.ДополнительныеРеквизиты.(
        Ссылка КАК НашелТебя,
        Свойство,

        Значение
    )

Рецидив. 15 лет строго расстрела с конфискацией, без права переписки.
13 smolik
 
04.01.17
13:59
:) за что
14 mehfk
 
04.01.17
14:04
За копрокод.
15 smolik
 
04.01.17
14:06
это да, увидел, так как из консоли поторопился взять, хотел подредактировать, но понял что это навечно. В след раз внимательней буду.
Здесь можно обсудить любую тему при этом оставаясь на форуме для 1Сников, который нужен для работы. Ymryn