&НаСервере
Функция ФормыБухОтчетностиДействующиеВВыбранныйПериод(ВсеДоступныеФормы, ДатаКонцаПериода)
Результат = ВсеДоступныеФормы.СкопироватьКолонки();
Для Каждого ДоступнаяФорма Из ВсеДоступныеФормы Цикл
ДатаНачалаДействияФормы = ДоступнаяФорма.ДатаНачалоДействия;
Если ДоступнаяФорма.ДатаКонецДействия = РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа(Тип("Дата")) Тогда
ДатаКонцаДействияФормы = '20991231';
Иначе
ДатаКонцаДействияФормы = КонецДня(ДоступнаяФорма.ДатаКонецДействия);
КонецЕсли;
Если ДатаКонцаПериода <= ДатаКонцаДействияФормы
И ДатаКонцаПериода >= ДатаНачалаДействияФормы Тогда
НоваяФорма = Результат.Добавить();
ЗаполнитьЗначенияСвойств(НоваяФорма, ДоступнаяФорма);
КонецЕсли;
КонецЦикла;
Результат.Сортировать("ДатаКонецДействия Убыв");
Возврат Результат;
КонецФункции
&НаСервере
Процедура ЗапуститьНаСервере()
ИДОтчета = "РегламентированныйОтчетБухОтчетность";
ОбъектОтчета = РегламентированнаяОтчетностьВызовСервера.ОтчетОбъект(ИДОтчета);
УчетОтложенногоНалогаБалансовымМетодом = РегламентированнаяОтчетность.УчетОтложенногоНалогаБалансовымМетодом(Организация, СтандартныйПериод.ДатаОкончания);
ВсеФормыОтчета = ОбъектОтчета.ТаблицаФормОтчета(УчетОтложенногоНалогаБалансовымМетодом);
ДействующиеФормы = ФормыБухОтчетностиДействующиеВВыбранныйПериод(ВсеФормыОтчета, СтандартныйПериод.ДатаОкончания);
Если ДействующиеФормы.Количество() = 0 Тогда
Возврат;
КонецЕсли;
// Список действующих форм отсортирован по дате окончания действия.
// Заполняем отчет по самой поздней редакции, так же работает автоподстановка формы у Регламентированной отчетности.
ФормаОтчета = ДействующиеФормы[0]["ФормаОтчета"];
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", Организация);
ПараметрыОтчета.Вставить("ГруппаОрганизаций", Новый Массив);
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", СтандартныйПериод.ДатаНачала);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", СтандартныйПериод.ДатаОкончания);
ПрименениеЕНВД = РегламентированнаяОтчетностьПереопределяемый.ПлательщикЕНВД(Организация, СтандартныйПериод.ДатаОкончания);
ПараметрыОтчета.Вставить("ПрименениеЕНВД", ПрименениеЕНВД);
ДеревоНастроекСтрокРасшифровки = Новый ДеревоЗначений;
ДеревоНастроекСтрокРасшифровки.Колонки.Добавить("ИмяОбластиДопСтроки");
ПараметрыОтчета.Вставить("СоставДополнительныхСтрокБаланс", ДеревоНастроекСтрокРасшифровки.Скопировать());
ПараметрыОтчета.Вставить("СоставДополнительныхСтрокОПУ", ДеревоНастроекСтрокРасшифровки.Скопировать());
ПараметрыОтчета.Вставить("СтруктураМногострочныхЧастей", Неопределено);
ПараметрыОтчета.Вставить("ЗаполнятьБаланс", Истина); // Бухгалтерский баланс.
ПараметрыОтчета.Вставить("ЗаполнятьОФР", Истина); // Отчет о финансовых результатах.
ПараметрыОтчета.Вставить("ЗаполнятьОИК", Ложь); // Отчет об изменениях капитала.
ПараметрыОтчета.Вставить("ЗаполнятьОДДС", Ложь); // Отчет о движении денежных средств.
ПараметрыОтчета.Вставить("ЗаполнятьОЦИПС", Ложь); // Отчет о целевом использовании средств
ПараметрыОтчета.Вставить("ЗаполнятьПояснения1", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения2", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения4", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения5", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения6", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения7", Ложь);
ПараметрыОтчета.Вставить("ЗаполнятьПояснения8", Ложь);
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
ПараметрыОтчета.Вставить("АдресВоВременномХранилище", АдресВоВременномХранилище);
Если Справочники.Организации.ЭтоНекоммерческаяОрганизация(Организация) Тогда
ПрефиксАвтозаполнения = "БалансНКО";
Иначе
ПрефиксАвтозаполнения = "Баланс";
КонецЕсли;
Если СтандартныйПериод.ДатаОкончания < КонецДня(Дата('2012-01-01')) Тогда
ИдентификаторАвтозаполнения = ПрефиксАвтозаполнения;
ИначеЕсли СтандартныйПериод.ДатаОкончания < КонецДня(Дата('2012-12-01')) Тогда
ИдентификаторАвтозаполнения = СтрШаблон("%1_2012Кв1", ПрефиксАвтозаполнения);
ИначеЕсли СтандартныйПериод.ДатаОкончания < КонецДня(Дата('2019-01-01')) Тогда
ИдентификаторАвтозаполнения = СтрШаблон("%1_2012Кв4_3", ПрефиксАвтозаполнения);
Иначе
ИдентификаторАвтозаполнения = ПрефиксАвтозаполнения;
КонецЕсли;
Баланс = Новый Структура;
Баланс.Вставить("ИдентификаторАвтозаполнения", ИдентификаторАвтозаполнения);
ПараметрыОтчета.Вставить("СтруктураОтчета", Новый Структура("Баланс", Баланс));
Контейнер = Новый Структура();
Контейнер.Вставить("Баланс", Новый Структура);
Контейнер.Вставить("ОИК", Новый Структура);
Контейнер.Вставить("ОДДС", Новый Структура);
Контейнер.Вставить("ОЦИПС", Новый Структура);
Контейнер.Вставить("РасчетАктивов", Новый Структура);
Контейнер.Вставить("Пояснения1", Новый Структура);
Контейнер.Вставить("Пояснения2", Новый Структура);
Контейнер.Вставить("Пояснения3", Новый Структура);
Контейнер.Вставить("Пояснения4", Новый Структура);
Контейнер.Вставить("Пояснения5", Новый Структура);
Контейнер.Вставить("Пояснения6", Новый Структура);
Контейнер.Вставить("Пояснения7", Новый Структура);
Контейнер.Вставить("Пояснения8", Новый Структура);
Контейнер.Вставить("Пояснения9", Новый Структура);
Если ФормаОтчета = "ФормаОтчета2011Кв1"
Или ФормаОтчета = "ФормаОтчета2011Кв3"
Или ФормаОтчета = "ФормаОтчета2011Кв4" Тогда
ИмяСвойстваОФР = "ФормаОтчета";
Контейнер.Вставить(ИмяСвойстваОФР, Новый Структура);
Иначе
ИмяСвойстваОФР = "ОФР";
Контейнер.Вставить(ИмяСвойстваОФР, Новый Структура);
ОФР = Новый Структура;
ОФР.Вставить("ИмяМакета", "");
ПараметрыОтчета.СтруктураОтчета.Вставить("ОФР", ОФР);
ПараметрыОтчета.Вставить("СоставДополнительныхСтрокОФР", ДеревоНастроекСтрокРасшифровки.Скопировать());
КонецЕсли;
ПараметрыАвтозаполнения = Новый Структура;
ПараметрыАвтозаполнения.Вставить("ПараметрыОтчета", ПараметрыОтчета);
ПараметрыАвтозаполнения.Вставить("Контейнер", Контейнер);
ПараметрыАвтозаполнения.Вставить("ИмяСвойстваОФР", ИмяСвойстваОФР);
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(Неопределено, Новый УникальныйИдентификатор);
ПараметрыОтчета.АдресВоВременномХранилище = АдресВоВременномХранилище;
РегламентированнаяОтчетностьПереопределяемый.ЗаполнитьОтчет(ИДОтчета, ФормаОтчета, ПараметрыОтчета, ПараметрыАвтозаполнения.Контейнер);
ДанныеАвтозаполнения = ПолучитьИзВременногоХранилища(ПараметрыОтчета.АдресВоВременномХранилище);
ПолученнаяСтруктураБаланса = ДанныеАвтозаполнения.Контейнер.Баланс;
Для Каждого Элемент ИЗ ПолученнаяСтруктураБаланса Цикл
НС = Объект.Баланс.Добавить();
ЗаполнитьЗначенияСвойств(НС,Элемент);
КонецЦикла;
ПолученнаяСтруктураОФР = ДанныеАвтозаполнения.Контейнер[ИмяСвойстваОФР];
Для Каждого Элемент ИЗ ПолученнаяСтруктураОФР Цикл
НС = Объект.ОФР.Добавить();
ЗаполнитьЗначенияСвойств(НС,Элемент);
КонецЦикла;
ТаблицаРасшифровки = ДанныеАвтозаполнения.ТаблицаРасшифровки;
РегламентированнаяОтчетность.ПоместитьВКэш(ТаблицаРасшифровки, УникальныйИдентификатор,
АдресВременногоХранилищаРасшифровки);
Объект.ТаблицаРасшифровки.Загрузить(ДанныеАвтозаполнения.ТаблицаРасшифровки);
КонецПроцедуры
&НаКлиенте
Процедура Запустить(Команда)
ЗапуститьНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Расшифровать(ИмяПоказателя)
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", Организация);
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", СтандартныйПериод.ДатаНачала);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", СтандартныйПериод.ДатаОкончания);
ПараметрыОтчета.Вставить("АдресВременногоХранилищаРасшифровки", АдресВременногоХранилищаРасшифровки);
ИДИменПоказателей = Новый Массив();
ИДИменПоказателей.Добавить(ИмяПоказателя);
РегламентированнаяОтчетностьКлиент.ОткрытьРасшифровкуОтчета(
"РегламентированныйОтчетБухОтчетность", ФормаОтчета, ИДИменПоказателей, ПараметрыОтчета);
КонецПроцедуры
&НаКлиенте
Процедура БалансВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Расшифровать(Элемент.ТекущиеДанные.Ключ);
КонецПроцедуры
&НаКлиенте
Процедура ОФРВыбор(Элемент, ВыбраннаяСтрока, Поле, СтандартнаяОбработка)
Расшифровать(Элемент.ТекущиеДанные.Ключ);
КонецПроцедуры