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