Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
22 ноя 2024, 00:12

ВнутренняяОбработка-МакетКомпановкиДанных-КакРаскрасить

Автор Sy4a, 13 ноя 2017, 16:46

0 Пользователей и 1 гость просматривают эту тему.

Sy4a

Платформа 8.3.10.2168, конфигурация 1С:ERP Управление предприятием 2 (2.1.3.258).
Есть самописная внутренняя обработка в макете создан МакетКомпановкиДанных. По нажатие на кнопку на форме, с формы берется таблица значений и передается в макеткомпановки данных, там в при помощи скд формируется элементарный отчет и выводится в отдельном окне. Дело в том что в отдельном окне открывается результат отчета где все заголовки и строчки написаны черным по белому, а хотелось чтобы область заголовков была выделена как в обычном отчете желтым цветом ну и строки соответственно с оттенками серого или типо того.
Вопрос возможно ли этого добиться именно в обработке? Использовать отдельно внешний или внутренний отчет не предлагать :)
Собственно код Нажатия на кнопку:

&НаСервере
Функция ПоказатьРезультатНаСервере()
Перем ТабДок;

ОбработкаОбъект = РеквизитФормыВЗначение("Объект");

//
Схема = ОбработкаОбъект.ПолучитьМакет("Результат");

    //Настройки = Схема.НастройкиПоУмолчанию;

   //создадим компоновщик настроек и загрузим настройки по умолчанию, вместо настроек по умолчанию можно использовать восстановленные настройки
    КомпоновщикНастроек = Новый КомпоновщикНастроекКомпоновкиДанных();
    КомпоновщикНастроек.Инициализировать(Новый ИсточникДоступныхНастроекКомпоновкиДанных(Схема));
    КомпоновщикНастроек.ЗагрузитьНастройки(Схема.НастройкиПоУмолчанию);
    Настройки = КомпоновщикНастроек.Настройки;
   
        //установка параметров отчета, без КомпоновщикНастроекКомпоновкиДанных делать это гораздо сложнее
    //Настройки.ПараметрыДанных.УстановитьЗначениеПараметра("ДатаИнтервала", ПериодМЛ);
 
   
КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;
Макет = КомпоновщикМакета.Выполнить(Схема, Настройки);

НаборДанных = Новый Структура;
НаборДанных.Вставить("Результат", ПолучитьЗапросРезультата().Выполнить());

ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
ПроцессорКомпоновки.Инициализировать(Макет,НаборДанных);

ПроцессорВывода = Новый ПроцессорВыводаРезультатаКомпоновкиДанныхВТабличныйДокумент;
ПроцессорВывода.УстановитьДокумент(ТабДок);
ТабДок = ПроцессорВывода.Вывести(ПроцессорКомпоновки);

ТабДок.ОтображатьЗаголовки = Ложь;
ТабДок.ОтображатьСетку = Ложь;
ТабДок.ТолькоПросмотр = Истина;

Возврат ТабДок

КонецФункции

&НаКлиенте
Процедура ПоказатьРезультат(Команда)
ПоказатьРезультатНаСервере();
ТабДок = ПоказатьРезультатНаСервере();

ТабДок.ТолькоПросмотр = Истина;
ТабДок.Показать();

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

Функция ПолучитьЗапросРезультата()
ТЗ=ТаблицаМЛ.Выгрузить();
Запрос=Новый Запрос("ВЫБРАТЬ
                    | ТЗ.Номенклатура,
                    | ТЗ.Запланировано КАК План,
                    | ТЗ.График КАК Календарь,
                    | """" КАК РабочийЦентр,
                    | ТЗ.ЗагрузкаТПА,
                    | ТЗ.ЗагрузкаОператор,
                    | ТЗ.ЗагрузкаДляУпорядочивания КАК Загрузка,
                    | ВЫБОР
                    | КОГДА ТЗ.ЗагрузкаОператор = 0
                    | И ТЗ.ЗагрузкаТПА > 0
                    | ТОГДА ""ТПА""
                    | ИНАЧЕ ВЫБОР
                    | КОГДА ТЗ.ЗагрузкаОператор > 0
                    | ТОГДА ""Оператор""
                    | КОНЕЦ
                    | КОНЕЦ КАК ТипРабочегоЦентра,
                    | &ДатаИнтервала КАК ДатаИнтервала,
                    | ТЗ.Запланировано КАК Количество
                    |ПОМЕСТИТЬ ТЗ
                    |ИЗ
                    | &ТЗ КАК ТЗ
                    |;
                    |
                    |////////////////////////////////////////////////////////////////////////////////
                    |ВЫБРАТЬ
                    | ТЗ.Номенклатура,
                    | СУММА(ТЗ.План) КАК План,
                    | ТЗ.Календарь,
                    | ТЗ.РабочийЦентр,
                    | ТЗ.ЗагрузкаТПА,
                    | ТЗ.ЗагрузкаОператор,
                    | ТЗ.ТипРабочегоЦентра,
                    | ТЗ.ДатаИнтервала,
                    | СУММА(ТЗ.Загрузка) КАК Загрузка,
                    | СУММА(ТЗ.Количество) КАК Количество
                    |ИЗ
                    | ТЗ КАК ТЗ
                    |
                    |СГРУППИРОВАТЬ ПО
                    | ТЗ.Номенклатура,
                    | ТЗ.Календарь,
                    | ТЗ.РабочийЦентр,
                    | ТЗ.ЗагрузкаТПА,
                    | ТЗ.ЗагрузкаОператор,
                    | ТЗ.ТипРабочегоЦентра,
                    | ТЗ.ДатаИнтервала");
Запрос.УстановитьПараметр("ТЗ",ТЗ);
Запрос.УстановитьПараметр("ДатаИнтервала",ПериодМЛ);
Возврат Запрос;

КонецФункции



oleg-x

Создай табличное поле в обработке и выводи результат отчета туда и будет тебе счастье :)
Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Sy4a

Цитата: oleg-x от 13 ноя 2017, 18:01
Создай табличное поле в обработке и выводи результат отчета туда и будет тебе счастье :)
Не совсем понял что имеете ввиду? табличное поле если я правильно понимаю это элемент формы от реквизита типа таблица значений или как то так) а у меня используются группировки (сворачивание, разворачивание строк) или их можно и в табличном поле както использовать? если да то как?
Попробовал добавить реквизит Табличный документ и вывести через него на форме, всё равно всё черным по белому написано) вообще туго у меня с выводом отчетов не при помощи скд :) пытался как то свою форму отчета рисовать так у меня и там такая же лажа была что всё черным по белому) я где-то чего-то не догоняю, а чего понять не могу)

Добавлено: 14 ноя 2017, 10:22


Проблема решена. Нужно было в МакетеКомпановкиДанных в настройках-другиенастройки поставить галочку у макетОформления и случилось счастье)

oleg-x

Помог, нажми спасибо. Не помог, нажми спасибо :-)
Если у Вас есть проблема, то её уже кто то решил @Yandex, @Google

Теги:
Рейтинг@Mail.ru

Поиск