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