Имя: Пароль:
1C
Админ
Не выводится заголовок /
0 Max-VLAD
 
02.07.12
10:09
Процедура Сформировать(ТабДок) Экспорт
ЭлементыФормы.Таб.Очистить();
Запрос = Новый Запрос;
Запрос.Текст ="ВЫБРАТЬ
  | НД_ПКО.Контрагент КАК Контрагент,
  | НД_ПКО.Подразделение КАК Подразделение,
  | НД_ПКО.СуммаДокумента КАК СуммаДокумента
  | ИЗ
  | Документ.НД_ПКО КАК НД_ПКО
  | ГДЕ НД_ПКО.Ссылка.Проведен
  | УПОРЯДОЧИТЬ ПО Подразделение,СуммаДокумента
  | ИТОГИ СУММА(СуммаДокумента) ПО Подразделение";  
   Результат = Запрос.Выполнить().Выгрузить();
   выборка = Запрос.Выполнить().Выбрать();
   Таб = Новый ТабличныйДокумент;
   ТекМакет = ПолучитьМакет("Макет");
   Заголовок = ТекМакет.ПолучитьОбласть("Заголовок");
   Шапка = ТекМакет.ПолучитьОбласть("Шапка");
   Строки = ТекМакет.ПолучитьОбласть("Строки");
   Итого = ТекМакет.ПолучитьОбласть ("Итого");
   СуммаДокументаИтого = 0;
   выборка.следующий();
   ТабДок.Вывести(Заголовок);
   ТабДок.Вывести(Шапка);
                                             
   Для Каждого Строка Из Результат Цикл
   Строки.Параметры.Заполнить(Строка);
   Если ЗначениеЗаполнено(Строка.СуммаДокумента) Тогда
       СуммаДокументаИтого = Строка.СуммаДокумента + СуммаДокументаИтого;
        КонецЕсли;
       
   Строки.Параметры.Контрагент = Строка.Контрагент;
   Строки.Параметры.Подразделение = Строка.Подразделение;
   Строки.Параметры.СуммаДокумента = СуммаДокумента;
   ТабДок.Вывести(Строки);
   КонецЦикла;
             

   Итого.Параметры.СуммаДокументаИтого = СуммаДокументаИтого;
   ТабДок.Вывести(Итого);            

Процедура КнопкаСформироватьНажатие(Кнопка) Экспорт
         Сформировать(ЭлементыФормы.Таб);
      КонецПроцедуры

При отладке возникает ошибка:

{Отчет.ПКО.Форма.ФормаОтчета.Форма(41)}: Ошибка при вызове метода контекста (Вывести)
                   ТабДок.Вывести(Заголовок);
по причине:
Несоответствие типов (параметр номер '1')

Помогите, пожалуйста, кто знает в чем ошибка!
1 butterbean
 
02.07.12
10:10
в отладчике посмотри что у тебя в Заголовок
2 butterbean
 
02.07.12
10:12
хотя у тебя еще какая-то хрень с Таб
3 Max-VLAD
 
02.07.12
10:14
вот в этом месте ошибка:

   выборка.следующий();
   ТабДок.Вывести(Заголовок);
   ТабДок.Вывести(Шапка);

в макете всё правильно сделано:
   ТекМакет = ПолучитьМакет("Макет");
   Заголовок = ТекМакет.ПолучитьОбласть("Заголовок");
4 butterbean
 
02.07.12
10:15
(3) в отладчике посмотри что у тебя в Заголовок
5 dva1c
 
02.07.12
10:16
(3) Что у тебя в макете содержится?
(4)+1
6 Chin
 
02.07.12
10:16
А это зачем?

Таб = Новый ТабличныйДокумент;

Может:
ТабДок = Новый ТабличныйДокумент;
7 Pro-tone
 
02.07.12
10:20
+1 (6) верно - из-за этого и ошибка
8 Chin
 
02.07.12
10:20
(6) Хотя нет, у тебя ТабДок изначально табличный документ. (видимо "таб=" просто атавизм)
Тогда смотри отладчик...
9 Max-VLAD
 
02.07.12
10:21
макет http://s44.radikal.ru/i103/1207/c0/1a3c00aabb60.jpg

Pro-tone - тоже подумал про это
10 butterbean
 
02.07.12
10:24
(9) в отладчике посмотри что у тебя в Заголовок
11 PiVa123
 
02.07.12
10:25
Заголовок = ТекМакет.ПолучитьОбласть("Заголовок");

замени на

ОбластьЗаголовок = ТекМакет.ПолучитьОбласть("Заголовок");

Потому что, скорее всего "Заголовок", это Заголовок формы :)
12 Max-VLAD
 
02.07.12
10:31
Заменил везде ТабДок, теперь вылезает ошибка:

{Отчет.ПКО.Форма.ФормаОтчета.Форма(81)}: Поле объекта не обнаружено (ТабДок)
          Сформировать(ЭлементыФормы.ТабДок);
внизу где

Процедура КнопкаСформироватьНажатие(Кнопка) Экспорт
          Сформировать(ЭлементыФормы.ТабДок);
13 Max-VLAD
 
02.07.12
10:32
[b]butterbean[/b], я новичок. напишите где и как посмотреть
14 butterbean
 
02.07.12
10:32
(11) вот зачем ты сразу все раскрыл :-)
надо было чтобы он в отладчике увидел, потом сам прозрел... а так никакого педагогического эффекта
15 butterbean
 
02.07.12
10:33
(13) это долго, мне лень
16 PiVa123
 
02.07.12
10:34
(14) Виноват. Пардон.
17 Max-VLAD
 
02.07.12
10:42
ничего не понимаю в чем может быть ошибка. вроде на глаз все правильно, а в чем дело понять не могу. программирую 1 раз на 1С
18 dva1c
 
02.07.12
10:43
(12) Не совсем понятно.
Ты передаешь в процедуру ТабДок.
Зачем?

Сформировать(ЭлементыФормы.Таб);

Проще

Сформировать(Таб);
19 dva1c
 
02.07.12
10:45
+(18) Передавай в ТабДок в Сформировать.
20 dva1c
 
02.07.12
10:47
(17) "...программирую 1 раз на 1С" - научись программировать в 1С. Почитай книжки. Учи мат. часть!
21 Max-VLAD
 
02.07.12
10:50
dva1c,
Проще

Сформировать(Таб);

- вылазит ошибка
22 Max-VLAD
 
02.07.12
10:53
"...программирую 1 раз на 1С" - научись программировать в 1С. Почитай книжки. Учи мат. часть!

учу, сложно пока, раньше программировал на Паскале и в Делфи
23 dva1c
 
02.07.12
10:55
(22) Передавай то, куда будешь выводить.
Пошел обедать...
24 Max-VLAD
 
02.07.12
10:58
dva1c, отчет должен вывестись в макет

http://s44.radikal.ru/i103/1207/c0/1a3c00aabb60.jpg
25 dva1c
 
02.07.12
11:33
(24) Должен выводить, если заставишь "взять" нужный тебе макет по имени макета.
при обращении пищи (<кому>), тогда не придется копировать ник в посте )
26 dva1c
 
02.07.12
11:34
*(25) пиши
27 oleg_ma
 
02.07.12
11:40
В определении
Таб = Новый ТабличныйДокумент;
А используешь ТабДок.
Замени
Таб = Новый ТабличныйДокумент;
на
ТабДок = Новый ТабличныйДокумент;
Должно все получиться:)
Не забудь после цикла поставить
ТабДок.Показать("");
28 Max-VLAD
 
03.07.12
02:18
oleg_ma, получилось, спасибо!:) всем спасибо за участие!