Имя: Пароль:
1C
1C 7.7
v7: Помогите нарисовать таблицу.
0 sysadminlk
 
18.04.13
20:46
Есть таблица значений
   ТабПодготовки = СоздатьОбъект("ТаблицаЗначений");
   ТабПодготовки.НоваяКолонка("Покупатель");
   ТабПодготовки.НоваяКолонка("Товар");
   ТабПодготовки.НоваяКолонка("Сумма");
   ТабПодготовки.НоваяКолонка("Колво");


   ТабПодготовки.ВыбратьСтроки();
   Пока ТабПодготовки.ПолучитьСтроку() = 1 Цикл
       Сообщить(""+ТабПодготовки.Покупатель+" - "+ТабПодготовки.Сумма+" - "+ТабПодготовки.Колво+" - "+ТабПодготовки.Товар+"");
   КонецЦикла;

Выводит:
Абрамович - 48 - 1 - Муфта 5698
Покупатель первый - 48 - 1 - Муфта 5698
Маг.Драндулет - 11136.36 - 100 - Синтетика 1 кат
Маг.Каныкей - 11136.36 - 100 - Синтетика 1 кат
Маг.Субару - 11136.36 - 100 - Синтетика 1 кат
Маг.Субару - 11136.37 - 100 - Синтетика 1 кат
Маг.Драндулет - 8909.09 - 100 - Синтетика 2 кат
Маг.Каныкей - 8909.09 - 100 - Синтетика 2 кат
Маг.Субару - 8909.09 - 100 - Синтетика 2 кат
Маг.Субару - 8909.09 - 100 - Синтетика 2 кат
Маг.Драндулет - 5568.18 - 100 - Синтетика 3 кат
Маг.Каныкей - 5568.18 - 100 - Синтетика 3 кат
Маг.Субару - 5568.18 - 100 - Синтетика 3 кат
Маг.Субару - 5568.18 - 100 - Синтетика 3 кат
Абрамович - 24 - 1 - Шприц селекона

Как вывести в печатную форму:
   ТабПеч = СоздатьОбъект("Таблица");
   ТабПеч.ИсходнаяТаблица("Таблица");    
   ТабПеч.ВывестиСекцию();
   ТабПеч.ТолькоПросмотр(1);
   ТабПеч.Показать();

В таком формате:
Т  Покупатель Покупатель Покупатель и.т.д.
Товар Колво Колво Колво и т.д. итого
Товар Колво Колво Колво и т.д. итого
Товар Колво Колво Колво и т.д. итого
1 Эльниньо
 
18.04.13
21:18
Можно так:

ТабПодготовки.Выгрузить(ТабПокупателей);
ТабПокупателей.Свернуть("Покупатель",);
//....

можно и по другому.
2 sysadminlk
 
18.04.13
21:38
Не знаю правильно или нет, но то что написал выводит вроде нормально. Кто что скажет?

   Главная.Выгрузить(Клиенты);
   Клиенты.Свернуть("Покупатель","Колво");
   Главная.Выгрузить(Тов);
   Тов.Свернуть("Товар","Колво");
   ТабПеч = СоздатьОбъект("Таблица");
   ТабПеч.ИсходнаяТаблица("Таблица");        
   ТабПеч.ВывестиСекцию("Шапка|Товар");
   Клиенты.ВыбратьСтроки();
   Пока Клиенты.ПолучитьСтроку() = 1 Цикл
       ТабПеч.ПрисоединитьСекцию("Шапка|Покуп");
   КонецЦикла;
   Тов.ВыбратьСтроки();
   Пока Тов.ПолучитьСтроку() = 1 Цикл
       ТабПеч.ВывестиСекцию("Тов|Товар");
       Клиенты.ВыбратьСтроки();
       Пока Клиенты.ПолучитьСтроку() = 1 Цикл
           Колво = "";
           Главная.ВыбратьСтроки();
           Пока Главная.ПолучитьСтроку() = 1 Цикл
               Если (Главная.Покупатель = Клиенты.Покупатель) и (Главная.Товар = Тов.Товар) Тогда
                   Колво = Главная.Колво;
               КонецЕсли;
           КонецЦикла;
           ТабПеч.ПрисоединитьСекцию("Тов|Покуп");
       КонецЦикла;
   КонецЦикла;
   ТабПеч.ТолькоПросмотр(1);
   ТабПеч.Показать();
3 Эльниньо
 
18.04.13
22:20
Перемудрил.
4 Эльниньо
 
18.04.13
23:44
Завтра на свежую голову выкинешь 2/3 лишнего кода и всё будет норм.