Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Диаграмма на форме ОБРАБОТКИ
Украинский 1С форум: всё про 1С 8.3, 1С 8.2, 1С 8.1, 1С 8.0, 1С 7.7 > Программисту > Программирование в 1С Предприятие 8.2 > Программирование обычных форм 1С 8.2 и не интерфейсной логики
Pavlik1c
Возможно ли отображение любой диаграммы на форме обработки, а не в отчете? Хочу сделать обработку: по нажатию кнопки чтобы формировалась диаграмма, а данные брались из запроса. Код ниже не работает.

Процедура КнопкаВыполнитьНажатие(Диаграмма)
    
          //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
    
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
        |    ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура),
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
        |    ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Ссылка.Контрагент),
        |    РеализацияТоваровУслугТовары.Сумма КАК Сумма
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ИТОГИ
        |    СУММА(Сумма)
        |ПО
        |    Номенклатура,
        |    Контрагент";
    
    РезультатЗапроса = Запрос.Выполнить();
    
    Диаграмма.Обновление = Ложь;
    Диаграмма.Очистить();
    Диаграмма.АвтоТранспонирование = Ложь;
    
    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
        Серия = Диаграмма.УстановитьСерию(ВыборкаНоменклатура.Номенклатура);
        Серия.Текст = ВыборкаНоменклатура.НоменклатураПредставление;
        Серия.Расшифровка = ВыборкаНоменклатура.Номенклатура;
    
        ВыборкаКонтрагент = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
        Пока ВыборкаКонтрагент.Следующий() Цикл
            Точка = Диаграмма.УстановитьТочку(ВыборкаКонтрагент.Контрагент);
            Точка.Текст = ВыборкаКонтрагент.КонтрагентПредставление;
            Точка.Расшифровка = ВыборкаКонтрагент.Контрагент;
            Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаКонтрагент.Сумма);
        КонецЦикла;
    КонецЦикла;
    
    Диаграмма.АвтоТранспонирование = Истина;
    Диаграмма.Обновление = Истина;
    

    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

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






Petre
Pavlik1c @ Сегодня, 13:06 необходимо зарегистрироваться для просмотра ссылки,
Вместо
Процедура КнопкаВыполнитьНажатие(Диаграмма)

напишите
Процедура КнопкаВыполнитьНажатие(Кнопка)
    Диаграмма = ЭлементыФормы.Диаграмма1;

где "Диаграмма1" - имя элемента формы типа "ПолеДиаграммы".
Pavlik1c
Не сработало:


Процедура КнопкаВыполнитьНажатие(Кнопка)
    
    Диаграмма = ЭлементыФормы.Диаграмма1;
    
          //{{КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА
    // Данный фрагмент построен конструктором.
    // При повторном использовании конструктора, внесенные вручную изменения будут утеряны!!!
     Ном = Справочники.Контрагенты.НайтиПоНаименованию("Епіцентр К, ТОВ");
    Запрос = Новый Запрос;
    Запрос.Текст =
        "ВЫБРАТЬ
        |    РеализацияТоваровУслугТовары.Номенклатура КАК Номенклатура,
        |    ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Номенклатура),
        |    РеализацияТоваровУслугТовары.Ссылка.Контрагент КАК Контрагент,
        |    ПРЕДСТАВЛЕНИЕ(РеализацияТоваровУслугТовары.Ссылка.Контрагент),
        |    РеализацияТоваровУслугТовары.Сумма КАК Сумма
        |ИЗ
        |    Документ.РеализацияТоваровУслуг.Товары КАК РеализацияТоваровУслугТовары
        |ГДЕ
        |    РеализацияТоваровУслугТовары.Номенклатура = &Ном
        |ИТОГИ
        |    СУММА(Сумма)
        |ПО
        |    Номенклатура,
        |    Контрагент";
        Запрос.УстановитьПараметр("Ном",Ном);
        
    
    РезультатЗапроса = Запрос.Выполнить();
        Диаграмма.Обновление = Ложь;
    Диаграмма.Очистить();
    Диаграмма.АвтоТранспонирование = Ложь;
    
    ВыборкаНоменклатура = РезультатЗапроса.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
    Пока ВыборкаНоменклатура.Следующий() Цикл
        Серия = Диаграмма.УстановитьСерию(ВыборкаНоменклатура.Номенклатура);
        Серия.Текст = ВыборкаНоменклатура.НоменклатураПредставление;
        Серия.Расшифровка = ВыборкаНоменклатура.Номенклатура;
    
        ВыборкаКонтрагент = ВыборкаНоменклатура.Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
    
        Пока ВыборкаКонтрагент.Следующий() Цикл
            Точка = Диаграмма.УстановитьТочку(ВыборкаКонтрагент.Контрагент);
            Точка.Текст = ВыборкаКонтрагент.КонтрагентПредставление;
            Точка.Расшифровка = ВыборкаКонтрагент.Контрагент;
            Диаграмма.УстановитьЗначение(Точка, Серия, ВыборкаКонтрагент.Сумма);
        КонецЦикла;
    КонецЦикла;
    
    Диаграмма.АвтоТранспонирование = Истина;
    Диаграмма.Обновление = Истина;    
    //}}КОНСТРУКТОР_ЗАПРОСА_С_ОБРАБОТКОЙ_РЕЗУЛЬТАТА

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

Petre
Pavlik1c @ Сегодня, 14:04 необходимо зарегистрироваться для просмотра ссылки,
Что не сработало? Элемент "ПолеДиаграммы" есть на форме? Какое имеет имя?
Pavlik1c
Petre @ Сегодня, 14:11 необходимо зарегистрироваться для просмотра ссылки,
Свойство элемента формы Диаграмма: Имя: Диаграмма1;
Petre
Pavlik1c @ Сегодня, 14:13 необходимо зарегистрироваться для просмотра ссылки,
На кнопку "Выполнить" нажимали?
Pavlik1c
Petre @ Сегодня, 14:35 необходимо зарегистрироваться для просмотра ссылки,
:47067070:Много раз нажимал...
Petre
Pavlik1c @ Сегодня, 14:04 необходимо зарегистрироваться для просмотра ссылки,
Ну да, как вы думаете, существует ли номенклатура равная конрагенту "Эпицентр"?
Pavlik1c
Petre @ Сегодня, 14:39 необходимо зарегистрироваться для просмотра ссылки,
Я эту номенклатуру взял из табличной части документа "РеализацияТоваровУслуг"


Petre @ Сегодня, 14:39 необходимо зарегистрироваться для просмотра ссылки,
Запутался в 3-ех соснах)))) Перепутал справочник Контрагентов с Номенклатурой)))
Картинка появилась ))) Ура!!!!
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.