Реклама на этом месте
Форум 1С
Форум 1С
Программистам. Бухгалтерам. Администраторам. Пользователям
Задай вопрос - получи решение проблемы. Без троллинга и флуда.
06 Дек 2016, 20:56
МультиВход
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Не получили письмо с кодом активации?
 
collapse

Автор Тема: Круговая диаграмма и цветовая гамма  (Прочитано 169 раз)

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

Оффлайн boobzx

  • ***
  • Сообщений: 123
  • РЕПУТАЦИЯ: 8
  • КПД: 7%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
Добрый день! Хотел бы узнать, как 1с формирует цветовую гамму из палитры 32.

Даже не так. Что хочу получить. Есть круговая диаграмма, состоит из номенклатуры и количества. При выводе 1С знает какой кусок этой диаграммы цветом. Например: Пряник - красный, печень - желтый, конфета альфа - зеленый. и т.д.

Далее Я ниже диаграммы, вывожу табличный вариант отчета
Пряник        - 100шт
Печенье       - 100 шт
Конфета альфа - 100 шт

Мне нужно, что бы каждая строка в табличной части выводилось цветом кусочка круговой диаграммы.
Как это сделать?


Оффлайн boobzx

  • ***
  • Сообщений: 123
  • РЕПУТАЦИЯ: 8
  • КПД: 7%
  • Регистрация: 2013-03-07
  • Сайт: 
  • Профессия: Ученик 1С
Решил свою проблему. Оставлю здесь коммент как памятку.

Свой отчет полностью вывожу программно.

Сделал УФ. НА нее вынес два реквизита. Первый реквизит с типом диаграмма, второй с типом табличного поля. И Кнопку - сформировать.

В кнопке сформировать пишу код, вывожу серии и точки, и в момент их вывода запоминаю в массив цвет, который присвоила им программа.

В табличный отчет - когда вывел область. То получаю программно ячейку. И по счетчику (индексу) вывода детальной записи получаю данные из массива

#Область Диаграмма
Результат.Очистить();

Результат.КоличествоСерий = 0;
//Результат.КоличествоТочек = 0;

Результат.ВидПодписей = ВидПодписейКДиаграмме.Значение;
//Результат.ОбластьЗаголовка.Текст = "За период " + ПероидОтчета.ДатаНачала + " - " + ПероидОтчета.ДатаОкончания;

Запрос = Новый Запрос;
Запрос.Текст = "Некий запрос в БД";

Запрос.УстановитьПараметр("ДатаНачала", ПероидОтчета.ДатаНачала);
Запрос.УстановитьПараметр("ДатаОкончания", ПероидОтчета.ДатаОкончания);

РезультатЗапроса = Запрос.ВыполнитьПакет();

//  Установить единственную точку.
Результат.КоличествоТочек = 1;

//запрет обновление диаграммы на время выполнения отчета
Результат.Обновление = Ложь;
Результат.АвтоТранспонирование = Ложь;

Выборка = РезультатЗапроса[0].Выбрать();

МассивЦветов = Новый Массив;

Пока Выборка.Следующий() Цикл
Серия = Результат.УстановитьСерию(Выборка.НоменклатурнаяГруппа);
Серия.Расшифровка = Выборка.НоменклатурнаяГруппа;

Результат.УстановитьЗначение(0, Серия, Выборка.СуммаСписанияОборот);

МассивЦветов.Добавить(Серия.Цвет);
КонецЦикла;

// Обновить диаграмму.
    Результат.Обновление = Истина;
Результат.АвтоТранспонирование = Истина;
#КонецОбласти

#Область ТабличныйОтчет
РезультатОтчетаВТЧ.Очистить();

Макет = Обработки.СводкаПоСтатьям.ПолучитьМакет("Макет");

ОбластьШапкаОтчета = Макет.ПолучитьОбласть("ШапкаОтчета");
РезультатОтчетаВТЧ.Вывести(ОбластьШапкаОтчета);

ВыборкаНоменклатурнаяГруппа = РезультатЗапроса[1].Выбрать(ОбходРезультатаЗапроса.ПоГруппировкам);
Итого = 0;
Сч = 0;
Пока ВыборкаНоменклатурнаяГруппа.Следующий() Цикл

РезультатОтчетаВТЧ.НачатьАвтогруппировкуСтрок();

ОбластьТелоОтчетаНГ = Макет.ПолучитьОбласть("ТелоОтчетаНГ");
ОбластьТелоОтчетаНГ.Параметры.НоменклатурнаяГруппа = ВыборкаНоменклатурнаяГруппа.НоменклатурнаяГруппа;
ОбластьТелоОтчетаНГ.Параметры.СуммаНГ    = ВыборкаНоменклатурнаяГруппа.СуммаСписанияОборот;

РезультатОтчетаВТЧ.Вывести(ОбластьТелоОтчетаНГ, 1, "Группа1", Ложь);

РезультатОтчетаВТЧ.Область("R" + Строка(РезультатОтчетаВТЧ.ВысотаТаблицы) + "C2").ЦветФона = МассивЦветов.Получить(Сч);

Выборка = ВыборкаНоменклатурнаяГруппа.Выбрать();
Пока Выборка.Следующий() Цикл
ОбластьТелоОтчетаСтатьяЗатрат = Макет.ПолучитьОбласть("ТелоОтчетаСтатьяЗатрат");
ОбластьТелоОтчетаСтатьяЗатрат.Параметры.СтатьяЗатрат      = Выборка.СтатьяЗатрат;

РезультатОтчетаВТЧ.Вывести(ОбластьТелоОтчетаСтатьяЗатрат, 2, "Группа2", Ложь);

РезультатОтчетаВТЧ.Область("R" + Строка(РезультатОтчетаВТЧ.ВысотаТаблицы) + "C2").ЦветФона = МассивЦветов.Получить(Сч);

КонецЦикла;
Итого = Итого + ВыборкаНоменклатурнаяГруппа.СуммаСписанияОборот;

РезультатОтчетаВТЧ.ЗакончитьАвтогруппировкуСтрок();
Сч = Сч + 1;
КонецЦикла;

ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
ОбластьПодвал.Параметры.СуммаИтого = Итого;
РезультатОтчетаВТЧ.Вывести(ОбластьПодвал);
#КонецОбласти


Теги:
 


* Живое общение

Не устроил ответ?

Зарегистрируйся и задай свой вопрос. Живое общение приносит результат намного быстрее.


Зарегистрироваться

* Реклама

* Поиск

* Последние задачи на разработку (фриланс)

* Реклама

* Последние вакансии

* Топ 10 авторов за месяц

MuI_I_Ika MuI_I_Ika
77 Сообщений
cska-fanat-kz cska-fanat-kz
67 Сообщений
Kironten
42 Сообщений
alex0402
42 Сообщений
alexandr_ll
34 Сообщений
LexaK
33 Сообщений
Андрей1966
26 Сообщений
djkeysi
24 Сообщений
sertak sertak
22 Сообщений
BuhRust
20 Сообщений

* Кто онлайн

  • Точка Гостей: 254
  • Точка Скрытых: 0
  • Точка Пользователей: 9
  • Точка Сейчас на форуме:

* Облако тэгов

* Форум 1С с мобильного

* Инструменты

* Дополнительно

Поиск

 

Dellos Catering - выездной ресторан кейтеринг по всему Миру
SimplePortal 2.3.5 © 2008-2012, SimplePortal