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