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