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