Имя: Пароль:
1C
1С v8
Не заполняется макет таблицы данными запроса
0 sidalexsandr
 
13.11.12
16:54
Пишу следующий код:
......
РезультатЗапроса = Запрос.Выполнить();

       Если Не (РезультатЗапроса .Пустой()) Тогда
           Область = Макет.ПолучитьОбласть("Строка1");
           КомплНаимКолво = РезультатЗапроса.Выбрать();
           Область.Параметры.Заполнить(КомплНаимКолво);
           ТабДок.Вывести(Область);
       КонецЕсли;

Вопрос: Почему в макет не попадают данные из запроса?
1 mikecool
 
13.11.12
16:55
Если Не (РезультатЗапроса .Пустой()) Тогда
           Область = Макет.ПолучитьОбласть("Строка1");
           РезультатЗапроса.Выбрать();
           Если РезультатЗапроса.Следующий() Тогда
           Область.Параметры.Заполнить(РезультатЗапроса);
           КонецЕсли;
           ТабДок.Вывести(Область);
       КонецЕсли;
2 mikecool
 
13.11.12
16:55
продпм недорого СП
3 mikecool
 
13.11.12
16:56
пля, продам*
4 GLazNik
 
13.11.12
16:56
(0) а КомплНаимКолво.Следующий() не забыли?
5 mikecool
 
13.11.12
16:57
(4) о, точно, выборка же переменной должна быть )
тогда так

           Если РезультатЗапроса.Выбрать().Следующий() Тогда
6 mikecool
 
13.11.12
16:57
все, не хочу больше переписывать )
7 GLazNik
 
13.11.12
16:58
(5) чет совсем не туда... заработался? :)
8 mikecool
 
13.11.12
16:59
(7) чо не туда? если не надо брать результат - нормально
а так - выборку ндоть брать
9 sidalexsandr
 
13.11.12
17:01
Спасибо.
10 sidalexsandr
 
13.11.12
17:10
(5) Написал:
РезЗапроса = ВернутьКомплектНаимКолво(ТекСтрокаТовары.Комплект);
       Если Не (РезЗапроса.Пустой()) Тогда
           Область = Макет.ПолучитьОбласть("Строка1");
           КомплНаимКолво = РезЗапроса.Выбрать().Следующий();
           Область.Параметры.Заполнить(КомплНаимКолво);
           //КомплНаимКолво = КомплНаимКолво.Следующий();
           
           ТабДок.Вывести(Область);
       КонецЕсли;


Выдает ошибку: {Документ.ЗаявкаНаПроизводство.Форма.ФормаДокумента.Форма(871)}: Ошибка при вызове метода контекста (Заполнить)
           Область.Параметры.Заполнить(КомплНаимКолво);
по причине:
Несоответствие типов (параметр номер '1')
11 sidalexsandr
 
13.11.12
17:13
(5) Следующий() я не использовал потому, что этот метод получит только одну одну запись (иначе надо цикл), а у меня результат запроса содержит несколько строк.

Спрошу ещё раз: Как данными запроса содержащего больше одной строки заполнить макет таблицы?
12 vicof
 
13.11.12
17:16
(11) Я знаю того, кто продает СП недорого.
Пока Выборка.Следующий() ЦИкл
...
КОнецЦикла
13 sidalexsandr
 
13.11.12
17:17
(12) Циклом я знаю, как, но неужели нет метода напрямую выгрузить все строки запроса сразу в макет таблицы?
14 GLazNik
 
13.11.12
17:18
(11) Как у вас макет отработает если в результате 10 строк? а 100? а 1000? как оно выводить будет?
А так... есть еще такие метод у таб. документа как ВывестиОбласть
(13) нет
15 sidalexsandr
 
13.11.12
17:21
(14) Грустно. Ладно буду делать с помощью цикла.
16 sidalexsandr
 
13.11.12
17:30
Вот рабочее решение: РезЗапроса = ВернутьКомплектНаимКолво(ТекСтрокаТовары.Комплект);
       Если Не (РезЗапроса.Пустой()) Тогда              
           КомплНаимКолво = РезЗапроса.Выбрать();
           Пока КомплНаимКолво.Следующий() Цикл    
               Область = Макет.ПолучитьОбласть("Строка1");
               Область.Параметры.Заполнить(КомплНаимКолво);
               ТабДок.Вывести(Область);              
           КонецЦикла;  
       КонецЕсли;


Заполняет колонки макета автоматом из запроса, а цикл по строкам надо писать.

Спасибо всем. Закрывайте ветку.
Ошибка? Это не ошибка, это системная функция.