#Если Сервер Или ТолстыйКлиентОбычноеПриложение Или ВнешнееСоединение Тогда
#Область ПрограммныйИнтерфейс
Процедура ПриОпределенииНастроекВерсионированияОбъектов(Настройки) Экспорт
КонецПроцедуры
#Область ДляВызоваИзДругихПодсистем
Процедура ПриЗаполненииОграниченияДоступа(Ограничение) Экспорт
Ограничение.Текст =
"РазрешитьЧтениеИзменение
|ГДЕ
| ДляВсехСтрок( ЗначениеРазрешено(ФизическиеЛица.ФизическоеЛицо, NULL КАК ИСТИНА)
| ) И ЗначениеРазрешено(Организация)";
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область СлужебныйПрограммныйИнтерфейс
#Область ОбработчикиПравилРегистрации
Процедура ПриЗаполненииНастроекОбработчиковПравилРегистрации(Настройки) Экспорт
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляОтбораПоОрганизации(Настройки);
ЗарплатаКадрыРасширенныйСинхронизацияДанных.ДляОбъектаСПрисоединеннымиФайлами(Настройки);
КонецПроцедуры
#КонецОбласти
Функция ОписаниеСоставаОбъекта() Экспорт
МетаданныеДокумента = Метаданные.Документы.РегистрацияПереработок;
Возврат ЗарплатаКадрыСоставДокументов.ОписаниеСоставаОбъектаПоМетаданнымФизическиеЛицаВТабличныхЧастях(МетаданныеДокумента);
КонецФункции
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область Печать
Процедура ДобавитьКомандыПечати(КомандыПечати) Экспорт
КомандаПечати = КомандыПечати.Добавить();
КомандаПечати.Обработчик = "УправлениеПечатьюБЗККлиент.ВыполнитьКомандуПечати";
КомандаПечати.МенеджерПечати = "Документ.РегистрацияПереработок";
КомандаПечати.Идентификатор = "ПриказНаОплатуПереработок";
КомандаПечати.Представление = НСтр("ru = 'Приказ на оплату'");
КомандаПечати.Порядок = 10;
КонецПроцедуры
Процедура Печать(МассивОбъектов, ПараметрыПечати, КоллекцияПечатныхФорм, ОбъектыПечати, ПараметрыВывода) Экспорт
Если УправлениеПечатью.НужноПечататьМакет(КоллекцияПечатныхФорм, "ПриказНаОплатуПереработок") Тогда
УправлениеПечатью.ВывестиТабличныйДокументВКоллекцию(
КоллекцияПечатныхФорм,
"ПриказНаОплатуПереработок",
("ru = 'Приказ на оплату переработок'"),
ПечатнаяФормаПриказаНаОплатуПереработок(МассивОбъектов, ОбъектыПечати), ,
"Документ.РегистрацияПереработок.ПФ_MXL_ПриказНаОплатуПереработок");
КонецЕсли;
КонецПроцедуры
Функция ПечатнаяФормаПриказаНаОплатуПереработок(МассивОбъектов, ОбъектыПечати)
ТабДокумент = Новый ТабличныйДокумент;
ТабДокумент.КлючПараметровПечати = "ПАРАМЕТРЫ_ПЕЧАТИ_ПриказОСверхурочнойРаботе";
ТабДокумент.ОриентацияСтраницы = ОриентацияСтраницы.Портрет;
Макет = УправлениеПечатью.МакетПечатнойФормы("Документ.РегистрацияПереработок.ПФ_MXL_ПриказНаОплатуПереработок");
ОбластьШапка = Макет.ПолучитьОбласть("Шапка");
ОбластьРаботник = Макет.ПолучитьОбласть("Работник");
ОбластьПодвал = Макет.ПолучитьОбласть("Подвал");
Запрос = Новый Запрос;
Запрос.МенеджерВременныхТаблиц = Новый МенеджерВременныхТаблиц;
Запрос.Текст =
"ВЫБРАТЬ
| РегистрацияПереработок.Ссылка,
| РегистрацияПереработок.Номер,
| РегистрацияПереработок.Дата,
| РегистрацияПереработок.Организация,
| РегистрацияПереработок.Руководитель,
| РегистрацияПереработок.ДолжностьРуководителя,
| РегистрацияПереработок.ПериодСуммированногоУчетаНачало,
| КОНЕЦПЕРИОДА(РегистрацияПереработок.ПериодСуммированногоУчетаОкончание, МЕСЯЦ) КАК ПериодСуммированногоУчетаОкончание,
| КОНЕЦПЕРИОДА(РегистрацияПереработок.ПериодСуммированногоУчетаОкончание, МЕСЯЦ) КАК Период,
| РегистрацияПереработокСотрудники.Сотрудник КАК Сотрудник,
| РегистрацияПереработокСотрудники.НормаЧасов,
| РегистрацияПереработокСотрудники.ОтработаноЧасов,
| РегистрацияПереработокСотрудники.ОтработаноЧасовВПраздники,
| РегистрацияПереработокСотрудники.Сверхурочно0,
| РегистрацияПереработокСотрудники.Сверхурочно1_5,
| РегистрацияПереработокСотрудники.Сверхурочно2
|ПОМЕСТИТЬ ВТПервичныеДанные
|ИЗ
| Документ.РегистрацияПереработок.Сотрудники КАК РегистрацияПереработокСотрудники
| ЛЕВОЕ СОЕДИНЕНИЕ Документ.РегистрацияПереработок КАК РегистрацияПереработок
| ПО РегистрацияПереработокСотрудники.Ссылка = РегистрацияПереработок.Ссылка
|ГДЕ
| РегистрацияПереработок.Ссылка В(&МассивОбъектов)
|;
|
|
|ВЫБРАТЬ
| ВТПервичныеДанные.Сотрудник,
| ВТПервичныеДанные.Период КАК Период
|ПОМЕСТИТЬ ВТСотрудникиПериоды
|ИЗ
| ВТПервичныеДанные КАК ВТПервичныеДанные
|;
|
|
|ВЫБРАТЬ
| ВТПервичныеДанные.Руководитель КАК ФизическоеЛицо,
| ВТПервичныеДанные.Период
|ПОМЕСТИТЬ ВТФизическиеЛицаПериоды
|ИЗ
| ВТПервичныеДанные КАК ВТПервичныеДанные";
Запрос.УстановитьПараметр("МассивОбъектов", МассивОбъектов);
Запрос.Выполнить();
ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеСотрудников(Запрос.МенеджерВременныхТаблиц, "ВТСотрудникиПериоды");
КадровыйУчет.СоздатьВТКадровыеДанныеСотрудников(ОписательВременныхТаблиц, Истина, "ФамилияИО,ИОФамилия,Должность");
ОписательВременныхТаблиц = КадровыйУчет.ОписательВременныхТаблицДляСоздатьВТКадровыеДанныеФизическихЛиц(Запрос.МенеджерВременныхТаблиц, "ВТФизическиеЛицаПериоды");
КадровыйУчет.СоздатьВТКадровыеДанныеФизическихЛиц(ОписательВременныхТаблиц, Истина, "ФизическоеЛицо,ФамилияИО,ИОФамилия");
Запрос.Текст =
"ВЫБРАТЬ
| РегистрацияПереработок.Ссылка КАК ДокументСсылка,
| РегистрацияПереработок.Номер КАК НомерДок,
| РегистрацияПереработок.Дата КАК ДатаДок,
| РегистрацияПереработок.Организация КАК НазваниеОрганизации,
| РегистрацияПереработок.Руководитель,
| РегистрацияПереработок.ДолжностьРуководителя,
| РегистрацияПереработок.ПериодСуммированногоУчетаНачало,
| РегистрацияПереработок.ПериодСуммированногоУчетаОкончание,
| РегистрацияПереработок.Сотрудник,
| РегистрацияПереработок.НормаЧасов,
| РегистрацияПереработок.ОтработаноЧасов,
| РегистрацияПереработок.ОтработаноЧасовВПраздники,
| РегистрацияПереработок.Сверхурочно0,
| РегистрацияПереработок.Сверхурочно1_5,
| РегистрацияПереработок.Сверхурочно2,
| КадровыеДанныеСотрудников.Должность КАК Должность,
| КадровыеДанныеСотрудников.ФамилияИО КАК ФамилияИО,
| КадровыеДанныеСотрудников.ИОФамилия КАК ИОФамилия,
| КадровыеДанныеФизическихЛиц.ИОФамилия КАК РуководительРасшифровкаПодписи
|ИЗ
| ВТПервичныеДанные КАК РегистрацияПереработок
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеСотрудников КАК КадровыеДанныеСотрудников
| ПО РегистрацияПереработок.Сотрудник = КадровыеДанныеСотрудников.Сотрудник
| И РегистрацияПереработок.Период = КадровыеДанныеСотрудников.Период
| ЛЕВОЕ СОЕДИНЕНИЕ ВТКадровыеДанныеФизическихЛиц КАК КадровыеДанныеФизическихЛиц
| ПО РегистрацияПереработок.Руководитель = КадровыеДанныеФизическихЛиц.ФизическоеЛицо
|
|УПОРЯДОЧИТЬ ПО
| ДокументСсылка";
РезультатЗапроса = Запрос.Выполнить();
Выборка = РезультатЗапроса.Выбрать();
Пока Выборка.СледующийПоЗначениюПоля("ДокументСсылка") Цикл
НомерСтрокиНачало = ТабДокумент.ВысотаТаблицы + 1;
ЗаполнитьЗначенияСвойств(ОбластьШапка.Параметры, Выборка);
ОбластьШапка.Параметры.НомерДок = ПрефиксацияОбъектовКлиентСервер.НомерНаПечать(Выборка.НомерДок, Истина, Истина);
ОбластьШапка.Параметры.ДатаДок = Формат(Выборка.ДатаДок, "ДЛФ=D");
ОбластьШапка.Параметры.ПериодСуммированногоУчетаНачало = Формат(Выборка.ПериодСуммированногоУчетаНачало, "ДЛФ=D");
ОбластьШапка.Параметры.ПериодСуммированногоУчетаОкончание = Формат(Выборка.ПериодСуммированногоУчетаОкончание, "ДЛФ=D");
ТабДокумент.Вывести(ОбластьШапка);
НомерСтроки = 1;
Пока Выборка.Следующий() Цикл
ЗаполнитьЗначенияСвойств(ОбластьРаботник.Параметры, Выборка);
ОбластьРаботник.Параметры.НомерСтроки = НомерСтроки;
ОбластьРаботник.Параметры.ОтработаноЧасов = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку("%1 (%2)", Выборка.ОтработаноЧасов, Выборка.ОтработаноЧасовВПраздники);
ТабДокумент.Вывести(ОбластьРаботник);
НомерСтроки = НомерСтроки + 1;
КонецЦикла;
ЗаполнитьЗначенияСвойств(ОбластьПодвал.Параметры, Выборка);
ТабДокумент.Вывести(ОбластьПодвал);
ТабДокумент.ВывестиГоризонтальныйРазделительСтраниц();
УправлениеПечатью.ЗадатьОбластьПечатиДокумента(ТабДокумент, НомерСтрокиНачало, ОбъектыПечати, Выборка.ДокументСсылка);
КонецЦикла;
Возврат ТабДокумент;
КонецФункции
#КонецОбласти
Функция ДобавитьКомандыСозданияДокументов(КомандыСозданияДокументов, ДополнительныеПараметры) Экспорт
ЗарплатаКадрыРасширенный.ДобавитьВКоллекциюКомандуСозданияДокументаПоМетаданнымДокумента(
КомандыСозданияДокументов, Метаданные.Документы.РегистрацияПереработок);
КонецФункции
#КонецОбласти
#КонецЕсли