Имя: Пароль:
1C
 
Выгрузка запроса в таблицу значений
0 тринадцатый
 
19.08.10
14:44
Помогите пжл. разобраться с кодом, что-то не могу понять в чем ошибка:

Функция ЗаполнитьТаблицу()
   
   ЭлементыФормы.ТЗ.СоздатьКолонки();
   ЭлементыФормы.ТЗ.Колонки.Добавить("Контрагент");
   ЭлементыФормы.ТЗ.Колонки.Добавить("Договор");
   ЭлементыФормы.ТЗ.Колонки.Добавить("Сумма");
   ЭлементыФормы.ТЗ.Колонки.Добавить("СверхДоговора");  
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("НашиДоговорыКонтрагентов", СсылкаНаОбъектДог);  
   //Запрос.УстановитьПараметр("ДатаНач", ТекДокумент.Дата);
   //Запрос.УстановитьПараметр("ДатаКон", ТекДокумент.Дата);  
   Запрос.Текст =
    "ВЫБРАТЬ
    |    НашиДоговорыКонтрагентов.Организация,
    |    НашиДоговорыКонтрагентов.СверхДоговора,
    |    НашиДоговорыКонтрагентов.СрокДействия,
    |    НашиДоговорыКонтрагентов.Владелец КАК Контрагент,
    |    НашиДоговорыКонтрагентов.Сумма,
    |    НашиДоговорыКонтрагентов.Часов,
    |    НашиДоговорыКонтрагентов.ДоговорОбслуживания,
    |    НашиДоговорыКонтрагентов.Ссылка
    |ИЗ
    |    Справочник.НашиДоговорыКонтрагентов КАК НашиДоговорыКонтрагентов";
   
   Результат = Запрос.Выполнить();    
   
   ТЗ = Результат.Выгрузить();    
   
   Для каждого Строка из ТЗ Цикл
       НоваяСтрока = ТЗ.Добавить();      
       НоваяСтрока.Контрагент = Запрос.Контрагент;
       НоваяСтрока.Договор = Запрос.Ссылка;
       НоваяСтрока.Сумма = Запрос.Сумма;
       НоваяСтрока.СверхДоговора = Запрос.СверхДоговора;    
   КонецЦикла;          

   Возврат  ТЗ;  

КонецФункции

выдает ошибку
{Форма.Форма.Форма(45)}: Поле объекта не обнаружено (Контрагент)
       НоваяСтрока.Контрагент = Запрос.Контрагент;
1 RomaH
 
naïve
19.08.10
14:45
Для каждого Строка из ТЗ Цикл
       НоваяСтрока = ТЗ.Добавить();      
       НоваяСтрока.Контрагент = Запрос.Контрагент;
тут смотри
2 luckyluke
 
19.08.10
14:46
Удали:
"   Для каждого Строка из ТЗ Цикл
       НоваяСтрока = ТЗ.Добавить();      
       НоваяСтрока.Контрагент = Запрос.Контрагент;
       НоваяСтрока.Договор = Запрос.Ссылка;
       НоваяСтрока.Сумма = Запрос.Сумма;
       НоваяСтрока.СверхДоговора = Запрос.СверхДоговора;    
   КонецЦикла;  "
3 тринадцатый
 
19.08.10
14:47
Ну да я поняла что ошибка в этой строке
4 Cheater
 
19.08.10
14:47
а что такое Запрос.Контрагент? Ты когда результат запроса в ТЗ выгрузил уже получил ТЗ, нафига еще что-то?
5 Megas
 
19.08.10
14:48
(0) Вообще ересь несусветная!!!
6 luckyluke
 
19.08.10
14:48
(3) вот так заработает:
Функция ЗаполнитьТаблицу()
   
   ЭлементыФормы.ТЗ.СоздатьКолонки();
   ЭлементыФормы.ТЗ.Колонки.Добавить("Контрагент");
   ЭлементыФормы.ТЗ.Колонки.Добавить("Договор");
   ЭлементыФормы.ТЗ.Колонки.Добавить("Сумма");
   ЭлементыФормы.ТЗ.Колонки.Добавить("СверхДоговора");  
   
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("НашиДоговорыКонтрагентов", СсылкаНаОбъектДог);  
   //Запрос.УстановитьПараметр("ДатаНач", ТекДокумент.Дата);

   //Запрос.УстановитьПараметр("ДатаКон", ТекДокумент.Дата);  

   Запрос.Текст =
    "ВЫБРАТЬ
    |    НашиДоговорыКонтрагентов.Организация,
    |    НашиДоговорыКонтрагентов.СверхДоговора,
    |    НашиДоговорыКонтрагентов.СрокДействия,
    |    НашиДоговорыКонтрагентов.Владелец КАК Контрагент,
    |    НашиДоговорыКонтрагентов.Сумма,
    |    НашиДоговорыКонтрагентов.Часов,
    |    НашиДоговорыКонтрагентов.ДоговорОбслуживания,
    |    НашиДоговорыКонтрагентов.Ссылка
    |ИЗ
    |    Справочник.НашиДоговорыКонтрагентов КАК НашиДоговорыКонтрагентов";
   
   Результат = Запрос.Выполнить();    
   
   ТЗ = Результат.Выгрузить();            

   Возврат  ТЗ;  

