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

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


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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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


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