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