Форум 1С
Программистам, бухгалтерам, администраторам, пользователям
Задай вопрос - получи решение проблемы
12 дек 2024, 16:39

Самописная, 1c8.2, диаграмма

Автор asdfr1, 06 мар 2012, 11:46

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

asdfr1

Необходимо построить график наполняемости, на каждый день формируется процент - НапКлиентами(Скидывается в МассивЗначений), ещё есть МассивДней. В результате по X  шкала в процентах, по Y дни месяца.

      НачМесяца = НачалоМесяца(ТекДата);
      КонМесяца = КонецМесяца(ТекДата);
       
       
МассивДней = Новый СписокЗначений;  // МассивДней - дни месяца по дням
МассивЗначений = Новый СписокЗначений; //МассивЗначений - наполняемость по дню в процентах

Пока НачМесяца <= КонМесяца Цикл
     НачМесяца = НачМесяца + 86400;
     МассивДней.Добавить(НачМесяца - 86400);
КонецЦикла;
//ОткрытьЗначение(МассивДней);

//+  Считаем на каждый день проценты
  Для Каждого СтрокаДняМесяца ИЗ МассивДней Цикл
    
    Дата1 = СтрокаДняМесяца.Значение;
    Дата = Формат(Дата1,"ДЛФ=D");
     

   Макет = Обработки.Клиенты.ПолучитьМакет("Макет1");
   ЗапросКол = Новый Запрос;
   ЗапросКол.Текст ="
|      ВЫБРАТЬ РАЗЛИЧНЫЕ
|   ВрачиПоСменам.НачалоРабочегоВремени,
|   ВрачиПоСменам.КонецРабочегоВремени,
|   ВремяПриема.Сотрудник.Наименование,
|   ВремяПриема.Дата,
|   ВремяПриема.ВремяНачала,
|   ВремяПриема.ВремяОкончания,
|   ВремяПриема.Клиент.Наименование
|ИЗ
|   РегистрСведений.ВрачиПоСменам КАК ВрачиПоСменам
|      ВНУТРЕННЕЕ СОЕДИНЕНИЕ РегистрСведений.ВремяПриема КАК ВремяПриема
|      ПО ВрачиПоСменам.Врач.Наименование = ВремяПриема.Сотрудник.Наименование,
|   Справочник.СправочникКлиенты.УслугиТаб КАК СправочникКлиентыУслугиТаб
|ГДЕ
|    ВрачиПоСменам.Период = &Дата
|   И ВремяПриема.Дата = &Дата
|
|СГРУППИРОВАТЬ ПО
   |ВрачиПоСменам.НачалоРабочегоВремени,
   |ВрачиПоСменам.КонецРабочегоВремени,
   |ВремяПриема.Сотрудник.Наименование,
   |ВремяПриема.Дата,
   |ВремяПриема.ВремяНачала,
   |ВремяПриема.ВремяОкончания,
   |ВремяПриема.Клиент.Наименование";

ЗапросКол.УстановитьПараметр("Дата",СтрокаДняМесяца.Значение);

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

 
    КоличествоКл = ТЗКол.Количество(); //+ Количество клиентов
   
    //+ Считаем проценты на однин день
    НапКлиентами1 = (КоличествоКл*100/12);
     НапКлиентами = Окр(НапКлиентами1,2); //+ Округляем полученное значение
     //- Считаем проценты на однин день


//+ Добавляем в МассивЗначений проценты по каждому дню
МассивЗначений.Добавить(НапКлиентами);
КонецЦикла;

//-  Считаем на каждый день проценты


Теги:

Похожие темы (5)

Рейтинг@Mail.ru

Поиск