Имя: Пароль:
1C
 
получить объект в отчете
0 jeka_molodec
 
18.05.15
13:21
Создал отчет. С конструктором отчета пока не все понял, поэтому создаю руками. Создал форму. На ней поля, контрагент(справочник.контрагенты) дата и всякое....
Хочу получить данные из полей на форме.
так нельзя(говорит нет, хоть на сервере хоть на клиенте)Объект.контргент
так Элементы.Контрагент выдается в сообщении "данные формы"
и как тут обратится к данным собственной формы?
1 Лефмихалыч
 
18.05.15
13:23
возьми книжку по СКД, почитай, и не городи огородов
2 Basilio
 
18.05.15
13:24
тяжелый случай ((
3 Зеленый пень
 
18.05.15
13:27
(0) На сервере реквизит формы - который лишь представление данных объекта, надо превратить в настоящий "СправочникОбъект" - тогда через точку всё будет работать.
4 Basilio
 
18.05.15
13:32
(0) вообще объекты получаются методом "ПолучитьОбъект()"
у меня только один вопрос. зачем в отчете получать объект?
5 jeka_molodec
 
18.05.15
13:35
чтобы получить объект и забить его в запрос
6 jeka_molodec
 
18.05.15
13:37
информация берется в основном из документа Запрос, но еще дальше и из других документов(поэтому не могу пока понять как сделать всю эту структуру в мастере. решил сделать руками, надежнее как то.
вот начало
    запрос.Текст = ("ВЫБРАТЬ Заявка.ДатаДо КАК Дата,
    |    Заявка.Контрагент КАК Контрагент,
    |    Заявка.ссылка КАК заявко
    |ИЗ Документ.Заявка КАК Заявка
        |ГДЕ Заявка.Контрагент = &контр");
    запрос.УстановитьПараметр("контр",тут мой объект с формы );
7 jeka_molodec
 
18.05.15
13:38
а тупое (получить данные из поля формы)не могу понять как сделать.
8 Basilio
 
18.05.15
13:38
(6) я все-таки советую ссылку на объект забивать, а не сам объект.
9 jeka_molodec
 
18.05.15
13:45
не совсем понимаю механизм.
вот мне нужен объект. есть у формы поле сотрудник.выбираю,нажимаю кнопку в котором запрос. как мне получить ссылку на него? к чему применять ПолучитьОбъект()?
10 Basilio
 
18.05.15
13:47
(9) так в том-то и соль что объект тебе вроде бы и ни к чему в отчете то.
вообще читай (1).
11 Любопытная
 
18.05.15
14:00
(9) тебе не объект нужен, а значение реквизита формы. Если это реквизит формы, то к нему можно обратиться только из формы и не через объект обработки, а напрямую.
12 jeka_molodec
 
18.05.15
14:03
допустим так, ЭтаФорма.Элементы.Контрагент.????
Если просто ЭтаФорма.Элементы.контрагент то получаем то же "поле формы"
13 Basilio
 
18.05.15
14:07
(12) просто ЭтаФорма.Контрагент.
Элементы - это "окошки" на форме
14 jeka_molodec
 
18.05.15
14:15
ЭтаФорма.контрагент ошибка поле объекта не обнарурежно(контрагент)
15 Basilio
 
18.05.15
14:21
(14) значит у тебя нет такого реквизита у этой формы
16 jeka_molodec
 
18.05.15
14:22
я тоже так подумал.копирую имя-не арбайтен
17 Basilio
 
18.05.15
14:24
(16) выложи код где ты обращаешься к контрагенту.
18 jeka_molodec
 
18.05.15
14:26
&НаКлиенте
Процедура СформироватьОтч(Команда)
    СформироватьОтчСерв();        
КонецПроцедуры

&НаСервере
Процедура СформироватьОтчСерв()
    запрос = Новый Запрос;
    запрос.Текст = ("ВЫБРАТЬ Заявка.ДатаДо КАК Дата,
    |    Заявка.Контрагент КАК Контрагент,
    |    Заявка.ссылка КАК заявко
    |ИЗ Документ.Заявка КАК Заявка
    |ГДЕ Заявка.Контрагент = &контр");
    Сообщить("об-"+ЭтаФорма.контрагент);//вот просто хочу на в собщение добавить контрагента или сотрудника    
    //сообщить("об-"+об.сотрудник);
    запрос.УстановитьПараметр("контр",об.Контрагент);
    рез = запрос.Выполнить().Выбрать();
    Пока рез.Следующий() Цикл
        Сообщить("рез-"+рез.заявко);
    КонецЦикла;
КонецПроцедуры
19 jeka_molodec
 
18.05.15
14:28
в установить параметр понятно
запрос.УстановитьПараметр("контр",ЭтаФорма.Контрагент);
издержки переписывания
20 jeka_molodec
 
18.05.15
14:30
в "формаОтчета" это все
21 jeka_molodec
 
18.05.15
14:32
принтСкрин https://yadi.sk/i/NAzPzACVghjwL
22 Basilio
 
18.05.15
14:36
(21) я тебе сразу сказал что нет у формы такого реквизита "Контрагент"
23 jeka_molodec
 
18.05.15
14:41
не понимаю. вот есть реквизит у самого отчета. есть соответствующе названный на форме https://yadi.sk/i/xDSZ3WWJghksM
24 jeka_molodec
 
18.05.15
14:42
почему тогда нет? ясно,если бы это был документ,я бы написал Объект.сотрудник. но тут это не проходит.
25 Basilio
 
18.05.15
14:49
(24) т.е. думать вообще не хотим, да?
26 jeka_molodec
 
18.05.15
14:50
да. удалил реквизиты. задал тупо поля, все обращается.нельзя обратится к реквизитам, ну и черт с ними. хоть и жалко. мне для отбора и надо было.

Всем спасибо кто навел на мысль.
27 ВРедная
 
18.05.15
14:50
(24)
- Открываешь конфигуратор,
- ставишь точку останова на строке в процедуре СформироватьОтчСерв,
- запускаешь режим отладки
- смотришь какие есть реквизиты у формы,
- радуешься
28 jeka_molodec
 
18.05.15
14:56
Спасибо. Я уже радуюсь. Когда нападет тупость,а потом отпускает, это всегда... эйфория такая образуется, что и клоунов смотреть не надо. и так хорошо :) Про конфигуратор тоже спасибо, запомним.
29 hhhh
 
18.05.15
15:03
(28) всё-таки глянь на твой скрин: ведь там четко написано:

Отчет.Контрагент