Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / [игнор отключен] [закрыт для гостей] / СКД - как подключить встроеный в скд Макет? / 18 сообщений из 18, страница 1 из 1
04.03.2012, 10:49
    #37690331
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Есть готовый работающий отчет СКД, выводит все что нужно.

Макет по образцу документа Word написал, в обработке работает. Но не знаю как организовать вывод данных из СКД в макет.


Подскажите, ссылка на что читать? Или готовый пример подключения!
...
Рейтинг: 0 / 0
04.03.2012, 17:58
    #37690732
Александр Пузаков
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
TVA_11,

Штатными средствами никак. Придется программно ухищряться...
Выводите результат компоновки в таблицу значений, а из таблицы значений уже в вордовский макет.
...
Рейтинг: 0 / 0
05.03.2012, 05:04
    #37691070
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Значит я неточно выразился.
Макет создает по виду документ Ворд (как поставлено в задании).
А так это обычная закладка Макет в СКД.

Так вот она у меня не выводится, тоесть самые азы.
А выводится по умолчанию, сама СКД отчет собирает.

Можно даже без привязки данных, образцы этого я в примерах нашел.


Тоесть. Как программно вывести макет шапки документа без данных?
...
Рейтинг: 0 / 0
05.03.2012, 06:06
    #37691074
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
TVA_11,
В схеме компоновки Настройка--Другие настройки -- Макет оформления.
Не помогает?
...
Рейтинг: 0 / 0
05.03.2012, 14:53
    #37691659
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
pail,
Макет оформления я отключил, согласно прочитанного материала.
Вывожу обычный макет табличного документа.

В обработках это делается так:

//Формирование печатной формы
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.ИмяПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_КорректировкаДолга_Акт";
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Ландшафт;
Макет = ПолучитьМакет("КомплектовочнаяВедомость");

ОбластьЗаголовок = Макет.ПолучитьОбласть("Заголовок");
ОбластьЗаголовок.Параметры.Изделие = СсылкаНаОбъект.Номенклатура;
ТабДокумент.Вывести(ОбластьЗаголовок);
...

Мне надо тоже самое, но через СКД.
...
Рейтинг: 0 / 0
05.03.2012, 16:32
    #37691856
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
TVA_11,

Можно воспользоваться в модуле отчета предопределенной процедурой
ПриКомпоновкеРезультата(ДокументРезультат,ДанныеРасшифровки,СтандартнаяОбработка)

При этом придется отказаться от стандартной обработки и выполнить все этапы компоновки самостоятельно.
Примерно так выглядит аналог того, что СКД делает самостоятельно:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	ПроцессорВывода.Вывести(ПроцессорКомпоновкиДанных);

КонецПроцедуры



Можно развернуть ПроцессорВывода.Вывести() на построчное заполнение табличного документа, примерно так:

Код: vbnet
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
Процедура ПриКомпоновкеРезультата(ДокументРезультат, ДанныеРасшифровки, СтандартнаяОбработка)
	
	СтандартнаяОбработка = Ложь;
	
	НастройкиСКД = КомпоновщикНастроек.ПолучитьНастройки();
	
	КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
	МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, НастройкиСКД, ДанныеРасшифровки);
	
	ПроцессорКомпоновкиДанных = Новый ПроцессорКомпоновкиДанных;
	ПроцессорКомпоновкиДанных.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
	
	ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
	ПроцессорВывода.УстановитьДокумент(ДокументРезультат);
	
        ПроцессорВывода.НачатьВывод();
        пока Истина цикл
              ЭлементРезультата=ПроцессорКомпоновки(Следующий);
              если ЭлементРезультата=неопределено тогда прервать; 
              иначе
                   ПроцессорВывода.Вывести(ЭлементРезультата);
              конецесли;

         конецЦикла;            
         ПроцессорВывода.ЗакончитьВывод();
         ДокументРезультат.ОтображатьСетку=ложь;
         ДокументРезультат.ОтображатьЗаголовки=ложь;
         ДокументРезультат.Показать();
         
КонецПроцедуры



а уж реализовать использование своего макета в цикле вывода - дело техники.
PS за точность кода не ручаюсь - писал по учебнику, сам в полном объеме еще не использовал такое.
...
Рейтинг: 0 / 0
06.03.2012, 15:21
    #37693628
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
ЗначениеПанелипользователя = ТиповыеОтчеты.ПолучитьЗначенияНастроекПанелиПользователяОбъекта(ЭтотОбъект);

НастрокаПоУмолчанию = КомпоновщикНастроек.ПолучитьНастройки();
ТиповыеОтчеты.ПолучитьПримененуюНастройку(ЭтотОбъект);

// МассивГруппировок = ТиповыеОтчеты.ПолучитьЭлементыСтруктуры(КомпоновщикНастроек);
//Для Каждого Группировка из МассивГруппировок Цикл
// Параметр = Группировка.Значение.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("TemplateType"));
// Параметр.Значение = ТипМакетаГруппировкиКомпоновкиДанных.Вертикальный;
// Параметр.Использование = истина;
//КонецЦикла;

