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