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