Имя: Пароль:
 
1C
1С v8
Печать групп на разных страницах (СКД)
0 FromRome
 
04.09.15
17:23
Подскажите пожалуйста, можно ли как то в макете СКД указать программно, чтобы каждая таблица ( таблица это отдельная группа ), выводилась на отдельную страницу, грубо говоря чтобы выводился горизонтальный разделитель страниц после каждого (указанного) группировочного поля.
1 Брегорьян
 
04.09.15
17:43
свой макет? но это не программно. а макетами ж можно управлять программно?
2 Necessitudo
 
04.09.15
17:53
Я бы такое делал при выводе в табличный документ.
3 Брегорьян
 
04.09.15
17:55
(2) а я бы на это внимательно посмотрел
4 Necessitudo
 
04.09.15
17:56
(3) Магия построчного вывода макета тебе незнакома?)
5 Брегорьян
 
04.09.15
17:59
(4) я о ней прочно забыл после знакомства с СКД ;)
6 Брегорьян
 
04.09.15
18:00
(0) как вариант: вывести с помощью СКД всё в дерево, а его потом правильно вывести
7 Armando
 
04.09.15
18:38
Покажи скрин с настройками скд
8 FromRome
 
05.09.15
09:11
(7) Ссылка на скрин с настройками СКД: http://s018.radikal.ru/i508/1509/20/727faa938988.jpg , мне нужно чтобы группа " ГРУППА " после окончания переносилась на другой лист...не пойму как к ней прицепится...кстати, сам отчет я создаю программно, с программным отбором.
9 FromRome
 
05.09.15
09:12
и собственно процедура, которой я создаю отчет с отбором по анализу и конткретному контрагенту:
Процедура Кнопка1Нажатие(Элемент)
    
    СписокЗначений = Новый СписокЗначений;
    
    Запрос = Новый Запрос;
    Запрос.Текст =
    "ВЫБРАТЬ РАЗЛИЧНЫЕ
    |    Т_РезультатыАнализы.Анализ,
    |    Т_РезультатыАнализы.Ссылка
    |ИЗ
    |    Документ.Т_Результаты.Анализы КАК Т_РезультатыАнализы
    |ГДЕ
    |    Т_РезультатыАнализы.Ссылка = &Ссылка";
    
    Запрос.УстановитьПараметр("Ссылка", Ссылка);
    
    Результат = Запрос.Выполнить();
    
    ВыборкаДетальныеЗаписи = Результат.Выбрать();
    
    Пока ВыборкаДетальныеЗаписи.Следующий() Цикл
        СписокЗначений.Добавить(ВыборкаДетальныеЗаписи.Анализ);
        
    КонецЦикла;
    
    
    
    
    
    Отчет = Отчеты.ОтчетПоКонтрагентам.Создать();
    КомпоновщикНастроек = Отчет.КомпоновщикНастроек;
    СхемаКомпоновкиДанных = Отчет.ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    
    Настройки =  СхемаКомпоновкиДанных.НастройкиПоУмолчанию;
    
    Представление = Настройки.ПараметрыДанных.Элементы.Найти("ПредставлениеМакета");
    Представление.Использование = Истина;
    Если НЕ Представление = Неопределено Тогда
        Представление.Значение = Договор;
    КонецЕсли;
    ПациентМакета = Настройки.ПараметрыДанных.Элементы.Найти("ПациентМакета");
    ПациентМакета.Использование = истина;
    ПациентМакета.Значение = Пациент;
    ПациентМакета = Настройки.ПараметрыДанных.Элементы.Найти("ДатаР");
    ПациентМакета.Использование = истина;
    ПациентМакета.Значение = Пациент.Т_ДатаРождения;
    
    
    ЭлементУсловногоОформления =Настройки.УсловноеОформление.Элементы.Добавить();
    ОформляемоеПоле = ЭлементУсловногоОформления.Поля.Элементы.Добавить();
    ОформляемоеПоле.Поле = Новый ПолеКомпоновкиДанных("Результат");
    ЭлементОтбораДанных = ЭлементУсловногоОформления.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбораДанных.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Период");
    ЭлементОтбораДанных.Использование = Истина;
    ЭлементОтбораДанных.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбораДанных.ПравоеЗначение = Дата;
    ЭлементУсловногоОформления.Использование=Истина;
    
    
    ЭлементУсловногоОформления.Оформление.УстановитьЗначениеПараметра("Шрифт", Новый Шрифт(,9,Истина));
    
    
    
    
    ЭлементОтбора = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Пациент");
    
    ЭлементОтбора.Использование = Истина;
    ЭлементОтбора.ВидСравнения = ВидСравненияКомпоновкиДанных.Равно;
    ЭлементОтбора.ПравоеЗначение = Пациент;
    ЭлементОтбора2 = Настройки.Отбор.Элементы.Добавить(Тип("ЭлементОтбораКомпоновкиДанных"));
    ЭлементОтбора2.ЛевоеЗначение = Новый ПолеКомпоновкиДанных("Анализ");
    ЭлементОтбора2.Использование  = Истина;
    ЭлементОтбора2.ВидСравнения = ВидСравненияКомпоновкиДанных.ВСписке;
    
    ЭлементОтбора2.ПравоеЗначение = СписокЗначений;
    
    
    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;
    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    ФормаОтчета = Отчет.ПолучитьФорму("ОсновнаяФорма");
    ФормаОтчета.Открыть();
    Результат = ФормаОтчета.ЭлементыФормы.Результат;
    Результат.Очистить();
    ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
    ПроцессорВывода.УстановитьДокумент(Результат);
    ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);
    СтандартнаяОбработка = Истина;
    Отчет.ПриКомпоновкеРезультата(Результат, ДанныеРасшифровки, СтандартнаяОбработка);
    
КонецПроцедуры
10 FromRome
 
05.09.15
10:40
Спасибо всем за внимание, разобрался :)