Имя: Пароль:
1C
1C 7.7
v7: ПрисоединитьСекцию
,
0 YDen
 
09.06.13
15:48
Здравствуйте.
Без Вашей помощи не могу обойтись. Подскажите пожалуйста.
Самописная конфигурация, заполнение школьных аттестатов. Я не школьник, если чё :)
Документ с ТЧ. На основании этого документа обработкой делаю печатную форму. Лист А4, альбомная ориентация, условно разделен вертикалью на 2 равные части. В левой и правой частях таблица с предметами и оценками. нужно заполнять эти таблицы начиная с плевой части, далее когда места под строки для предметов не хватит, начинать заполнять правую часть.
С левой частью у меня проблем нет, а вот правую никак не могу заставить заполнять в нужном месте - внизу начинает формироваться:

   Таб = СоздатьОбъект("Таблица");
   Таб.ИсходнаяТаблица("Приложение11");
   
   
   Таб.ВывестиСекцию("Шапка");
   
   Номер=0;
   
   ВыбратьСтроки();
   Пока ПолучитьСтроку() > 0 Цикл
       Номер=Номер+1;
       Если Номер<22 Тогда
           Таб.ВывестиСекцию("Список|Лево");
       КонецЕсли;
   КонецЦикла;
   Для ш=Номер по 42 Цикл
       Предмет="Z";
       
       Если ш>21 Тогда
           Таб.ПрисоединитьСекцию("Список|Право");
           Таб.ВывестиСекцию("Список|Право");
       Иначе
           Таб.ВывестиСекцию("Список|Лево");
       КонецЕсли;
       
       
   КонецЦикла;
   
   
   // Вывод заполненной формы
   Таб.ТолькоПросмотр(1);
   Таб.ПараметрыСтраницы(2,100,,5,5,5,5);
   Таб.Показать("Приложение к аттестату "+Фамилия+" "+Имя);

Где я напутал?

Спасибо
1 YDen
 
09.06.13
15:52
21-это число строк на каждой стороне.
2 vladko
 
09.06.13
15:55
если у тебя известно, что с 22й строки документа надо выводить в правую часть, тогда надо выводить 1ю строку и присоединять данные из 22й, затем выводим 2ю строку и присоединяем данные из 23 и т.д.
3 v4442
 
09.06.13
15:55
не совсем понятно что хочешь.
Может 21 колонка?
4 vladko
 
09.06.13
15:56
делается за один цикл
5 YDen
 
09.06.13
15:57
6 v4442
 
09.06.13
15:58
(0) сразу вывести не получится. Сначала заполни таблицу , а потом уже из таблицы в печатную форму.
7 YDen
 
09.06.13
15:59
(6) Т.е ТЗ из 4 колонок?
8 v4442
 
09.06.13
15:59
(6) вариант2, запомни координаты и води по координатам печатной формы.
9 v4442
 
09.06.13
16:00
(7) да с ТЗ проще, с координатами сложнее.
10 YDen
 
09.06.13
16:02
(9) Тоже думаю с ТЗ проще. Мне ведь еще нужно на бланках печатать. Т.е мало еще выкатать данные, нужно еще и в нужное место на бланке попасть.
11 YDen
 
09.06.13
16:02
Спасибо, пОнято.
12 Злопчинский
 
09.06.13
19:34
Граница = 27; //количество строк на странице
   КС = ТЗ.КоличествоСтрок();
   ТЗ.ВыбратьСтроки();
   Пока ТЗ.ПолучитьСтроку() = 1
   Цикл
       
       Если ТЗ.НомерСтроки > Граница
       Тогда
           Граница = Граница + 27;
           Если Граница > КС
           Тогда
               Прервать;
           КонецЕсли;
           ТЗ.ПолучитьСтрокуПоНомеру(Граница+1);
       КонецЕсли;
       
       ном = ТЗ.НомерСтроки;
           ПечНом             = ТЗ.НомерСтроки;
           ИсхТабл.ВывестиСекцию("Строка|Столбец");
           Если ном+27 > КС
           Тогда
               Продолжить;
           КонецЕсли;
       ТЗ.ПолучитьСтрокуПоНомеру(ном+27);
           ПечНом             = ТЗ.НомерСтроки;
           ИсхТабл.ПрисоединитьСекцию("Строка|Разделитель");
           ИсхТабл.ПрисоединитьСекцию("Строка|Столбец");
           
       ТЗ.ПолучитьСтрокуПоНомеру(ном);
   КонецЦикла;
Проблемы невозможно решaть нa том же уровне компетентности, нa котором они возникaют. Альберт Эйнштейн