Вход | Регистрация

1С:Предприятие ::

Метки: 

Фиксация строк и колонок на СКД

Я
   MistaEr
 
16.11.17 - 11:31
Доброго времени!
Как бы решить вопрос по теме. Пробовал так:

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

    
    Настройки = КомпоновщикНастроек.ПолучитьНастройки() // Получаем настройки отчета 

    ДанныеРасшифровки = Новый ДанныеРасшифровкиКомпоновкиДанных;// Создаем данные расшифровки 

    КомпоновщикМакета = Новый КомпоновщикМакетаКомпоновкиДанных;// Создаем компоновщик макета 

    // Инициализируем макет компоновки используя схему компоновки данных 

    // и созданные ранее настройки и данные расшифровки

    СхемаКомпоновкиДанных = ПолучитьМакет("ОсновнаяСхемаКомпоновкиДанных");
    МакетКомпоновки = КомпоновщикМакета.Выполнить(СхемаКомпоновкиДанных, Настройки, ДанныеРасшифровки);
    
    // Скомпонуем результат

    ПроцессорКомпоновки = Новый ПроцессорКомпоновкиДанных;
    ПроцессорКомпоновки.Инициализировать(МакетКомпоновки, , ДанныеРасшифровки);
    
    ДокументРезультат.Очистить();
    
    // Выводим результат в табличный документ

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

Так работает, правда, если добавлять удалять отборы, фиксация сверху меняется. Не важно...

Есть у меня вычисляемое поле ОбщийМодульСервер.ПолучитьПлановуюСумму(&Организация, &ДатаКон, Статья), так вот при выоде компановки программно (методом выше) ругается Синтаксическая ошибка ОбщийМодульСервер.ПолучитьПлановуюСумму.

Я думаю, фиксацию мне нужно сделать другим способом
 
  Рекламное место пустует
   DrShad
 
1 - 16.11.17 - 12:07
казалось бы причем тут фиксация
   MistaEr
 
2 - 16.11.17 - 12:24
(1) Скорее на СКД есть другие методы фиксации, вот про них я и хочу узнать)
   DrShad
 
3 - 16.11.17 - 12:26
а ошибка к чему?
   MistaEr
 
4 - 16.11.17 - 12:38
(3) Чтоб не предлагали этот вариант, ну а если предложат, вместе с решением проблемы. Может свойства общего модуля менять, там у меня пока только одна галочка Сервер
   DrShad
 
5 - 16.11.17 - 12:40
(4) нужно последний параметр метода Инициализировать() в истину выставлять при программном формировании
   MistaEr
 
6 - 16.11.17 - 13:00
(5) Получилось). Спасибо. Фиксацию сверху буду ориентировать на количество отборов. Используется отбор или нет попробую взять в МакетКомпоновки.ЗначенияПараметров
   kittystark
 
7 - 16.11.17 - 17:12
(6) ориентироваться на кол-во отборов не совсем правильно
вот держи, поставь эти строки вместо ПроцессорВывода.Вывести(ПроцессорКомпоновки);:
[1с]
    ПроцессорВывода.НачатьВывод();
    ТаблицаЗафиксирована = Ложь;
    ДокументРезультат.ФиксацияСверху = 0;
    
    Пока Истина Цикл
        #Если наКлиенте Тогда
        ОбработкаПрерыванияПользователя();
        #КонецЕсли
        ЭлементРезультата = ПроцессорКомпоновкиДанных.Следующий();
        Если ЭлементРезультата = Неопределено Тогда
            Прервать;
        Иначе
            // Зафиксируем шапку
            Если Не ТаблицаЗафиксирована
                И ЭлементРезультата.ЗначенияПараметров.Количество() > 0
                И ТипЗнч(КомпоновщикНастроек.Настройки.Структура[0]) <> Тип("ДиаграммаКомпоновкиДанных") Тогда
                ТаблицаЗафиксирована = Истина;
                ДокументРезультат.ФиксацияСверху = ДокументРезультат.ВысотаТаблицы;
            КонецЕсли;
            ПроцессорВывода.ВывестиЭлемент(ЭлементРезультата);
        КонецЕсли;
    КонецЦикла;
    ПроцессорВывода.ЗакончитьВывод();
[/1с]


Список тем форума
Рекламное место пустует   Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Тема не обновлялась длительное время, и была помечена как архивная. Добавление сообщений невозможно.
Но вы можете создать новую ветку и вам обязательно ответят!
Каждый час на Волшебном форуме бывает более 2000 человек.
Рекламное место пустует