ааааа, вы хотите в одном элементе? НЕТ - это не возможно! а я имел ввиду так, ниже 2 разных графика на форме и коды их формирования:
Код 1C v 8.х
Процедура ГрафикВыполнения()
//Создаем таблицу данных
ТабД = Новый ТаблицаЗначений;
ТабД.Колонки.Добавить("ДатаК");
ТабД.Колонки.Добавить("План");
ТабД.Колонки.Добавить("Факт");
кп = КонПериода;
нп = кп-(86400*3);
Пока кп>НачПериода Цикл
Состояние("График выполнения: "+ Строка(кп));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| СУММА(ЕСТЬNULL(ПланыПродаж.ПрибыльОборот, 0)) КАК ПрибыльПлан,
| ЕСТЬNULL(Продажи.ПрибыльФактРуб, 0) + ЕСТЬNULL(Продажи.ФактРубХ, 0) КАК ПрибыльФакт
|ИЗ
| (ВЫБРАТЬ
| ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, СебестоимостьПродаж.Регистратор.Контрагент.ОсновнойМенеджерПокупателя) КАК Менеджер,
| ЕСТЬNULL(ПродажиОбороты.Контрагент, СебестоимостьПродаж.Регистратор.Контрагент) КАК Контрагент,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(ПродажиОбороты.ФлагЗаявка, СебестоимостьПродаж.ФлагЗаявка)
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ПродажиОбороты.СтоимостьБезПланаКлиентаОборот, 0)
| КОНЕЦ) КАК ФактРуб,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(ПродажиОбороты.ФлагЗаявка, СебестоимостьПродаж.ФлагЗаявка)
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ПродажиОбороты.СтоимостьБезПланаКлиентаОборот, 0) - ЕСТЬNULL(СебестоимостьПродаж.СтоимостьОборот, 0) - ЕСТЬNULL(СебестоимостьПродаж.СтоимостьТУ, 0) + ЕСТЬNULL(СебестоимостьПродаж.БФДРаспределеннаяНаДругиеОтделы, 0)
| КОНЕЦ) КАК ПрибыльФактРуб,
| СУММА(ВЫБОР
| КОГДА ЕСТЬNULL(ПродажиОбороты.ФлагЗаявка, СебестоимостьПродаж.ФлагЗаявка)
| ТОГДА ЕСТЬNULL(ПродажиОбороты.СтоимостьБезПланаКлиентаОборот, 0) - ЕСТЬNULL(СебестоимостьПродаж.СтоимостьОборот, 0)
| ИНАЧЕ 0
| КОНЕЦ) КАК ФактРубХ
| ИЗ
| РегистрНакопления.Продажи.Обороты(
| &НачПериодаПлан,
| &КонПериодаПлан,
| Регистратор,
| ВЫБОР
| КОГДА &ПарамОтветственный <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА Контрагент.ОсновнойМенеджерПокупателя В ИЕРАРХИИ (&ПарамОтветственный)
| ИНАЧЕ ИСТИНА
| КОНЕЦ) КАК ПродажиОбороты
| ПОЛНОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| СУММА(СебестоимостьПродаж1.СтоимостьОборот) КАК СтоимостьОборот,
| СебестоимостьПродаж1.Номенклатура КАК Номенклатура,
| СебестоимостьПродаж1.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| СебестоимостьПродаж1.Регистратор КАК Регистратор,
| СебестоимостьПродаж1.ФлагЗаявка КАК ФлагЗаявка,
| СУММА(СебестоимостьПродаж1.СтоимостьТУ) КАК СтоимостьТУ,
| СебестоимостьПродаж1.Подразделение КАК Подразделение,
| СУММА(СебестоимостьПродаж1.БФДРаспределеннаяНаДругиеОтделы) КАК БФДРаспределеннаяНаДругиеОтделы
| ИЗ
| (ВЫБРАТЬ
| СУММА(ПродажиСебестоимость.СтоимостьОборот) КАК СтоимостьОборот,
| ПродажиСебестоимость.Номенклатура КАК Номенклатура,
| ПродажиСебестоимость.ХарактеристикаНоменклатуры КАК ХарактеристикаНоменклатуры,
| ПродажиСебестоимость.Регистратор КАК Регистратор,
| ВЫБОР
| КОГДА ПродажиСебестоимость.ДокументОприходования.Контрагент.CRM_ТипОтношений = ЗНАЧЕНИЕ(Справочник.CRM_ТипыОтношенийСКонтрагентами.Экспедитор)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ КАК ФлагЗаявка,
| 0 КАК СтоимостьТУ,
| ПродажиСебестоимость.Подразделение КАК Подразделение,
| 0 КАК БФДРаспределеннаяНаДругиеОтделы
| ИЗ
| РегистрНакопления.ПродажиСебестоимость.Обороты(&НачПериодаПлан, &КонПериодаПлан, Регистратор, ) КАК ПродажиСебестоимость
| ГДЕ
| ВЫБОР
| КОГДА &ПарамОтветственный <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА ПродажиСебестоимость.Регистратор.Контрагент.ОсновнойМенеджерПокупателя В ИЕРАРХИИ (&ПарамОтветственный)
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
| СГРУППИРОВАТЬ ПО
| ПродажиСебестоимость.Номенклатура,
| ПродажиСебестоимость.ХарактеристикаНоменклатуры,
| ПродажиСебестоимость.Регистратор,
| ПродажиСебестоимость.Подразделение,
| ВЫБОР
| КОГДА ПродажиСебестоимость.ДокументОприходования.Контрагент.CRM_ТипОтношений = ЗНАЧЕНИЕ(Справочник.CRM_ТипыОтношенийСКонтрагентами.Экспедитор)
| ТОГДА ИСТИНА
| ИНАЧЕ ЛОЖЬ
| КОНЕЦ
|
| ОБЪЕДИНИТЬ ВСЕ
|
| ВЫБРАТЬ
| 0,
| ЗНАЧЕНИЕ(справочник.номенклатура.транспортныеуслуги),
| ЗНАЧЕНИЕ(Справочник.ХарактеристикиНоменклатуры.ПустаяСсылка),
| РеализацияТоваровУслуг.Ссылка,
| ЛОЖЬ,
| ВложенныйЗапрос.Доставка.СтоимостьПрайс + ВложенныйЗапрос.Доставка.ЗатратыПриДоставке,
| РеализацияТоваровУслуг.Подразделение,
| ВложенныйЗапрос.РаспределеннаяИздержка
| ИЗ
| Документ.РеализацияТоваровУслуг КАК РеализацияТоваровУслуг
| ЛЕВОЕ СОЕДИНЕНИЕ (ВЫБРАТЬ
| ДоставкаРаспределениеИздержек.Ссылка КАК Доставка,
| СУММА(ВЫБОР
| КОГДА ДоставкаРаспределениеИздержек.Ответственный = ЗНАЧЕНИЕ(Перечисление.ВариантыРаспределенияИздержек.ОП)
| ТОГДА 0
| ИНАЧЕ ДоставкаРаспределениеИздержек.Сумма
| КОНЕЦ) КАК РаспределеннаяИздержка
| ИЗ
| Документ.Доставка.РаспределениеИздержек КАК ДоставкаРаспределениеИздержек
| ГДЕ
| ДоставкаРаспределениеИздержек.Ссылка.Проведен
| И ВЫБОР
| КОГДА &ПарамОтветственный <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА ДоставкаРаспределениеИздержек.Ссылка.Менеджер В ИЕРАРХИИ (&ПарамОтветственный)
| ИНАЧЕ ИСТИНА
| КОНЕЦ
|
| СГРУППИРОВАТЬ ПО
| ДоставкаРаспределениеИздержек.Ссылка) КАК ВложенныйЗапрос
| ПО (ВложенныйЗапрос.Доставка = РеализацияТоваровУслуг.Доставка)
| ГДЕ
| РеализацияТоваровУслуг.Проведен
| И РеализацияТоваровУслуг.Дата МЕЖДУ &НачПериодаПлан И &КонПериодаПлан
| И ВЫБОР
| КОГДА &ПарамОтветственный <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА РеализацияТоваровУслуг.Контрагент.ОсновнойМенеджерПокупателя В ИЕРАРХИИ (&ПарамОтветственный)
| ИНАЧЕ ИСТИНА
| КОНЕЦ) КАК СебестоимостьПродаж1
|
| СГРУППИРОВАТЬ ПО
| СебестоимостьПродаж1.Номенклатура,
| СебестоимостьПродаж1.ХарактеристикаНоменклатуры,
| СебестоимостьПродаж1.Регистратор,
| СебестоимостьПродаж1.ФлагЗаявка,
| СебестоимостьПродаж1.Подразделение) КАК СебестоимостьПродаж
| ПО ПродажиОбороты.Регистратор = СебестоимостьПродаж.Регистратор
| И ПродажиОбороты.Номенклатура = СебестоимостьПродаж.Номенклатура
| И ПродажиОбороты.ХарактеристикаНоменклатуры = СебестоимостьПродаж.ХарактеристикаНоменклатуры
| И ПродажиОбороты.ФлагЗаявка = СебестоимостьПродаж.ФлагЗаявка
|
| СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(ПродажиОбороты.Контрагент.ОсновнойМенеджерПокупателя, СебестоимостьПродаж.Регистратор.Контрагент.ОсновнойМенеджерПокупателя),
| ЕСТЬNULL(ПродажиОбороты.Контрагент, СебестоимостьПродаж.Регистратор.Контрагент)) КАК Продажи
| ПОЛНОЕ СОЕДИНЕНИЕ РегистрНакопления.ПланыПродаж.Обороты(
| &НачПериодаПлан,
| &КонПериодаПлан,
| Период,
| ВЫБОР
| КОГДА &ПарамОтветственный <> ЗНАЧЕНИЕ(Справочник.Пользователи.ПустаяСсылка)
| ТОГДА Менеджер В ИЕРАРХИИ (&ПарамОтветственный)
| ИНАЧЕ ИСТИНА
| КОНЕЦ) КАК ПланыПродаж
| ПО Продажи.Контрагент = ПланыПродаж.Контрагент
|
|СГРУППИРОВАТЬ ПО
| ЕСТЬNULL(Продажи.ПрибыльФактРуб, 0) + ЕСТЬNULL(Продажи.ФактРубХ, 0)
|ИТОГИ
| СУММА(ПрибыльПлан),
| СУММА(ПрибыльФакт)
|ПО
| ОБЩИЕ
|АВТОУПОРЯДОЧИВАНИЕ";
Запрос.УстановитьПараметр("КонПериодаПлан", КонецДня(кп));
Запрос.УстановитьПараметр("НачПериодаПлан", нп);
Запрос.УстановитьПараметр("ПарамОтветственный", Менеджер);
РезТЗ= Запрос.Выполнить().Выбрать();
РезТЗ.Следующий();
Нстр = ТабД.Добавить();
Нстр.ДатаК=кп;
Нстр.План = РезТЗ.ПрибыльПлан;
Нстр.Факт = РезТЗ.ПрибыльФакт;
кп = нп;
нп = кп-(86400*3);
КонецЦикла;
ДиаграммаВП = ЭлементыФормы.ДиаграммаВП;
//ДиаграммаВП.Очистить();
//Для Каждого Колонка из ТабД.Колонки Цикл
// Если ТабД.Колонки.Индекс(Колонка) <> 0 Тогда
// ДиаграммаВП.Серии.Добавить(Колонка.Имя);
// КонецЕсли;
//КонецЦикла;
//ДиаграммаВП.Серии.Добавить("План");
//ДиаграммаВП.Серии.Добавить("Факт");
ДиаграммаВП.КоличествоТочек=0;
ТабД.Сортировать("ДатаК Возр");
//Преобразуем план ищем макс знаение
МаксПлан=0; ВсегоДат = ТабД.Количество()-1;
Для Каждого СтрТраб из ТабД Цикл Попытка Если СтрТраб.план>МаксПлан тогда МаксПлан=СтрТраб.план; КонецЕсли; Исключение СтрТраб.план =0; КонецПопытки; КонецЦикла;
РезСМП = МаксПлан/?(ВсегоДат=0,1,ВсегоДат); текРезСМП=0;
Для Каждого СтрТраб из ТабД Цикл
СтрТраб.план = текРезСМП;
текРезСМП=текРезСМП+РезСМП;
КонецЦикла;
//Вывод в диаграмму
ПредФакт=0;
Для Каждого СтрТраб из ТабД Цикл
Точка=ДиаграммаВП.Точки.Добавить(Формат(СтрТраб.Получить(0),"ДФ=dd.MM"));
Индекс=0;
//Для Каждого Серия из ДиаграммаВП.Серии Цикл
Попытка
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[0],?(СтрТраб.Получить(1)=Неопределено,0,СтрТраб.Получить(1)));
ЗнчФакт = ?(СтрТраб.Получить(2)=Неопределено,0,СтрТраб.Получить(2));
Если не ЗнчФакт=0 ТОгда
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[1], ЗнчФакт);
ПредФакт=ЗнчФакт;
Иначе
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[1], ПредФакт);
КонецЕсли;
Исключение
КонецПопытки;
// Индекс=Индекс+1;
//КонецЦикла;
КонецЦикла;
КонецПроцедуры
Процедура ГрафикДебиторки()
//Создаем таблицу данных
ТабД = Новый ТаблицаЗначений;
ТабД.Колонки.Добавить("ДатаК");
ТабД.Колонки.Добавить("Всего");
ТабД.Колонки.Добавить("Просрочено");
кп = КонПериода;
нп = кп-(86400*3);
Пока кп>НачПериода Цикл
Состояние("График дебиторки: "+ Строка(кп));
Запрос = Новый Запрос;
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| РегВзаим.Менеджер КАК Менеджер,
| РегВзаим.Организация КАК Организация,
| РегВзаим.Контрагент КАК Контрагент,
| РегВзаим.СуммаДебиторки КАК СуммаДебиторки,
| РегВзаим.ОбщийДолг КАК ОбщийДолг,
| РегВзаим.ИтогоПросрочено КАК ИтогоПросрочено
|ПОМЕСТИТЬ вт
|ИЗ
| (ВЫБРАТЬ
| РегВзаим.Учет КАК Учет,
| РегВзаим.ДоговорКонтрагента.Менеджер КАК Менеджер,
| РегВзаим.Организация КАК Организация,
| РегВзаим.Контрагент КАК Контрагент,
| РегВзаим.ДоговорКонтрагента КАК ДоговорКонтрагента,
| РегВзаим.ДокументРасчетовСКонтрагентом КАК ДокументРасчетовСКонтрагентом,
| РегВзаим.ДоговорКонтрагента.ДопустимаяСуммаЗадолженности КАК СуммаДебиторки,
| РегВзаим.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности КАК ДопустимоеЧислоДней,
| РАЗНОСТЬДАТ(РегВзаим.ДокументРасчетовСКонтрагентом.Дата, &ДатаОтчета, ДЕНЬ) КАК ДнейСоДняОтгрузки,
| РегВзаим.СуммаВзаиморасчетовОстаток КАК ОбщийДолг,
| ВЫБОР
| КОГДА РАЗНОСТЬДАТ(РегВзаим.ДокументРасчетовСКонтрагентом.Дата, &ДатаОтчета, ДЕНЬ) > РегВзаим.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности
| ТОГДА ВЫБОР
| КОГДА РАЗНОСТЬДАТ(РегВзаим.ДокументРасчетовСКонтрагентом.Дата, &ДатаОтчета, ДЕНЬ) - РегВзаим.ДоговорКонтрагента.ДопустимоеЧислоДнейЗадолженности >= 0
| ТОГДА РегВзаим.СуммаВзаиморасчетовОстаток
| ИНАЧЕ 0
| КОНЕЦ
| ИНАЧЕ 0
| КОНЕЦ КАК ИтогоПросрочено
| ИЗ
| РегистрНакопления.ВзаиморасчетыСКонтрагентамиПоДокументамРасчетов.Остатки(&ДатаОтчета, {(Организация).* КАК Организация, (ДоговорКонтрагента).* КАК ДоговорКонтрагента, (Контрагент).* КАК Контрагент, (Учет).* КАК Учет}) КАК РегВзаим
| ГДЕ
| (&ДолгБолее5000 = ИСТИНА
| И РегВзаим.СуммаВзаиморасчетовОстаток > 5000
| ИЛИ &ДолгБолее5000 = ЛОЖЬ
| И РегВзаим.СуммаВзаиморасчетовОстаток > 0)
| И РегВзаим.ДоговорКонтрагента.ВидДоговора = ЗНАЧЕНИЕ(Перечисление.ВидыДоговоровКонтрагентов.СПокупателем)
| И РегВзаим.ДоговорКонтрагента.ВидВзаиморасчетов <> ЗНАЧЕНИЕ(Справочник.ВидыВзаиморасчетов.Откат)) КАК РегВзаим
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| СУММА(вт.ОбщийДолг) КАК Всего,
| СУММА(вт.ИтогоПросрочено) КАК Просрочено
|ИЗ
| вт КАК вт
|ГДЕ
| вт.Менеджер В ИЕРАРХИИ(&Менеджер)
| И вт.Организация = &Организация";
Запрос.УстановитьПараметр("ДатаОтчета", КонецДня(кп));
Запрос.УстановитьПараметр("ДолгБолее5000", Ложь);
Запрос.УстановитьПараметр("Менеджер", Менеджер);
Запрос.УстановитьПараметр("Организация", ДляОрганизации);
РезТЗ= Запрос.Выполнить().Выбрать();
РезТЗ.Следующий();
Нстр = ТабД.Добавить();
Нстр.ДатаК=кп;
Нстр.Всего = РезТЗ.Всего;
Нстр.Просрочено = РезТЗ.Просрочено;
кп = нп;
нп = кп-(86400*3);
КонецЦикла;
ДиаграммаВП = ЭлементыФормы.ДиаграммаДт;
//ДиаграммаВП.Очистить();
//Для Каждого Колонка из ТабД.Колонки Цикл
// Если ТабД.Колонки.Индекс(Колонка) <> 0 Тогда
// ДиаграммаВП.Серии.Добавить(Колонка.Имя);
// КонецЕсли;
//КонецЦикла;
//ДиаграммаВП.Серии.Добавить("План");
//ДиаграммаВП.Серии.Добавить("Факт");
ДиаграммаВП.КоличествоТочек=0;
ТабД.Сортировать("ДатаК Возр");
Для Каждого СтрТраб из ТабД Цикл
Точка=ДиаграммаВП.Точки.Добавить(Формат(СтрТраб.Получить(0),"ДФ=dd.MM"));
Индекс=0;
//Для Каждого Серия из ДиаграммаВП.Серии Цикл
Попытка
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[0],?(СтрТраб.Получить(1)=Неопределено,0,СтрТраб.Получить(1)));
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[1],ВозможноН);
//ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[2],?(СтрТраб.Получить(2)=Неопределено,0,СтрТраб.Получить(2)));
Исключение
КонецПопытки;
// Индекс=Индекс+1;
//КонецЦикла;
КонецЦикла;
//ВозможноК
Попытка
ДиаграммаВП.УстановитьЗначение(Точка,ДиаграммаВП.Серии[1],ВозможноК);
Исключение
// видимо период отчета не тот
КонецПопытки;
КонецПроцедуры