Имя: Пароль:
1C
 
Не показывается макет печатной формы
0 deathogre
 
21.11.14
13:45
&НаСервере
Процедура СформироватьНаСервере()

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

    Макет = ОтчетОбъект.ПолучитьМакет("ПечатнаяФорма");
    ТабДок = Новый ТабличныйДокумент;

    СекцияДиаграмма = Макет.ПолучитьОбласть("ОблДиаграмма");
    Диаграмма = СекцияДиаграмма.Рисунки.Диаграмма.Объект;

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

    Запрос.УстановитьПараметр("НачДата", Период.ДатаНачала);
    Запрос.УстановитьПараметр("КонДата", Период.ДатаОкончания);
    Запрос.УстановитьПараметр("ОграничениеВерхнейЦены", ОграничениеВерхнейЦены);
    Запрос.УстановитьПараметр("Номенклатура", Номенклатура);
    Результат = Запрос.Выполнить();

    ВыборкаДетальныеЗаписи = Результат.Выгрузить();
    ВыборкаДетальныеЗаписи.Индексы.Добавить("Цена");

    Диаграмма.ТипДиаграммы = ТипДиаграммы.График;
    //Диаграмма = ЭлементыФормы.Диаграмма;

    // Очистить диаграмму, возможно ранее в нее уже выводились данные.
    Диаграмма.КоличествоСерий = 0;
    Диаграмма.КоличествоТочек = 0;

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

    // Запретить обновление диаграммы на время вывода данных.
    Диаграмма.Обновление = Ложь;

    // точки это значения по оси Х
    Диаграмма.КоличествоТочек = ВыборкаДетальныеЗаписи[ВыборкаДетальныеЗаписи.Количество()-1][5] / Шаг;
    //Диаграмма.Точки[0].Текст = "Количество";

    Для Индекс = 0 По Диаграмма.КоличествоТочек - 1 Цикл

        ИтогКоличество = 0;
        ВерхняяГраницаЦены = (Индекс +1) * Шаг;
        НижняяГраницаЦены = ВерхняяГраницаЦены - Шаг;
        Для Каждого Строка Из ВыборкаДетальныеЗаписи Цикл
            Если (Строка.Цена < ВерхняяГраницаЦены) И (Строка.Цена > НижняяГраницаЦены) Тогда
                ИтогКоличество = ИтогКоличество + Строка.КоличествоОборот;
            КонецЕсли;
        КонецЦикла;
        Диаграмма.Точки[Индекс].Текст = ВерхняяГраницаЦены;
        Диаграмма.УстановитьЗначение(Индекс, 0, ИтогКоличество,, ИтогКоличество);
        //Сообщить(ВерхняяГраницаЦены);
        //Сообщить(ИтогКоличество);

    КонецЦикла;

    // Обновить диаграмму.
    Диаграмма.Обновление = Истина;

    ТабДок.Вывести(СекцияДиаграмма);
    ТабДок.Показать();


КонецПроцедуры
1 deathogre
 
21.11.14
13:46
Отрабатывает без ошибок, но не выходит печатная форма с диаграммой
2 Banned
 
21.11.14
13:49
Кому ты на сервере собрался показывать таблицу?
3 deathogre
 
21.11.14
13:56
ага понятно
Компьютеры — это как велосипед. Только для нашего сознания. Стив Джобс