Помогите сделать отчет

1. Расим 31.08.09 12:57 Сейчас в теме
Люди как прикрепить в таблице вертикальную секцию пересекающуюся с горизонтальной....Пробывал Таб.ПрисоединитьСекцию что то не получаеться,
Процедура Печать()  
	Таб=СоздатьОбъект("Таблица");  
	Таб2=СоздатьОбъект("Таблица"); 
	Таб2.ИсходнаяТаблица("Таблица1");
	
	Таб.ВывестиСекцию("Шапка");
	 
	а=0; 
	ИтСуммаУ=0;
	ВыбратьСтроки();
	Пока ПолучитьСтроку()=1 Цикл  
		Если (Номенклатура.ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Услуга) или (Номенклатура.ВидНоменклатуры=Перечисление.ВидыНоменклатуры.Работа) Тогда
		    а=а+1; 
			ПорНом=а;
			Услуга=СокрЛП(Номенклатура);
			я
			Кол_=Количество;
			Цена_=Цена;
			СуммаУ=Сумма; 
			ИтСуммаУ=ИтСуммаУ+СуммаУ;
		     	Таб.ВывестиСекцию("Строка");
			     
		КонецЕсли; 
	КонецЦикла;	 
	
	Если ИтСуммаУ=0 Тогда
		ИтСумма="";
	КонецЕсли;
	Если а<12 Тогда
		Для аа=а+1 по 12 Цикл   
			ПорНом=аа;
			Услуга=""; 
			СуммаУ=""; 
			Кол_="";
			Цена_="";  
	       	Таб.ВывестиСекцию("Строка");   
		          	
		КонецЦикла;   
		
	КонецЕсли;                       
	Таб.ВывестиСекцию("Подвал");                      
    	
	Таб2.ВывестиСекцию("Шапка"); 
	а=0; 
	ИтСуммаУ=0;
	ВыбратьСтроки();
	Пока ПолучитьСтроку()=1 Цикл  
		Если (Номенклатура.ВидНоменклатуры<>Перечисление.ВидыНоменклатуры.Услуга) и (Номенклатура.ВидНоменклатуры<>Перечисление.ВидыНоменклатуры.Работа) Тогда
		    а=а+1; 
			ПорНом=а;
			Услуга=СокрЛП(Номенклатура); 
			СуммаУ=Сумма; 
			ЦенаУ=Цена;
			КоличествоУ=Количество;
			ИтСуммаУ=ИтСуммаУ+СуммаУ;
			Таб2.ВывестиСекцию("Строка");  
		КонецЕсли;
	КонецЦикла;	 
	
	Если ИтСуммаУ=0 Тогда
		ИтСумма="";
	КонецЕсли;
	Если а<12 Тогда
		Для аа=а+1 по 12 Цикл   
			ПорНом=аа;
			Услуга=""; 
			СуммаУ="";  
			ЦенаУ="";
			КоличествоУ="";
			Таб2.ВывестиСекцию("Строка");  
		КонецЦикла;
	КонецЕсли;	
	Таб2.ВывестиСекцию("Подвал");  
	
	Таб.Показать();
	Таб2.Показать();   
КонецПроцедуры
Показать
Прикрепленные файлы:
По теме из базы знаний
Ответы
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
2. Altair777 645 31.08.09 13:24 Сейчас в теме
Из СП:

ПрисоединитьСекцию(<?>);
Синтаксис:
ПрисоединитьСекцию(<ИмяСекции>)
Назначение:
Присоединить секцию исходной таблицы-шаблона к текущей таблице.
Параметры:
<ИмяСекции> - выражение типа строка, задающее имя присоединяемой секции, или значение типа секция, полученное при помощи метода ПолучитьСекцию.
Имя секции задается строковым выражением следующего формата:
ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]
Символы ''<'' , ''>'' , ''-'' после идентификатора секции указывают на то, что присоединяется только часть секции. ''<'' - заголовочная часть (с начала секции до начала вложенной секции). ''>'' - подвальная часть (с конца вложенной секции до конца секции). ''-'' - средняя часть (собственно вложенная секция).
В выражении можно задавать имена двух секций, разделенных знаком ''|''. При этом будет получена область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая - вертикальной (состоять из колонок). В результате получится прямоугольная область таблицы.

