Имя: Пароль:
1C
1C 7.7
v7: Проблемы с выгрузкой Табличной части документа
0 Demonic10
 
22.10.12
10:07
Всем привет. Пишу отчет на 1c v7.7, освавивая весь язык по ходу дела и напарываясь на кучу проблем, но вот с последней не могу разобраться уже довольно долго. Собственно потому и решил обратиться сюда. Суть проста - я выгружаю табличную часть документа в заранее созданную таблицу значений, но при этом в таблицу, по совершенно неведомой мне причине, записывается лишь последняя строка табличной части. Может я как -то неправильно использую метод?    4

Вот код.

Процедура Сформировать()
   Таб = СоздатьОбъект("Таблица");  
   Таб.ИсходнаяТаблица("Сформировать");
   // Выводим Заголовок
   Таб.ВывестиСекцию("Заголовок");
   
   // Создаем Документ Реализации
   Док = СоздатьОбъект("Документ.РеализацияРозница");
   
   // Создаем выборку по документам реализации
   Док.ВыбратьДокументы(ВыбНачПериода, ВыбКонПериода);
   
   // Проходимся по документам реализации
   Пока Док.ПолучитьДокумент() > 0 Цикл
       ТекДок = Док.ТекущийДокумент();
       Если СокрЛП(ТекДок.Автор) = СокрЛП(Менеджеры) Тогда
           ТаблЗнач = СоздатьОбъект("ТаблицаЗначений");
           ТекДок.ВыгрузитьТабличнуюЧасть(ТаблЗнач);
           
           // Создаем выборку по строкам Табличной части документа реализации
           ТаблЗнач.ВыбратьСтроки();
           
           // Проходимся по строкам табличной части документа реализации
           Пока ТаблЗнач.ПолучитьСтроку() = 1 Цикл
               //ТекСтр = СоздатьОбъект("ТаблицаЗначений");
               ТекСтр = ТаблЗнач.ТекущаяСтрока();
               
               
           КонецЦикла;
           Таб.ВывестиСекцию("Строка");        
       КонецЕсли;                                    
   КонецЦикла;                                          

   Состояние("Заполнение выходной таблицы...");

   Таб.ТолькоПросмотр(1);
   Таб.Показать("Сформировать", "");
КонецПроцедуры
1 НЕА123
 
22.10.12
10:10
КонецЦикла;
           Таб.ВывестиСекцию("Строка");    

поменять местами?
2 AeDen
 
22.10.12
10:10
1. Запустить код в отладчике, пройтись по строчкам, в каждой смотреть результат выполнения.
2. Как минимум 1 лишняя переменная.
3 Demonic10
 
22.10.12
10:12
(1) С этим проблем нет.
(2) Я смотрел в отладчике, оттуда я и узнал что у меня в ТаблЗнач выгружается всего лишь одна строка, причем последняя.
4 Mikeware
 
22.10.12
10:15
(3) ой, неправда....
5 Demonic10
 
22.10.12
10:16
(3) С чего бы?
6 Demonic10
 
22.10.12
10:18
Т.е. (4) С чего бы?
7 НЕА123
 
22.10.12
10:19
(2).2+1
зачем
ТекСтр = ТаблЗнач.ТекущаяСтрока();
8 povar
 
22.10.12
10:20
(3) как смотрел ?
9 Mikeware
 
22.10.12
10:21
ТекДок.ВыгрузитьТабличнуюЧасть(ТаблЗнач);
Сообщить(ТаблЗнач.КоличествоСтрок());
что даст?
10 Demonic10
 
22.10.12
10:22
(7) Ну это уже для получения конкретного ТМЦ. Прошу принять во внимание, что код еще недописан и многие моменты, в которых вы не видите смысла в будущем мне понадобятся.
11 Demonic10
 
22.10.12
10:23
(8) Как-как - запускал отладчик, запускал 1с-ку, запускал отчет, проходился по коду.
12 Demonic10
 
22.10.12
10:25
(9) По-разному, выдает 3-ки,1-ки и т.д. Вообщем строки есть.
13 Mikeware
 
22.10.12
10:25
(12) что и требовалось доказать.
14 povar
 
22.10.12
10:26
(12) значит в (3) - брэхня
15 пипец
 
22.10.12
10:26
Пока ТаблЗнач.ПолучитьСтроку() = 1 Цикл
               //ТекСтр = СоздатьОбъект("ТаблицаЗначений");

               ТекСтр = ТаблЗнач.ТекущаяСтрока();
               
               
           КонецЦикла;
           Таб.ВывестиСекцию("Строка");  ?????????????
16 Mikeware
 
22.10.12
10:28
(15) да и .ТекущаяСтрока(); тут не в тему...
17 Demonic10
 
22.10.12
10:31
Проблему решил. Всем Спасибо.
18 povar
 
22.10.12
10:31
(15) это в 1 сообщении было, но автор видимо "пейсатель", а не "читатель"