ГруппировкаПоОрганизации = ТиповыеОтчеты.ДобавитьГруппировку(КомпоновщикНастроек, "Организация");
ПараметрВывода = ГруппировкаПоОрганизации.ПараметрыВывода.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("TotalsPlacement"));
ПараметрВывода.Значение = РасположениеИтоговКомпоновкиДанных.Конец;
ПараметрВывода.Использование = Истина;

ТиповыеОтчеты.ДобавитьГруппировку(КомпоновщикНастроек, "Порядок");

Результат.Очистить();

СКД = ПолучитьМАкет("ОсновнаяСхемаКомпоновкиДанных");

СхемаКомпоновкиДанных = СКД;
Настройки = КомпоновщикНастроек.ПолучитьНастройки();
КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(СКД));
КомпоновщикНастроек.ЗагрузитьНастройки(Настройки);

ТиповыеОтчеты.СформироватьТиповойОтчет(ЭтотОбъект, Результат, , ВыводВФормуОтчета);
КомпоновщикНастроек.ЗагрузитьНастройки(НастрокаПоУмолчанию);
...
Рейтинг: 0 / 0
06.03.2012, 15:25
    #37693637
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Данные в закладку Макет которая внутри "ОсновнаяСхемаКомпоновкиДанных" не выводятся.
А выводятся в поле Результат, как обычно.
...
Рейтинг: 0 / 0
06.03.2012, 15:58
    #37693728
pail
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
TVA_11,
Вы уж определитесь, что именно требуется:
- использовать свой макет для оформления (тогда ЕГО надо использовать для управления выводом в таблицу-результат)
- использовать для вывода не тот экземпляр табличного документа,который объект-отчет для вывода организует(переменная Результат), а другой. Тогда именно тот, другой, нужно использовать в
ТиповыеОтчеты.СформироватьТиповойОтчет(ЭтотОбъект, Результат, , ВыводВФормуОтчета)
вместо Результат.

Макет в настройках отчета, и таблица, куда производится вывод, хотя и имеют похожий тип (ТабличныйДокумент и ПолеТабличногоДокумента), но совсем не одно и то же. Первый используется для хранения шаблонов оформления областей.
Которые копированием или более тонкими изменениями, усилиями платформы или программиста, переносятся затем в таблицу-результат.
...
Рейтинг: 0 / 0
06.03.2012, 16:56
    #37693902
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Дело в том, что показал общую часть.
Один отчет выводит данные в Макет, другой сделанный на его основе не выводит - так было надо, делал не я.

Теперь надо, чтобы выводилось в Макет и сколько не ищу не могу найти разницу.


ТиповыеОтчеты.ДобавитьГруппировку(КомпоновщикНастроек, "Порядок");

Это строка под шапкой отчета описана в Макете, там много полей.
Даже в том отчете, что работает не могу найти код, который заполняет эти поля и в цикле выводит.
...
Рейтинг: 0 / 0
07.03.2012, 14:29
    #37695335
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
pail,

"Результат" в обоих случаях имеет вид - "ПолеТабличногоДокумента".
...
Рейтинг: 0 / 0
11.03.2012, 15:02
    #37698897
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
С выводом разобрался.
Теперь возник вопрос как вывести шапку отчета только 1 раз?

Вывод макета привязываю, к "полю группировки". Соотвественно табличная часть выводится столько раз сколько записей есть.
А к чему привязать Шапку и Подвал, чтобы выводилась только 1 раз?
...
Рейтинг: 0 / 0
12.03.2012, 08:04
    #37699859
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Сейчас у меня выводится нормальная таблица с шапкой и подвалом, но не 1 раз, а столько сколько записей в БД.
И табличная часть в каждой таблице в одну строчку и новая.
...
Рейтинг: 0 / 0
12.03.2012, 08:29
    #37699867
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Идея проверим.
Создадим для шапки и подвала отдельные "наборы данных" и заполним руками.
Полагаю выведутся один раз.
...
Рейтинг: 0 / 0
12.03.2012, 13:27
    #37700498
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Так результат есть.
Набор данных - объект - шапка.
Одно из полей шапки заполняем программно, другие поля через параметры.
ГенДиректор, даты и тп.

Если выводить только Шапку через ""группировку по полю" заполненному программно", то выводися два раза.

Если Шапка тело Подвал, то почему-то все как надо.
Проблема решена, но вопросы остались.
...
Рейтинг: 0 / 0
19.06.2012, 08:48
    #37843591
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
its.1c.ru/db/v8doc#content:1651:1:IssOgl2_7.1.3.

Говорят там есть ответ ), а доступа нет.
377
...
Рейтинг: 0 / 0
19.06.2012, 09:28
    #37843621
olegves
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
TVA_11,

а зачем пытаться правой рукой почесать левое ухо, да еще и через голову?
Не проще ли использовать обычный Макет, а не СКД, если нужно именно выводить в формат ворда.

Посмотри типовые отчеты, например в ЗУПе 1С, - там везде для вывода в ворд пользуют обычные макеты.
...
Рейтинг: 0 / 0
19.06.2012, 09:55
    #37843677
TVA_11
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
СКД - как подключить встроеный в скд Макет?
Гуд, счас это уже далеко, но запомню.
...
Рейтинг: 0 / 0
Форумы / [игнор отключен] [закрыт для гостей] / СКД - как подключить встроеный в скд Макет? / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]