| И ВидРасчета = &Отпуск) КАК ОсновныеНачисленияБазаОсновныеНачисления
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ОсновныеНачисленияДанныеГрафика. НомерСтроки,
| ОсновныеНачисленияДанныеГрафика. ДниФактическийПериодДействия КАК ФактДни
|ПОМЕСТИТЬ ВТ_График
|ИЗ
| РегистрРасчета. ОсновныеНачисления. ДанныеГрафика(
| ВидРасчета = &Отпуск
| И Регистратор = &Ссылка) КАК ОсновныеНачисленияДанныеГрафика
|;
|
|////////////////////////////////////////////////////////////////////////////////
|ВЫБРАТЬ
| ВТ_График. НомерСтроки КАК НомерСтроки,
| ВЫБОР
| КОГДА ЕСТЬNULL(ВТ_База. НормаДниБаза, 0) = 0
| ТОГДА 0
| ИНАЧЕ ЕСТЬNULL(ВТ_База. РезультатБаза, 0) / ЕСТЬNULL(ВТ_База. НормаДниБаза, 0) * ВТ_График. ФактДни
| КОНЕЦ КАК Результат,
| ЕСТЬNULL(ВТ_База. РезультатБаза, 0) КАК Размер
|ИЗ
| ВТ_График КАК ВТ_График
| ЛЕВОЕ СОЕДИНЕНИЕ ВТ_База КАК ВТ_База
| ПО ВТ_График. НомерСтроки = ВТ_База. НомерСтроки";
Изм = Новый Массив;
Изм. Добавить("Сотрудник");
Запрос. УстановитьПараметр("Изм", Изм);
Запрос. УстановитьПараметр("Отпуск", ПланыВидовРасчета. ОсновныеНачисления. Отпуск);
Запрос. УстановитьПараметр("Ссылка", Ссылка);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();
Пока ВыборкаДетальныеЗаписи. Следующий() Цикл
Набор[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Результат = ВыборкаДетальныеЗаписи. Результат;
ТЧ[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Результат = ВыборкаДетальныеЗаписи. Результат;
Набор[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Размер = ВыборкаДетальныеЗаписи. Размер;
ТЧ[ВыборкаДетальныеЗаписи. НомерСтроки - 1].Размер = ВыборкаДетальныеЗаписи. Размер;
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
Отчет «ДиаграммаГанта»
Создаем форму отчету: добавляем реквизит ДиаграммаГанта типа ДиаграммаГанта, добавляем реквизит Период типа СтандартныйПериод и выносим реквизиты на форму.
Модуль формы:
&НаСервере
Процедура СформироватьНаСервере()
Запрос = Новый Запрос;
Запрос. Текст =
"ВЫБРАТЬ
| ОсновныеНачисленияФактическийПериодДействия. ПериодДействияНачало КАК Начало,
| ОсновныеНачисленияФактическийПериодДействия. ПериодДействияКонец КАК Конец,
| ОсновныеНачисленияФактическийПериодДействия. Сотрудник,
| ОсновныеНачисленияФактическийПериодДействия. ВидРасчета
|ИЗ
| РегистрРасчета. ОсновныеНачисления. ФактическийПериодДействия(ПериодДействия МЕЖДУ &Начало И &Конец) КАК ОсновныеНачисленияФактическийПериодДействия";
Запрос. УстановитьПараметр("Конец", Период. ДатаОкончания);
Запрос. УстановитьПараметр("Начало", Период. ДатаНачала);
РезультатЗапроса = Запрос. Выполнить();
ВыборкаДетальныеЗаписи = РезультатЗапроса. Выбрать();
ДиаграммаГанта. Обновление = Ложь;
ДиаграммаГанта. Очистить();
Пока ВыборкаДетальныеЗаписи. Следующий() Цикл
Серия = ДиаграммаГанта. УстановитьСерию(ВыборкаДетальныеЗаписи. ВидРасчета);
Точка = ДиаграммаГанта. УстановитьТочку(ВыборкаДетальныеЗаписи. Сотрудник);
Интервал = ДиаграммаГанта. ПолучитьЗначение(Точка, Серия).Добавить();
Интервал. Начало = ВыборкаДетальныеЗаписи. Начало;
Интервал. Конец = ВыборкаДетальныеЗаписи. Конец;
КонецЦикла;
ДиаграммаГанта. Обновление = Истина;
КонецПроцедуры
&НаКлиенте
Процедура Сформировать(Команда)
СформироватьНаСервере();
КонецПроцедуры
Обработка «ЗаполнениеГрафика»
Процедура ЗаполнитьГрафик(ДатаНачала, ДатаОкончания, ВыходныеДни, График ) Экспорт
Набор = РегистрыСведений. ГрафикиРаботы. СоздатьНаборЗаписей();
Набор. Отбор. График. Установить(График);
Набор. Прочитать();
ЧислоСекундВСутках = 86400;
Дат = ДатаНачала;
Для к = 0 По Набор. Количество()-1 Цикл
|
Из за большого объема этот материал размещен на нескольких страницах:
1 2 3 4 5 6 7 8 |


