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