Имя: Пароль:
1C
1С v8
задать параметр запроса регистром сведений
0 corpmad
 
28.08.13
08:50
Запрос= Новый запрос;
    Запрос.Текст = "ВЫБРАТЬ
    |    ДоговорыКонтрагентов.Ссылка КАК Договор,
    |    РАЗНОСТЬДАТ(ДоговорыКонтрагентов.СрокДействия, &Дата, ДЕНЬ) КАК ОсталосьДней
    |ИЗ
    |    Справочник.ДоговорыКонтрагентов КАК ДоговорыКонтрагентов
    |        ЛЕВОЕ СОЕДИНЕНИЕ РегистрСведений.ЗначенияСвойствОбъектов КАК ЗначенияСвойствОбъектов
    |        ПО ДоговорыКонтрагентов.Организация = ЗначенияСвойствОбъектов.Объект
    |ГДЕ
    |    ЗначенияСвойствОбъектов.Свойство = &Юрист
    |    И ДоговорыКонтрагентов.СрокДействия <> ДАТАВРЕМЯ(1, 1, 1, 0, 0, 0)
    |    И РАЗНОСТЬДАТ(ДоговорыКонтрагентов.СрокДействия, &Дата, ДЕНЬ) МЕЖДУ 0 И 49
    |    И ЗначенияСвойствОбъектов.Значение = &ЮристЛицо";
    
    
    ЮристЛицо = Справочники.ФизическиеЛица.НайтиПоКоду("ТД0001542");
    
    Запрос.УстановитьПараметр("ЮристЛицо", ЮристЛицо);
    //ЮристОтбор = Новый Структура("Юрист", ВыбВалюта);
    ЗначениеРегистра =  Справочники.Предопределенные.НайтиПоНаименованию("Юрист");
    Регист= РегистрыСведений.ЗначенияСвойствОбъектов.Получить(ЗначениеРегистра);
    Запрос.УстановитьПараметр("Дата", ТекущаяДата());
    Запрос.УстановитьПараметр("Юрист", Регист);
    Результат = Запрос.Выполнить();
    ТЗД = Результат.Выгрузить();

    Для каждого стр из ТЗД Цикл
        Сообщить("Срок действия договора "+ стр.Договор.Наменование+" истекает через: "+стр.ОсталосьДней);
    КонецЦикла;

Как правильно задать параметр регистра сведений.ЗнченияСвойствОбъектво

При таком варианте кода идет не соответствие типов
1 Wobland
 
28.08.13
08:51
свойство у тебя какого типа?
2 Рэйв
 
28.08.13
08:59
Запрос.УстановитьПараметр("Юрист", Регист.Свойство);
?
3 Галахад
 
гуру
28.08.13
09:00
А нафига запись в параметр пихать?

Да и "ГДЕ" опять кривое.
4 corpmad
 
28.08.13
09:00
5 corpmad
 
28.08.13
09:01
6 corpmad
 
28.08.13
09:01
Регист= РегистрыСведений.ЗначенияСвойствОбъектов.Получить(ЗначениеРегистра);
по причине:
Несоответствие типов (параметр номер '1')
7 Rie
 
28.08.13
09:02
(6) Зашибись... А что такое ЗначениеРегистра? А какого типа должен быть первый параметр Получить?
8 corpmad
 
28.08.13
09:07
Есть регистр сведений ЗначениеОбъектов. В нем полно всякой всячины, в том числе и юрист. мне нужно передать это значение в параметр запроса
9 Wobland
 
28.08.13
09:09
(8) и что ты хочешь после этого получить?
10 Rie
 
28.08.13
09:10
(8) Ну так наверное надо извлечь из регистра сведений ЗначенияОбъектов этого самого юриста!
А для этого - см. (7).
11 corpmad
 
28.08.13
09:10
Ну, результат запроса выдает те договора, срок которых подходит к концу, и юриста, который привязан к договору.
12 Rie
 
28.08.13
09:12
(11) Прочитай _внимательно_ (7). Затем - прочитай встроенную справку о методе Получить. И удивись!
13 corpmad
 
28.08.13
09:21
Ошибка при вызове метода контекста (Получить)
    Регист= РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Структ);
по причине:
Недопустимое значение параметра (параметр номер '1')


ЗначениеРегистра =  Справочники.Предопределенные.НайтиПоНаименованию("Юрист");
    
    Структ = Новый Структура;
    Структ.Вставить("Юрист", ЗначениеРегистра);
    
    Регист= РегистрыСведений.ЗначенияСвойствОбъектов.Получить(Структ);
14 Rie
 
28.08.13
09:22
(13) Не все измерения регистра указал в Структ.
Компьютер — устройство, разработанное для ускорения и автоматизации человеческих ошибок.