КонецФункции
7 rinatru
 
19.08.10
14:48
Для каждого СтрокаТЗ из ТЗ Цикл
       НоваяСтрока = ТЗ.Добавить();      
       НоваяСтрока.Контрагент = СтрокаТЗ .Контрагент;
       НоваяСтрока.Договор = СтрокаТЗ .Ссылка;
       НоваяСтрока.Сумма = СтрокаТЗ .Сумма;
       НоваяСтрока.СверхДоговора = СтрокаТЗ .СверхДоговора;    
   КонецЦикла;
8 Cheater
 
19.08.10
14:48
(3) Поняла? Три года шифровалась? )))
9 тринадцатый
 
19.08.10
14:49
да щас пробую
10 Cheater
 
19.08.10
14:49
(7) Чё курил?
11 Megas
 
19.08.10
14:49
(6) и даже так

Функция ЗаполнитьТаблицу()
     
   Запрос = Новый Запрос;
   Запрос.УстановитьПараметр("НашиДоговорыКонтрагентов", СсылкаНаОбъектДог);  
 

   Запрос.Текст =
    "ВЫБРАТЬ
    |    НашиДоговорыКонтрагентов.Организация,
    |    НашиДоговорыКонтрагентов.СверхДоговора,
    |    НашиДоговорыКонтрагентов.СрокДействия,
    |    НашиДоговорыКонтрагентов.Владелец КАК Контрагент,
    |    НашиДоговорыКонтрагентов.Сумма,
    |    НашиДоговорыКонтрагентов.Часов,
    |    НашиДоговорыКонтрагентов.ДоговорОбслуживания,
    |    НашиДоговорыКонтрагентов.Ссылка
    |ИЗ
    |    Справочник.НашиДоговорыКонтрагентов КАК НашиДоговорыКонтрагентов";
   
   Результат = Запрос.Выполнить();    
   
   ТЗ = Результат.Выгрузить();            

   Возврат  ТЗ;  

КонецФункции
12 rinatru
 
19.08.10
14:50
что тебе (10) не нравится? я указал на ошибку.
13 Megas
 
19.08.10
14:50
(11) ООо не заметил...
 Запрос.УстановитьПараметр("НашиДоговорыКонтрагентов", СсылкаНаОбъектДог);  - ненужно так как параметры в запросе не используется!
14 luckyluke
 
19.08.10
14:50
И так тоже:

Функция ЗаполнитьТаблицу()
     
   Запрос = Новый Запрос;  
 

   Запрос.Текст =
    "ВЫБРАТЬ
    |    НашиДоговорыКонтрагентов.Организация,
    |    НашиДоговорыКонтрагентов.СверхДоговора,
    |    НашиДоговорыКонтрагентов.СрокДействия,
    |    НашиДоговорыКонтрагентов.Владелец КАК Контрагент,
    |    НашиДоговорыКонтрагентов.Сумма,
    |    НашиДоговорыКонтрагентов.Часов,
    |    НашиДоговорыКонтрагентов.ДоговорОбслуживания,
    |    НашиДоговорыКонтрагентов.Ссылка
    |ИЗ
    |    Справочник.НашиДоговорыКонтрагентов КАК НашиДоговорыКонтрагентов";            

   Возврат  Результат.Выгрузить().Выгрузить();  

КонецФункции
15 Megas
 
19.08.10
14:51
(12) Бесконечный цикл с добавлением строк... это так надо исправить?
16 Cheater
 
19.08.10
14:51
(12) ты получаешь строку ТЗ и заново её создаешь в этой же ТЗ
17 тринадцатый
 
19.08.10
14:52
Спасибо большое
18 luckyluke
 
19.08.10
14:53
(16) не ну а че, плохо чтоли? :)
19 rinatru
 
19.08.10
14:53
(16) верно. сплоховал
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший