Имя: Пароль:
1C
1C 7.7
v7: Динамическая печатная форма
, ,
0 pofigos
 
04.05.12
12:31
Приветствую.

Может кто-нибудь мог бы помочь. Суть проблемы в создании динамической печатной формы(разное количество колонок в таблице значений - соответственно разное количество колонок в печатной форме. Зависит от периода выбора данных). Существует ли реализация на 7.7 такой задачи? Если да, натолкните, как правильно отсортировать таблицу значений и вывести секции.
Оговорюсь, что в печатной форме присоединение шапки идет по циклу:

Для i=1 По ТабГрупп.КоличествоСтрок() Цикл
   ВыхТаб.ПрисоединитьСекцию("Шапка|ГруппаТов");
КонецЦикла;

Название колонки :
ТабГрупп.ПолучитьЗначение(i,1)

Заранее спасибо
1 zak555
 
04.05.12
12:31
так что не получается ?
2 Deon
 
04.05.12
12:32
По-моему, в (0) сразу и решение задачи написано уже
3 pofigos
 
04.05.12
12:33
(2) Шапку то я вывел, как вывести данные в соответствующую ячейку? Проблема в том, не в каждой ячейке могут быть данные.
4 zak555
 
04.05.12
12:34
(3) ячейки ТЗ ?
5 noxxx
 
04.05.12
12:34
(3) нет данных - выводишь "пустую ячейку". в чем проблема-то?
6 Волесвет
 
04.05.12
12:34
вывестисекцию
присоединитьсекцию
не?
7 Deon
 
04.05.12
12:34
(3) А какая разница. Даже если там нет данных, присоединяй секцию.
8 pofigos
 
04.05.12
12:34
и дополню, наименование вертикальной секции только одно.. а по сути колонок получается от 2-х и более. как указать на нужную?
9 Ахиллес
 
04.05.12
12:35
(3)Так же. Пофигу, что нет данных.
10 Deon
 
04.05.12
12:35
Вапрос нипанятный
11 Ахиллес
 
04.05.12
12:36
(8) Ты не в секции выводишь данные, а в переменные.
12 pofigos
 
04.05.12
12:41
(10) да, трудновато объяснить идею. попробую расписать:
существуют 4 вида номенклатуры(это как раз и выводится циклом. их всегда разное количество) и часть клиентов с покупками части номенклатуры (иногда всей линейки. иногда только 1-го вида).
при формировании печатной формы выводится шапка названия клиента. Далее циклом указанным в (0) выводятся названия видов номенклатуры.Только потом нужно вывести строки с данными (контрагент понятно). Как вариант, попробую вывести пустую. Главная проблема у меня состоит в том, где вывести значение, а где пустую.
13 Mikeware
 
04.05.12
12:43
(12) Максимальное количество колонок известно. Принадлежность колонки известна.
значение известно. в чем проблема?
14 Ахиллес
 
04.05.12
12:46
(12) полно типовых отчетов таких. Смотри к примеру ОстаткиТМЦ там группировка по складам как раз вертикальная.
15 Voronve
 
04.05.12
12:46
(12) Решение изи в типовом отчете ТиС "Остатки ТМЦ" - он сделан так как тебе надо.
16 Ахиллес
 
04.05.12
12:47
то бишь горизонтальная :-)
17 pofigos
 
04.05.12
12:47
(14) спс, посмотрю.
18 aka AMIGO
 
04.05.12
12:48
я в таких случаях динамически именую колонки, заполняю их, а потом вывожу, используя в цикле по КоличествоКолонок() оператор ПрисоединитьСекцию()..
19 aka AMIGO
 
04.05.12
13:04
//формирование ТЗ
   Ном=1;
   Пока Запрос.Группировка("Склад")=1 Цикл
           СписСкл.ДобавитьЗначение(Запрос.Склад,"Скл"+Ном);        
Табл.НоваяКолонка("Скл"+Строка(Ном)+"МинС","Число",7,2);
           Табл.НоваяКолонка("Скл"+Строка(Ном)+"МаксС","Число",7,2);
           Табл.НоваяКолонка("Скл"+Строка(Ном)+"Нал","Число",7,2);
           Ном=Ном+1;

   КонецЦикла;

//Вывод в отчет

   КолСкл=СписСкл.РазмерСписка();
   Для Ном=1 По КолСкл Цикл
       ТекСкл=СписСкл.ПолучитьЗначение(Ном,Стр);
       Таб.ПрисоединитьСекцию("Заг|Скл");
   КонецЦикла;
20 aka AMIGO
 
04.05.12
13:12
// шапка сформирована в (19)

//далее - инфа по строкам

       Для НомСкл=1 По КолСкл Цикл
           ТекСкл=СписСкл.ПолучитьЗначение(НомСкл,Стр);
           МинС=Табл.ПолучитьЗначение(Ном,Стр+"МинС");
           МаксС=Табл.ПолучитьЗначение(Ном,Стр+"МаксС");
           ТекНал=Табл.ПолучитьЗначение(Ном,Стр+"Нал");
...
           Таб.ПрисоединитьСекцию("Строка|Скл");