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