ССылка на пример есть здесь http://infostart.ru/forum/messages/forum11/topic10928/message89369/#message89369
3. Расим 31.08.09 13:28 Сейчас в теме
спасибо,сейчас попробую
4. Расим 31.08.09 13:38 Сейчас в теме
что то неполучаеться видимо делаю не так
Для аа=а+1 по 12 Цикл  
         ПорНом=аа;
         Услуга="";
         СуммаУ="";
         Кол_="";
         Цена_="";  
             Таб.ВывестиСекцию("Строка|строка3");   

???
5. Altair777 645 31.08.09 14:16 Сейчас в теме
(4)
Нужно Таб.ПрисоединитьСекцию("Строка|строка3");
6. Расим 31.08.09 14:27 Сейчас в теме
Таб.ВывестиСекцию("Строка");
таб.ПрисоединитьСекцию("Строка|строка3");
сделал так но снова не выходит(
7. Расим 31.08.09 14:28 Сейчас в теме
Таб.ВывестиСекцию("Строка");
таб.ПрисоединитьСекцию("Строка|строка3");
сделал так но снова не выходит(
8. Ёпрст 1065 31.08.09 14:39 Сейчас в теме
(7) выводить нужно не ВСЮ строку целиком а пересечение Горизонтальной и Вертикальной Секции... и потом уже к ней присоединять .
9. Ёпрст 1065 31.08.09 14:42 Сейчас в теме
Посмотрел на твой рисунок..
Через Вывести-присоединить вряд ли чего путное получится..
Рисуй свой талончик через Область Таблицы, опосля вывода всего того, что слева..
10. Ёпрст 1065 31.08.09 14:44 Сейчас в теме
Или .. если задать жестко количество строк на талончике,
Делаешь Таб.Вывести() потом через Область заполняешь строки с услугами, если нужно, выводишь второй листок (если в первый не влазиет)... Так еще проще.
11. Расим 31.08.09 14:47 Сейчас в теме
Ёпрст,а можно не много поподробней...
13. Ёпрст 1065 31.08.09 15:42 Сейчас в теме
(11)

1. Выкидываешть все секции
2.Выкидываешь из Секции "Строка" все выражения (т.е оставляешь её пустой, чтоб не было в в ней <Услуга> ,<Цена> и т.д..
3.

Процедура Печать()  
   Таб=СоздатьОбъект("Таблица");  
   Таб.Вывести(); //вывели всю Таблицу целиком
   // теперь заполним её
   ВыбратьСтроки();
   НачСтрока=15;
   Пока ПолучитьСтроку() = 1 Цикл 
       Таб.Область(НачСтрока,3,НачСтрока,3).Текст = Услуга;
       Таб.Область(НачСтрока,7,НачСтрока,7).Текст = Цена;
       Таб.Область(НачСтрока,8,НачСтрока,8).Текст = Количество;
       Таб.Область(НачСтрока,9,НачСтрока,9).Текст = Количество*Цена;
   КонецЦикла;
Показать


+ заполнить итоги и предусмотреть случай не "влезание в макет", когда портебуется 2-ая страничка...
12. Altair777 645 31.08.09 15:16 Сейчас в теме
Сначала нужно
1) Выделить вертикальную секцию левее от талончика и задать ей имя. Например, "Акт"
2) А потом Таб.ВывестиСекцию("Строка|Акт");
И в цикле по количеству талончиков Таб.ПрисоединитьСекцию("Строка|строка3");

В примере есть. Да и вообще в ЖКК все подробно описано.

ВывестиСекцию
Перенести секцию исходной таблицы-шаблона в результирующую таблицу.

Синтаксис:
ВывестиСекцию(<Секция>)

Англоязычный синоним:
PutSection

Параметры:
<Ceкция>
Выражение типа строка, задающее имя выводи­мой секции, или значение типа секция, полу­ченное при помощи метода ПолучитьСекцию.

Описание:
Метод ВывестиСекцию выполняет перенос именованной секции из исход­ной таблицы-шаблона в результирующую таблицу. Имя секции задается стро­ковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

< заголовочная часть (с начала секции до начала вложенной сек­ции).

> подвальная часть (с конца вложенной секции до конца секции).

— средняя часть (собственно вложенная секция).

В выражении <Секция> можно задавать имена двух секций, разделенных зна­ком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ВывестиСекцию помещает новую секцию со следующей строки вслед за последней выведенной секцией, начиная с первой колонки.

Пример:
//Выводим заглавие таблицы
Таб.ВывестиСекцию("Документ<|ДокументВерт<");

Пока ЗапросКат.Группировка("Ктг") = 1 Цикл

   Таб.ПрисоединитьСекцию("Документ<|Осн2");

КонецЦикла;

Таб.ПрисоединитьСекцию("Документ<|ДокументВерт>");

//Выводим колонтитул таблицы
Таб.ВывестиСекцию("КолонТитул|ДокументВерт<");

Пока 3апросКат.Группировка("Ктг") = 1 Цикл
   Таб.ПрисоединитьСекцию("КолонТитул|Осн2");
КонецЦикла;

Таб.ПрисоединитьСекцию("КолонТитул|ДокументВерт>");

Продолжать = 1;

Пока Запрос.Группировка("Пдр") = 1 Цикл
   // Заполнение полей
   Пдр Таб.ВывестиСекцию("Осн1|ДокументВерт<");
   Далее = 1;
   Пока Продолжать = 1 Цикл
      // Заполнение полей Ктг
      СлКат = ЗапросКат.Группировка("Ктг");
      Если Далее = 1 Тогда
         ОК = Запрос.Группировка("Ктг");
      КонецЕсли;
      Если СлКат = 0 Тогда
         Прервать;
      КонецЕсли;
      Если ЗапросКат.Ктг = Запрос.Ктг Тогда
         Таб.ПрисоединитьСекцию("Осн1|Осн2");
         Далее = 1;
      Иначе
         Таб.ПрисоединитьСекцию("Осн1|Пусто");
         Далее = 0;
      КонецЕсли;
   КонецЦикла;
   Таб.ПрисоединитьСекцию("Осн1|ДокументВерт>");
КонецЦикла;
Показать


ПрисоединитьСекцию
Присоединить секцию исходной таблицы-шаблона к результирующей таблице.

Синтаксис:
ПрисоединитьСекцию(<Секция>)

Англоязычный синоним:
AttachSection

Параметры:
<Секция> Выражение типа строка, задающее имя выводи­мой секции, или значение типа секция, получен­ное при помощи метода ПолучитьСекцию.

Возвращаемое значение: Нет.

Описание:

Метод ПрисоединитьСекцию выполняет присоединение именованной сек­ции из исходной таблицы-шаблона к результирующей таблице. Имя секции задается строковым выражением следующего формата:

ИдентификаторСекции1[<|>|-][|ИдентификаторСекции2[<|>|-]]

Символы "<" , ">" , "-" после идентификатора секции указывают на то, что выбирается только часть секции:

< заголовочная часть (с начала секции до начала вложенной сек­ции).
> подвальная часть (с конца вложенной секции до конца секции).
— средняя часть (собственно вложенная секция).

В выражении <Секция> можно задавать имена двух секций, разделенных зна­ком "|". При этом перенесена будет область исходной таблицы, являющаяся пересечением первой и второй указанных секций. При этом одна секция может быть горизонтальной (состоять из строк), а другая — вертикальной (состоять из колонок). В результате перенесется прямоугольная область таблицы.

Если в качестве параметра метода задано строковое значение имени секции, то при переносе ячейки таблицы, имеющие тип «Шаблон» и «Выражение», будут заполнены соответствующими данными.

Метод ПрисоединитьСекцию помещает новую секцию в следующей ко­лонке, правее последней ранее выведенной секции. При этом секция, переда­ваемая в качестве параметра метода ПрисоединитьСекцию, должна иметь прямоугольную форму, т. е. задаваться как пересечение горизонтальных и вер­тикальных секций.

Пример:

См. предыдущий пример.
14. Ёпрст 1065 31.08.09 15:43 Сейчас в теме
+13 ну и внутрь цикла еще
НачСтрока = НачСтрока+1;
Оставьте свое сообщение

Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот