Процедура КнопкаСформироватьНажатие(Кнопка)
Если ЭтаФорма.Подразделение = Справочники.Подразделения.ПустаяСсылка() Тогда
Вопрос(«Для формирования отчета необходимо выбрать производственный участок!», РежимДиалогаВопрос.ОК);
Возврат;
КонецЕсли;
ТабДокумент = ЭтаФорма.ЭлементыФормы.ТД;
Макет = Отчеты.ОтчетРасчетаТарифовДок.ПолучитьМакет(«Макет»);
ТабДокумент.Очистить();
//Получение производительности
ЗапросПроизводительности = Новый Запрос();
ЗапросПроизводительности.Текст = «ВЫБРАТЬ
| ПроизводительностьПоУчасткамСрезПоследних.Номенклатура КАК Номенклатура,
| ПроизводительностьПоУчасткамСрезПоследних.ПроизводственныйУчасток КАК Подразделение,
| ПроизводительностьПоУчасткамСрезПоследних.Организация КАК Организация,
| ПроизводительностьПоУчасткамСрезПоследних.Производительность,
| ПроизводительностьПоУчасткамСрезПоследних.Период
|ИЗ
| РегистрСведений.ПроизводительностьПоУчасткам.СрезПоследних(&Период, ) КАК ПроизводительностьПоУчасткамСрезПоследних
|ГДЕ
| ПроизводительностьПоУчасткамСрезПоследних.ПроизводственныйУчасток = &Подразделение
| И ПроизводительностьПоУчасткамСрезПоследних.Организация = &Организация
|
|УПОРЯДОЧИТЬ ПО
| ПроизводственныйУчасток,
| Номенклатура,
| Организация»;
ЗапросПроизводительности.УстановитьПараметр(«Подразделение», ЭтаФорма.Подразделение);
ЗапросПроизводительности.УстановитьПараметр(«Организация», ЭтаФорма.Организация);
ЗапросПроизводительности.УстановитьПараметр(«Период», ЭтаФорма.ДатаОтчета);
ВыборкаПроизводительности = ЗапросПроизводительности.Выполнить().Выбрать();
ЗапросКатегорий = Новый Запрос();
ЗапросКатегорий.Текст = «ВЫБРАТЬ
| ДоговорнаяЗарплата.Категория КАК Категория,
| ДоговорнаяЗарплата.Сумма
|ИЗ
| РегистрСведений.ДоговорнаяЗарплата КАК ДоговорнаяЗарплата
|
|УПОРЯДОЧИТЬ ПО
| Категория»;
ВыборкаКатегорий = ЗапросКатегорий.Выполнить().Выбрать();
//Вывод шапки отчета
тШапкаОтчета = Макет.ПолучитьОбласть(«ШапкаОтчета|Данные»);
тШапкаОтчета.Параметры[«Подразделение»] = ЭтаФорма.Подразделение;
ТабДокумент.Вывести(тШапкаОтчета);
//Вывод шапки таблицы
тШапкаДанные = Макет.ПолучитьОбласть(«ШапкаТаблицы|Данные»);
ТабДокумент.Вывести(тШапкаДанные);
тШапкаКатегория = Макет.ПолучитьОбласть(«ШапкаТаблицы|Категория»);
Пока ВыборкаКатегорий.Следующий() Цикл
тШапкаКатегория.Параметры[«Категория»] = ВыборкаКатегорий.Категория;
ТабДокумент.Присоединить(тШапкаКатегория);
КонецЦикла;
//Формирование отчета
тСтрокаДанные = Макет.ПолучитьОбласть(«СтрокаТаблицы|Данные»);
тСтрокаКатегория = Макет.ПолучитьОбласть(«СтрокаТаблицы|Категория»);
Пока ВыборкаПроизводительности.Следующий() Цикл
//Вывод номенклатуры
тСтрокаДанные.Параметры[«Номенклатура»] = ВыборкаПроизводительности.Номенклатура;
ТабДокумент.Вывести(тСтрокаДанные);
//Проход по выборке категорий (для вывода тарифа по каждой категории)
ВыборкаКатегорий.Сбросить();
Пока ВыборкаКатегорий.Следующий() Цикл
тСтрокаКатегория.Параметры[«Сумма»] = Окр(ВыборкаКатегорий.Сумма / ВыборкаПроизводительности.Производительность, 2);
ТабДокумент.Присоединить(тСтрокаКатегория);
КонецЦикла;
КонецЦикла;
ТабДокумент.Показать();
КонецПроцедуры
Процедура ПриОткрытии()
Организация = УправлениеПользователями.ПолучитьЗначениеПоУмолчанию(глЗначениеПеременной(«глТекущийПользователь»), «ОсновнаяОрганизация»);
ДатаОтчета = ТекущаяДата();
КонецПроцедуры
Процедура ПодразделениеНачалоВыбораИзСписка(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
СписокПодразделений = Новый СписокЗначений;
Запрос = Новый Запрос();
Запрос.Текст =
«ВЫБРАТЬ
| Подразделения.Ссылка КАК Ссылка
|ИЗ
| Справочник.Подразделения КАК Подразделения
|ГДЕ
| Подразделения.Родитель = &Родитель
|
|УПОРЯДОЧИТЬ ПО
| Подразделения.Наименование»;
ПРУчастки = Справочники.Подразделения.НайтиПоНаименованию(«Производственные участки»);
Если ПРУчастки = неопределено Тогда
ПРУчастки = Справочники.Подразделения.ПустаяСсылка();
КонецЕсли;
Запрос.УстановитьПараметр(«Родитель»,ПРУчастки);
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Пока Выборка.Следующий() Цикл
//Сообщить(Выборка.Ссылка);
СписокПодразделений.Добавить(Выборка.Ссылка, Выборка.Ссылка.Наименование);
КонецЦикла;
ВыбранноеЗначение = ЭтаФорма.ВыбратьИзСписка(СписокПодразделений, Элемент);
Если ВыбранноеЗначение <> Неопределено Тогда
Элемент.Значение = ВыбранноеЗначение.Значение;
КонецЕсли;
КонецПроцедуры




(0), о чем вообще речь????