Имя: Пароль:
1C
1С v8
Подскажите по поиску в РС.ЗначенияСвойствОбъектов.
0 Balabass
 
14.05.15
11:01
Нужно найти объект в РС.ЗначенияСвойствОбъектов по Значению.
Значения Уникальны.

Открываю Консоль, пишу:

ВЫБРАТЬ
    ЗначенияСвойствОбъектов.Объект
ИЗ
    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
ГДЕ
    ЗначенияСвойствОбъектов.Свойство = &Свойство
    И ЗначенияСвойствОбъектов.Значение = &Значение

Указываю в параметрах:
Свойство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Моё свойство",Истина,);
Значение = Строка("111");

Есть результат. 1 строка.

Делаю тоже самое в форме обработки - шиш.

Вангуем.
1 asady
 
14.05.15
11:09
(0) что-то ломает меня сегодня.
может сам?
2 Balabass
 
14.05.15
11:09
(1) Не не..давай ка дружно.
3 Balabass
 
14.05.15
11:11
Если шурать запрос только пс отбором по свойству - то при клике на ЗНАЧЕНИЕ - получаю попап со значением СТРОКА.
4 asady
 
14.05.15
11:14
(3) чудес не бывает - если результаты разные то или запросы разные или данные разные

теперь код из формы обработки показывай
5 Balabass
 
14.05.15
11:17
Своство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Моё свойство",Истина,);
Код = "111";
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗначенияСвойствОбъектов.Объект
        |ИЗ
        |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |ГДЕ
        |    ЗначенияСвойствОбъектов.Свойство = &Свойство
        |    И ЗначенияСвойствОбъектов.Значение = &Значение";

    Запрос.УстановитьПараметр("Значение", Код);
    Запрос.УстановитьПараметр("Свойство", Своство);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
6 asady
 
14.05.15
11:19
(5)
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(""+ВыборкаДетальныеЗаписи.Объект);
КонецЦикла;

что пишет?
7 Balabass
 
14.05.15
11:21
Пустоту
8 asady
 
14.05.15
11:24
Своство = ПланыВидовХарактеристик.СвойстваОбъектов.НайтиПоНаименованию("Моё свойство",Истина,);
Код = "111";
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    ЗначенияСвойствОбъектов.Объект, ЗначенияСвойствОбъектов.Значение
        |ИЗ
        |    РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
        |ГДЕ
        |    ЗначенияСвойствОбъектов.Свойство = &Свойство";

    Запрос.УстановитьПараметр("Свойство", Своство);

    РезультатЗапроса = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = РезультатЗапроса.Выбрать();
Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
Сообщить(""+ВыборкаДетальныеЗаписи.Объект+" = "+ЗначенияСвойствОбъектов.Значение+" тип "+ТипЗнч(ЗначенияСвойствОбъектов.Значение);
КонецЦикла;

а так?
9 Greznik
 
14.05.15
11:25
Скорее всего тип параметра все же не совпадает...
10 Timon1405
 
14.05.15
11:27
вангую: ПВХ "Моё свойство" есть у нескольких объектов, в НайтиПонаименованию не указан 3й параметр - находит не то что нужно
11 Balabass
 
14.05.15
11:28
(8) Вот что ты сделал?
Работает.
ФейсПалм себе.
12 Balabass
 
14.05.15
11:29
(8) Астафьев Николай Александрович = 119/62776 тип Строка
13 Balabass
 
14.05.15
11:29
пздц
14 Balabass
 
14.05.15
11:29
(9) Совпадает как видим.
(10) Моё свойство я сам сделал и есть токльо у 1 объекта.
15 Timon1405
 
14.05.15
11:32
(14) Потом следующий внедрятор введет такое же у другого объекта и накроется ваша обработка. Мораль: НайтиПоНаименованию -зло
16 Balabass
 
14.05.15
11:33
(15) Согласен.
17 Balabass
 
14.05.15
11:33
(8) Спасибо.
18 фобка
 
14.05.15
11:34
Параметры отличаются прост
19 Balabass
 
14.05.15
11:37
(18) нет.
Если  ВыборкаДетальныеЗаписи.Следующий() тогда
И пошло поехало
Закон Брукера: Даже маленькая практика стоит большой теории.