Имя: Пароль:
1C
1С v8
СКД: Серый вывод. Управляемая форма.
0 Ясуо
 
12.11.15
13:23
Всем привет.
Программно, через расшифровку запустил Отчет с использованием СКД.
В итоге получилось это http://s019.radikal.ru/i643/1511/b7/1a7756536e43.png
Результат "серый, бледный". А хочется нормальный, человеческий. Подскажите как починить?
1 mxs089
 
12.11.15
13:25
код
2 PR третий
 
12.11.15
13:25
(0) Нажми "Сформировать"
4 Ясуо
 
12.11.15
13:34
(2) мне не нужно формировать уже сформированный отчет
(1) &НаКлиенте
Процедура РезультатОбработкаРасшифровки(Элемент, Расшифровка, СтандартнаяОбработка)
    Перем ВыполненноеДействие;
    СтандартнаяОбработка = Ложь;
    ФормаПустая= ПолучитьФорму("Отчет.ПМ_ОстатокБюджетаДепартамент1.Форма.ФормаОтчетаПустая",,ЭтаФорма);
    ФормаПустая.Результат.Очистить();
    Р=ФормаПустая.Результат;
    О=ФормаПустая.отчет;
    ФормаПустая.АвтоОтображениеСостояния=РежимАвтоОтображенияСостояния.НеОтображать;
    ФормаПустая.ЗакрыватьПриЗакрытииВладельца=Истина;    
    ФормаПустая.Результат=ОбработатьРасшифровку(О,Р,Расшифровка,ФормаПустая.ДанныеРасшифровки);
    
    ФормаПустая.открыть();
КонецПроцедуры

&НаСервере
Функция ОбработатьРасшифровку(Отчет, Результат,Расшифровка,ДанныеРасшифровкиПустойФормы)
    
    ВариантБюджета=Неопределено;
    Департамент=Неопределено;
    СтатьяБюджета=Неопределено;
    Период=Неопределено;
    СтруктураПолей = Новый Структура;
    Элемент = ПолучитьИзВременногоХранилища(ДанныеРасшифровки).Элементы.получить(Расшифровка);
    ЗаполнитьСтруктуруПолей(СтруктураПолей, Элемент);
    КомпоновщикМакета= новый КомпоновщикМакетаКомпоновкиДанных;
    ОтчетПоПереносам=Отчеты.ПМ_ОстатокБюджетаДепартамент1.Создать();
    СКД=ОтчетПоПереносам.ПолучитьМакет("МакетСписокПереносов");
    
    Отчет.КомпоновщикНастроек.ЗагрузитьНастройки(СКД.НастройкиПоУмолчанию);

    ВариантБюджета=Справочники.ПМ_ВариантыБюджетов.НайтиПоКоду("000000001");
    СтруктураПолей.Свойство("СтатьяБюджета",СтатьяБюджета);
    СтруктураПолей.Свойство("Период",Период);

    ОтчетПоПереносам=Отчеты.ПМ_ОстатокБюджетаДепартамент1.Создать();
    СКД=ОтчетПоПереносам.ПолучитьМакет("МакетСписокПереносов");
    ОтчетОбъект=ДанныеФормыВЗначение(Отчет,тип("ОтчетОбъект.ПМ_ОстатокБюджетаДепартамент1"));
    ОтчетОбъект.СхемаКомпоновкиДанных=СКД;
    ПараметрВариантБюджета = ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("ВариантБюджета"));
    ПараметрВариантБюджета.Использование = Истина;
    ПараметрВариантБюджета.Значение = ВариантБюджета;
    ПараметрСтатьяБюджета = ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("СтатьяБюджета"));
    ПараметрСтатьяБюджета.Использование = Истина;
    ПараметрСтатьяБюджета.Значение = СтатьяБюджета;
    ПараметрПериод = ОтчетОбъект.КомпоновщикНастроек.Настройки.ПараметрыДанных.НайтиЗначениеПараметра(Новый ПараметрКомпоновкиДанных("Период"));
    ПараметрПериод.Использование = Истина;
    ПараметрПериод.Значение = Период;
    ОтчетОбъект.СкомпоноватьРезультат(Результат,ДанныеРасшифровкиПустойФормы);
    Возврат Результат;
КонецФункции
5 PR третий
 
12.11.15
13:35
(4) ok
6 famnam
 
12.11.15
14:39
ПолеТабличногоДокумента.ОтображениеСостояния неактуально походу стоит
7 Ясуо
 
12.11.15
14:51
(6) Да. Получилось. Спасибо большое!
Чтобы обнаруживать ошибки, программист должен иметь ум, которому доставляет удовольствие находить изъяны там, где, казалось, царят красота и совершенство. Фредерик Брукс-младший