&НаСервере
Перем мОбъектОтчета;
&НаКлиенте
Перем ОбработкаКС Экспорт;
&НаСервере
Перем СписокРасшифровкиПоказателей;
&НаСервере
Перем СписокРасшифровкиформулы;
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьНазначениеДействияКомандФормыРеглОтчета(Команды);
КонецЕсли;
ТабличныйДокумент.Очистить();
ОбъектОтчета(ЭтаФорма.ИмяФормы).СформироватьСтруктуруРеквизитовФормы(
Параметры.мВыбраннаяФорма, СтруктураРеквизитовФормы);
СтруктураРеквизитовФормы.мЧтоОчищать = "Расчетную ведомость";
СтруктураРеквизитовФормы.мПоляПоискаПоказателяВТСП = "КодПоказателяПоСоставу, КодПоказателяПоФорме";
СоответствиеЕдиницыИзмеренияДелителю = Новый Структура;
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1", 1);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000", 1000);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000000", 1000000);
МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип("Булево"));
СтруктураРеквизитовФормы.мОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
СтруктураРеквизитовФормы.мОписаниеТиповЧислоЕ = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2));
КолИсхСтрокИдГруппы1 = 1;
КолИсхСтрокИдМСЧ_Таблица2_1 = 1;
КолИсхСтрокИдМСЧ_Таблица2_2 = 1;
КолИсхСтрокИдМСЧ_Таблица2_3 = 1;
КолКолонокИдГруппы1 = 15;
КолКолонокИдМСЧ_Таблица2_1 = 5;
КолКолонокИдМСЧ_Таблица2_2 = 5;
КолКолонокИдМСЧ_Таблица2_3 = 5;
СтруктураДанныхТитульный = Новый Структура;
СтруктураДанныхТаблица1 = Новый Структура;
СтруктураДанныхТаблица1_1 = Новый Структура;
СтруктураДанныхТаблица2 = Новый Структура;
СтруктураДанныхТаблица3_4 = Новый Структура;
СтруктураДанныхТаблица5 = Новый Структура;
мСтруктураМногострочныхРазделов = Новый Структура;
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, СтруктураРеквизитовФормы.ИдГруппы1);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
мСтруктураМногостраничныхРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, КолИсхСтрокИдГруппы1);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, КолИсхСтрокИдМСЧ_Таблица2_1);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, КолИсхСтрокИдМСЧ_Таблица2_2);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, КолИсхСтрокИдМСЧ_Таблица2_3);
мСтруктураКолвоКолонокРазделов = Новый Структура;
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, КолКолонокИдГруппы1);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, КолКолонокИдМСЧ_Таблица2_1);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, КолКолонокИдМСЧ_Таблица2_2);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, КолКолонокИдМСЧ_Таблица2_3);
ЦветЗаполняетсяТолькоВручную = Новый Цвет(255, 255, 225);
ЦветЗаполняетсяАвтоКорректир = Новый Цвет(255, 240, 200);
ЦветЗаполняетсяАвтоБезКорректир = Новый Цвет(230, 240, 220);
ЦветЗаполняетсяАвтоАрифметика = Новый Цвет(192, 220, 192);
ЦветЗаполняетсяОднозначноВручную = Новый Цвет(255, 255, 192);
ЦветЗаполняетсяАвтоматически = Новый Цвет(255, 255, 255);
мСтруктураЦветовРаскраски = Новый Структура;
мСтруктураЦветовРаскраски.Вставить("_1", ЦветЗаполняетсяТолькоВручную);
мСтруктураЦветовРаскраски.Вставить("_2", ЦветЗаполняетсяАвтоКорректир);
мСтруктураЦветовРаскраски.Вставить("_3", ЦветЗаполняетсяАвтоБезКорректир);
мСтруктураЦветовРаскраски.Вставить("_4", ЦветЗаполняетсяАвтоАрифметика);
мСтруктураЦветовРаскраски.Вставить("_0", ЦветЗаполняетсяОднозначноВручную);
мСтруктураЦветовРаскраски.Вставить("_5", ЦветЗаполняетсяАвтоматически);
мСтруктураВариантыЗаполнения = Новый Структура;
мСтруктураВариантыЗаполненияЭталон = Новый Структура;
СтруктураРеквизитовФормы.мКодОтчета = "1159999";
СтруктураРеквизитовФормы.ЕстьРеквизитКодПодчиненностиФСС
= Метаданные.Справочники.Организации.Реквизиты.Найти("КодПодчиненностиФСС") <> Неопределено;
ИмяРаздела = "Титульный";
ЭтаФормаИмя = ЭтаФорма.ИмяФормы;
ИмяМакета = Сред(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, "ФормаОтчета")) + "_" + ИмяРаздела;
Попытка
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФормаИмя).ПолучитьМакет(ИмяМакета));
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьТипОтображенияРедактируемойЯчейкиТабличногоДокумента(ТабличныйДокумент);
КонецЕсли;
Исключение
КонецПопытки;
СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяРаздела;
СтруктураРеквизитовФормы.мВыбраннаяФорма = Параметры.мВыбраннаяФорма;
СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета = Параметры.мДатаКонцаПериодаОтчета;
СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета = Параметры.мДатаНачалаПериодаОтчета;
СтруктураРеквизитовФормы.мСкопированаФорма = Параметры.мСкопированаФорма;
СтруктураРеквизитовФормы.мСохраненныйДок = Параметры.мСохраненныйДок;
СтруктураРеквизитовФормы.Организация = Параметры.Организация;
СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически = Параметры.СформироватьФормуОтчетаАвтоматически;
ДатаПодписи = ТекущаяДатаСеанса();
ПорядкиОкругленияОтчетности = Новый Структура;
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1", Перечисления.ПорядкиОкругленияОтчетности.Окр1);
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1000", Перечисления.ПорядкиОкругленияОтчетности.Окр1000);
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1000000", Перечисления.ПорядкиОкругленияОтчетности.Окр1000000);
Инициализация(Параметры.БезОткрытияФормы);
ИнициализироватьВыводСтатусовИВажныхСообщений_85();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтруктуруЗависимыхЯчеекДляАвторасчета()
СтруктураЗависимыхЯчеекДляАвторасчета = Новый Структура;
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000303", "П000010000103;П000010000203");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000304", "П000010000104;П000010000204");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000305", "П000010000105;П000010000205");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000306", "П000010000106;П000010000206");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000903", "П000010000503;П000010000603;П000010000703");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000106", "П000110000108;П000110000110;П000110000112");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000107", "П000110000109;П000110000111;П000110000113");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020002401", "П000020002101;П000020002201;П000020002301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020015401", "П000020015101;П000020015201;П000020015301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020016401", "П000020016101;П000020016201;П000020016301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020002003", "П000020002001;П000020002401;П000020002101;П000020002201;П000020002301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020012003", "П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020015003", "П000020015001;П000020015401;П000020015101;П000020015201;П000020015301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020016003", "П000020016001;П000020016401;П000020016101;П000020016201;П000020016301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020008003", "П000020001003;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020018003", "П000020012003;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020009003", "П000020018003;П000020008003;П000020001003;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020010003", "П000020009003;П000020011003;П000020018003;П000020008003;П000020001003;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020019003", "П000020008003;П000020018003;П000020001003;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000030010004", "П000030001004;П000030004004;П000030007004;П000030009004");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000040004003", "П000040001003;П000040003003");
КонецПроцедуры
&НаСервере
Процедура Инициализация(БезОткрытияФормы = Ложь) Экспорт
СтруктураРеквизитовФормы.мБезОткрытияФормы = БезОткрытияФормы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ДобавитьПризнакПериодОтчетаВходитВПервыйКвартал(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы);
ЗаполнитьСтруктуруЗависимыхЯчеекДляАвторасчета();
ЗаполнитьНачальныеНастройки();
ФормироватьСтруктуруСвойствСтраниц();
СформироватьДеревоРазделовОтчетаНаСервере();
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
Если НЕ БезОткрытияФормы Тогда
СформироватьСпискиВыбора();
КонецЕсли;
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
ЗаполнитьПустыеСтруктурыДанных();
НачальнаяПодготовкаФормы();
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
Если СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
РасчетВСтруктуре(ЭтаФорма, "Таблица1_1");
КонецЕсли;
ОбъектОтчета.УстановитьРазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
СтруктураДанныхТаблица1);
УстановитьДоступностьОбластей();
РегламентированнаяОтчетность.ДобавитьКнопкуПрисоединенныеФайлы(ЭтаФорма);
РегламентированнаяОтчетностьКлиентСервер.ПриИнициализацииФормыРегламентированногоОтчета(ЭтаФорма, "ФСС");
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗначениеТаймера = ЗначениеТаймера();
ЗаполнитьАвтоНаСервере();
ЗаписатьЗамер(ЗначениеТаймера);
КонецЕсли;
РегламентированнаяОтчетность.ПриИнициализации(ЭтотОбъект,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ИзменитьВариантыЗаполненияПоказателейТаблица1_1(Форма)
ВариантыЗаполненияТаблица1_1 = Форма.ТаблицаВариантыЗаполненияТаблица1_1[0].ТаблицаВариантовЗаполнения;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьВариантыЗаполненияПоказателейТаблицы1_1Формы4ФСС(
ВариантыЗаполненияТаблица1_1,
Форма.СтруктураРеквизитовФормы);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачальныеНастройки() Экспорт
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ТаблицаСоставПоказателей = ДанныеФормыВЗначение(мТаблицаСоставПоказателей, Тип("ТаблицаЗначений"));
ОбъектОтчета.СформироватьВариантыЗаполнения(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
мСтруктураВариантыЗаполнения,
ТаблицаСоставПоказателей);
ЗначениеВДанныеФормы(ТаблицаСоставПоказателей, мТаблицаСоставПоказателей);
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ].Добавить();
ЗначениеВДанныеФормы(ВариантЗаполнения.Значение[0],
ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ][0].ТаблицаВариантовЗаполнения);
мСтруктураВариантыЗаполнения.Вставить(ВариантЗаполнения.Ключ, ВариантЗаполнения.Ключ);
мСтруктураВариантыЗаполненияЭталон.Вставить(ВариантЗаполнения.Ключ, ВариантЗаполнения.Ключ);
КонецЦикла;
ЗначениеВДанныеФормы(ОбъектОтчета.СтруктураСтраницОтчета(СтруктураРеквизитовФормы.мВыбраннаяФорма),
ЭтаФорма["мДеревоСтраницОтчета"]);
КонецПроцедуры
&НаСервере
Процедура ФормироватьСтруктуруСвойствСтраниц() Экспорт
мСвойстваРазделовДекларации.ПолучитьЭлементы().Очистить();
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Титульный";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Ложь;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Ложь;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица1";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица1_1";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдГруппы1;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица2";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица3_4";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица5";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
КонецПроцедуры
&НаСервере
Процедура СформироватьДеревоРазделовОтчетаНаСервере() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьДеревоРазделовОтчетаНаКлиенте() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура СформироватьДеревоРазделовОтчета(Форма)
Форма["РазделыОтчета"].ПолучитьЭлементы().Очистить();
Для Каждого ЭлементДереваСтраницОтчета Из Форма["мДеревоСтраницОтчета"].ПолучитьЭлементы() Цикл
Если ЭлементДереваСтраницОтчета.ПоказатьСтраницу = 1 Тогда
ЭлементРазделовОтчета = Форма["РазделыОтчета"].ПолучитьЭлементы().Добавить();
ЭлементРазделовОтчета.КолонкаРазделыОтчета = ЭлементДереваСтраницОтчета.Представление;
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементДереваСтраницОтчета.ИмяСтраницы;
ЭлементРазделовОтчета.ИндексКартинки = 1;
ЭлементРазделовОтчета.РазделМногостраничный = Ложь;
ЭлементРазделовОтчета.РазделМногострочный = РегламентированнаяОтчетностьКлиентСервер.СвойствоОпределено(
Форма, "мТаблицаМногострочныхРазделов");
НайденноеЗначение = Неопределено;
Если Форма["мСтруктураМногостраничныхРазделов"].Свойство(
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим, НайденноеЗначение) Тогда
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = Форма[НайденноеЗначение];
ЭлементРазделовОтчета.ИндексКартинки = 0;
ЭлементРазделовОтчета.РазделМногостраничный = Истина;
Для НомерСтраницы = 1 По НайденноеЗначение.Количество() Цикл
СтраницаРазделаОтчета = ЭлементРазделовОтчета.ПолучитьЭлементы().Добавить();
СтраницаРазделаОтчета.КолонкаРазделыОтчета = "Стр. " + НомерСтраницы;
СтраницаРазделаОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим;
СтраницаРазделаОтчета.КолонкаНомерСтраницыРазделаОтчета = НомерСтраницы;
СтраницаРазделаОтчета.ИндексКартинки = 1;
СтраницаРазделаОтчета.РазделМногостраничный = ЭлементРазделовОтчета.РазделМногостраничный;
СтраницаРазделаОтчета.РазделМногострочный = ЭлементРазделовОтчета.РазделМногострочный;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СформироватьСпискиВыбора()
МакетСоставаПоказателей = ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет("СпискиВыбора2017Кв1");
КоллекцияСписковВыбора = Новый Соответствие;
Для Каждого Область Из МакетСоставаПоказателей.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда
ВерхОбласти = Область.Верх;
НизОбласти = Область.Низ;
ТаблСписка = Новый ТаблицаЗначений;
ТаблСписка.Колонки.Добавить(
"Код",,, МакетСоставаПоказателей.Область(ВерхОбласти, 1, ВерхОбласти, 1).ШиринаКолонки);
ТаблСписка.Колонки.Добавить(
"Название",,, МакетСоставаПоказателей.Область(ВерхОбласти, 2, ВерхОбласти, 2).ШиринаКолонки);
Для НомСтр = ВерхОбласти По НизОбласти Цикл
КодПоказателя = СокрП(МакетСоставаПоказателей.Область(НомСтр, 1).Текст);
Если КодПоказателя <> "###" Тогда
НовСтрока = ТаблСписка.Добавить();
НовСтрока.Код = КодПоказателя;
НовСтрока.Название = СокрП(МакетСоставаПоказателей.Область(НомСтр, 2).Текст);
КонецЕсли;
КонецЦикла;
КоллекцияСписковВыбора.Вставить(Область.Имя, ТаблСписка);
КонецЕсли;
КонецЦикла;
СвойстваПоказателей.Очистить();
РегламентированнаяОтчетность.ДобавитьСтрокуОписанияВвода(СвойстваПоказателей, "ПрПодп", 1, ,
"Выбор подписанта", КоллекцияСписковВыбора["Подписант"]);
РегламентированнаяОтчетность.ДобавитьСтрокуОписанияВвода(СвойстваПоказателей, "ПрекращениеДеятельности", 1, ,
"Прекращение деятельности", КоллекцияСписковВыбора["ПрекращениеДеятельности"]);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказатель(Элемент, Область, КодПоказателя, Знач ЭтоСумма, Знач ТекстВыбора, ТаблицаВыбора, СтандартнаяОбработка, КолонкаПоиска = "Код") Экспорт
Если ТаблицаВыбора = Неопределено ИЛИ СтруктураРеквизитовФормы.мАвтоВыборКодов Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Если Область.Имя = КодПоказателя Тогда
ИсходноеЗначение = ?(ТипЗнч(Область.Значение) = Тип("Строка"), СокрЛП(Область.Значение), Область.Значение);
Иначе
Разделитель = ?(Лев(Область.Имя, СтрДлина(КодПоказателя) + 1) = КодПоказателя + "_", "_", "");
ИндексОбласти = 1;
ИсходноеЗначение = "";
Пока ЭтаФорма[ТекущийЭлемент.Имя].Области.Найти(
КодПоказателя + Разделитель + Формат(ИндексОбласти, "ЧГ=")) <> Неопределено Цикл
ИсходноеЗначение = ИсходноеЗначение + Строка(
ЭтаФорма[ТекущийЭлемент.Имя].Области[КодПоказателя + Разделитель + Формат(ИндексОбласти, "ЧГ=")].Значение);
ИндексОбласти = ИндексОбласти + 1;
КонецЦикла;
ИсходноеЗначение = СокрЛП(ИсходноеЗначение);
КонецЕсли;
Если Область.Имя = "ПрПодп" Тогда
ПрПодписанта = ТабличныйДокумент.Области.ПрПодп.Значение;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Заголовок", ТекстВыбора);
ПараметрыФормы.Вставить("ТаблицаЗначений", ТаблицаВыбора);
ПараметрыФормы.Вставить("СтруктураДляПоиска", Новый Структура(КолонкаПоиска, ИсходноеЗначение));
ДополнительныеПараметры = Новый Структура("ИндексОбласти, КодПоказателя, КолонкаПоиска, Область, ПрПодписанта, Разделитель", ИндексОбласти, КодПоказателя, КолонкаПоиска, Область, ПрПодписанта, Разделитель);
ОписаниеОповещения = Новый ОписаниеОповещения("ВвестиПоказательЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Обработка.ОбщиеОбъектыРеглОтчетности.Форма.ФормаВыбораЗначенияИзТаблицы", ПараметрыФормы, ЭтаФорма,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказательЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
ИндексОбласти = ДополнительныеПараметры.ИндексОбласти;
КодПоказателя = ДополнительныеПараметры.КодПоказателя;
КолонкаПоиска = ДополнительныеПараметры.КолонкаПоиска;
Область = ДополнительныеПараметры.Область;
ПрПодписанта = ДополнительныеПараметры.ПрПодписанта;
Разделитель = ДополнительныеПараметры.Разделитель;
ИмяРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Если Область.Имя = КодПоказателя
ИЛИ РегламентированнаяОтчетностьКлиентСервер.ПоказательВходитВМногострочнуюЧасть(
ЭтаФорма, КодПоказателя) > 0 Тогда
Область.Значение = РезультатВыбора[КолонкаПоиска];
Иначе
СтрокаРезультатВыбора = Строка(РезультатВыбора[КолонкаПоиска]);
Для Инд = СтрДлина(СтрокаРезультатВыбора) + 1 По ИндексОбласти - 1 Цикл
СтрокаРезультатВыбора = " " + РезультатВыбора[КолонкаПоиска];
КонецЦикла;
Для Инд = 1 По ИндексОбласти - 1 Цикл
ЭтаФорма[ТекущийЭлемент.Имя].Области[КодПоказателя + Разделитель + Формат(Инд, "ЧГ=")].Значение
= СокрЛП(Сред(РезультатВыбора[КолонкаПоиска], Инд, 1));
КонецЦикла;
КонецЕсли;
Если Область.Имя = "ПрПодп" Тогда
ПрПодписантаНов = ТабличныйДокумент.Области.ПрПодп.Значение;
СменилсяПрПодписанта = ?(ПрПодписанта = ПрПодписантаНов, Ложь, Истина);
Если СменилсяПрПодписанта Тогда
Если ПрПодписантаНов = "1" Тогда
ЗаполнитьСведенияОбОрганизации();
ИначеЕсли ПрПодписантаНов = "2" ИЛИ ПрПодписантаНов = "3" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Ложь;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветЖелтый;
ТабличныйДокумент.Области.ОргПодписантФамилия.Значение = "";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, ИмяРаздела);
КонецПроцедуры
&НаСервере
Процедура НачальнаяПодготовкаФормы()
Перем ИсходноеКоличествоСтрокГруппы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мДокументВосстановлен = Ложь;
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
СтруктураРеквизитовФормы.ФлагСохранения = Ложь;
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
СтруктураРеквизитовФормы.ВидДокумента = 0;
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
НачальныеОперацииСМногострочнымиБлоками();
ОбъектОтчета.СформироватьСтруктуруДокУпПред(СтруктураРеквизитовФормы.мВыбраннаяФорма, мСтруктураДокУпПред);
Если СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено Тогда
ВосстановитьСохраненныеДанные();
ДатаПодписи = ТекущаяДатаСеанса();
Иначе
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы Тогда
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = Перечисления.ПорядкиОкругленияОтчетности.Окр1;
СтруктураРеквизитовФормы.мДелитель = 1;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = 2;
КопироватьДанныеФормы(мДеревоСтраницОтчета, мДеревоВыбранныхСтраниц);
КонецЕсли;
Модифицированность = Истина;
Иначе
ВосстановитьСохраненныеДанные();
Если ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСкопированаФорма) Тогда
СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено;
ДатаПодписи = ТекущаяДатаСеанса();
Модифицированность = Истина;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы
И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
ЗаблокироватьДанныеДляРедактирования(СтруктураРеквизитовФормы.мСохраненныйДок, , ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
КонецЕсли;
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуЗаполнить Тогда
Элементы.Заполнить.Видимость = Ложь;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуРасшифровать Тогда
Элементы.Расшифровать.Видимость = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюГруппаРасшифровать.Видимость = Ложь;
КонецЕсли;
ОбъектОтчета.ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено
Или СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация
ИЛИ СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗаполнитьДатуВЯчейкахНаСервере();
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, , Истина);
Иначе
РегламентированнаяОтчетность.ПолучитьЗначениеОКВЭД(ДатаПодписи, СтруктураРеквизитовФормы);
КонецЕсли;
Для Каждого СтрокаУровня1 Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
НазваниеСтраницы = СтрокаУровня1.ИмяСтраницы;
МногостраничностьВРазделе = СтрокаУровня1.МногостраничностьВРазделе;
Если (СтруктураРеквизитовФормы.мДокументВосстановлен) И (МногостраничностьВРазделе) Тогда
Продолжить;
КонецЕсли;
УстановитьЦветФонаЯчейкиНаСервере(,, НазваниеСтраницы);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьОбластей()
Если ТабличныйДокумент.Области.ПрПодп.Значение = "1" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Истина;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветБелый;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НачальныеОперацииСМногострочнымиБлоками()
Перем ИсходноеКоличествоСтрокГруппы;
Для Каждого ЭлементСтруктуры Из мСтруктураМногострочныхРазделов Цикл
ИмяГруппы = ЭлементСтруктуры.Ключ;
СтруктураГруппы = ЭтаФорма[ЭлементСтруктуры.Значение];
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
Для НСтр = 1 По ИсходноеКоличествоСтрокГруппы Цикл
СтруктураГруппы.Добавить();
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДатуВЯчейкахНаСервере() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДатуВЯчейкахНаКлиенте() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьДатуВЯчейках(Форма)
Форма.ТабличныйДокумент.Области.ДатаПодписи.Значение = Форма.ДатаПодписи;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОбОрганизации()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи,
Истина);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПустыеСтруктурыДанных()
СохрТабличныйДокумент = Новый ТабличныйДокумент;
СохрТабличныйДокумент.Вывести(ТабличныйДокумент);
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе
И (ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
ИначеЕсли Раздел.МногостраничностьВРазделе
И (ЭтаФорма[мСтруктураМногостраничныхРазделов[Раздел.ИмяСтраницы]][0].Данные.Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
КонецЕсли;
КонецЦикла;
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(СохрТабличныйДокумент);
КонецПроцедуры
&НаСервере
Процедура СохранитьДанныеРаздела(НаимРаздела, ОчищатьРазделЕслиЕстьМногострочность, ИзменятьАктивнуюСтраницу = Истина)
Если НаимРаздела = "Таблица1_1" Тогда
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(НаимРаздела);
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
ИначеЕсли НаимРаздела = "Таблица2" Тогда
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200161");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200162");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200163");
Иначе
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СобратьДанныеТекущегоТаблПоляНаСервере(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиенте
Функция СобратьДанныеТекущегоТаблПоляНаКлиенте(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция СобратьДанныеТекущегоТаблПоля(Форма, ИмяТабличногоПоля) Экспорт
СтруктураДанныхПоля = Новый Структура;
Для Инд = 0 По Форма[ИмяТабличногоПоля].Области.Количество() - 1 Цикл
ТекущаяОбласть = Форма[ИмяТабличногоПоля].Области[Инд];
Если Не ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Продолжить;
КонецЕсли;
Если ТекущаяОбласть.СодержитЗначение <> Истина Тогда
Продолжить;
КонецЕсли;
ИмяПоказателя = ТекущаяОбласть.Имя;
ЗначениеПоказателя = ТекущаяОбласть.Значение;
СтруктураДанныхПоля.Вставить(ИмяПоказателя, ЗначениеПоказателя);
КонецЦикла;
Возврат СтруктураДанныхПоля;
КонецФункции
&НаКлиенте
Процедура ОчиститьТабличноеПолеНаКлиенте(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
Если ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличноеПолеНаСервере(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры" , " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы" , " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего" , " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи" , "");
мСтруктураДокУпПред.Вставить("КемВыдан" , " ");
Если ВыбТабличноеПолеИмя = "Титульный" Тогда
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
КонецЕсли;
Если ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя)
РегламентированнаяОтчетностьКлиентСервер.ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя);
КонецПроцедуры
&НаСервере
Процедура ДатаПодписиПриИзмененииНаСервере()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, Истина);
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ЗаполнитьДатуВЯчейкахНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ОбновитьНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНаСервере()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи);
СтруктураДанныхТаблица1.Вставить("П000010000503",
ОбъектОтчета.РазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы));
РасчетВСтруктуре(ЭтаФорма, "Таблица1");
КонецПроцедуры
&НаКлиенте
Процедура РазделыОтчетаПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущиеДанные = Неопределено
ИЛИ Элемент.ТекущаяСтрока = СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета Тогда
Возврат;
КонецЕсли;
КМенюТД = Элементы.ТабличныйДокумент.КонтекстноеМеню;
СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета = Элемент.ТекущаяСтрока;
Если СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере Тогда
Если Элемент.ТекущиеДанные.РазделМногостраничный Тогда
Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета =
?(Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = Неопределено
ИЛИ Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = 0, 1, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
Иначе
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Истина;
КонецЕсли;
Элементы.Обновить.Доступность = ?(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Титульный", Истина, Ложь);
Если Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица1_1"
ИЛИ Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица2" Тогда
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Истина;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Истина;
Иначе
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Ложь;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Ложь;
КонецЕсли;
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТабличныйДокумент.Область(1, 1);
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетСтраницыВТабличныйДокументНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Истина);
ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета);
СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекРаздела;
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + ИмяТекРаздела));
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьТипОтображенияРедактируемойЯчейкиТабличногоДокумента(ТабличныйДокумент);
КонецЕсли;
ТекТабличноеПоле = ЭтаФорма.ТабличныйДокумент;
Если ИмяТекРаздела = "Таблица1_1" Тогда
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяТекРаздела);
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
ИначеЕсли ИмяТекРаздела = "Таблица2" Тогда
ТекТабличноеПоле = ТабличныйДокумент;
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
ИмяГруппы = "П0000200161";
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
ИмяГруппы = "П0000200162";
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
ИмяГруппы = "П0000200163";
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
Иначе
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
КонецЕсли;
Если ИмяТекРаздела = "Титульный" Тогда
УстановитьДоступностьОбластей();
УстановитьЦветФонаЯчейкиНаСервере(,, ИмяТекРаздела);
Иначе
УстановитьЦветФонаЯчейкиНаСервере(,, ИмяТекРаздела);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОтрисоватьЗначкиУдаленияСтрок(ТабДок)
МассивОбластейСДопСтроками = Новый Массив;
Для Каждого ОбластьТД Из ТабДок.Области Цикл
Если СтрЧислоВхождений(ОбластьТД.Имя, "УдалитьСтроку") > 0 Тогда
Если СтрЧислоВхождений(ОбластьТД.Имя, "_2") > 0 Тогда
МассивОбластейСДопСтроками.Добавить(Лев(ОбластьТД.Имя, 26));
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого ОбластьТД Из ТабДок.Области Цикл
Если СтрЧислоВхождений(ОбластьТД.Имя, "УдалитьСтроку") > 0 Тогда
Если МассивОбластейСДопСтроками.Найти(Лев(ОбластьТД.Имя, 26)) = Неопределено Тогда
ОбластьТД.Гиперссылка = Ложь;
ОбластьТД.Текст = "";
Иначе
ОбластьТД.Гиперссылка = Истина;
ОбластьТД.Текст = "х";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиРазделВТабличныйДокументНаКлиенте(ИмяГруппы, СтруктураГруппы, ИмяТекРаздела) Экспорт
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
КонецПроцедуры
&НаСервере
Процедура ВывестиРазделВТабличныйДокументНаСервере(ИмяГруппы, СтруктураГруппы, ИмяТекРаздела) Экспорт
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ВывестиРазделВТабличныйДокумент(Форма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела)
Перем ИсходноеКоличествоСтрокГруппы;
Форма.мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
ТекущееКоличествоСтрокГруппы = СтруктураГруппы.Количество();
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = Форма[ТекТабличноеПолеИмя];
Если ИсходноеКоличествоСтрокГруппы > ТекущееКоличествоСтрокГруппы Тогда
Для Инд = 1 По (ИсходноеКоличествоСтрокГруппы - ТекущееКоличествоСтрокГруппы) Цикл
СтруктураГруппы.Добавить();
КонецЦикла;
КонецЕсли;
Если ТекущееКоличествоСтрокГруппы > ИсходноеКоличествоСтрокГруппы Тогда
Форма.ДобавитьНеобходимоеКоличествоДопСтрокНаСервере(
ТекТабличноеПоле, ТекТабличноеПолеИмя, ИсходноеКоличествоСтрокГруппы,
ТекущееКоличествоСтрокГруппы, ИмяГруппы, СтруктураГруппы);
Форма[ТекТабличноеПолеИмя] = ТекТабличноеПоле;
КонецЕсли;
Если ИмяТекРаздела = "Таблица2" Тогда
Форма.СкорректироватьМакетТаблица2(ИмяГруппы, СтруктураГруппы.Количество());
КонецЕсли;
ВывестиЗначенияВМногострочнуюЧасть(Форма, СтруктураГруппы, ТекТабличноеПоле, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьОтчет(Команда)
Если Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
СохранитьНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиенте(Автосохранение = Ложь, ВыполняемоеОповещение=Неопределено) Экспорт
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
Если ТабличныйДокумент.Области.НомерКорректировки.Значение = "" Тогда
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
КонецЕсли;
Вариант = Число(ТабличныйДокумент.Области.НомерКорректировки.Значение);
Иначе
Вариант = Число(СтруктураДанныхТитульный.НомерКорректировки);
КонецЕсли;
Если НЕ РегламентированнаяОтчетностьКлиент.ПриЗаписиРегламентированногоОтчетаНаКлиенте(ЭтаФорма, , Автосохранение, Вариант) Тогда
Возврат;
КонецЕсли;
ПодобныйОтчетСуществует = Ложь;
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = Ложь;
Если Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
НаименованиеТекущегоРаздела = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
Иначе
НаименованиеТекущегоРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
КонецЕсли;
РезультатСохранения = ПередСохранением(, ПодобныйОтчетСуществует, Вариант, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, Автосохранение, НаименованиеТекущегоРаздела);
ВидДокументаНомерКорректировкиИзменен = Неопределено;
Если ПодобныйОтчетСуществует И Автосохранение Тогда
Возврат;
КонецЕсли;
НуженВопросПередСохранением = (ПодобныйОтчетСуществует ИЛИ ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
Если НуженВопросПередСохранением Тогда
СохранитьНаКлиентеСВопросом(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, ПодобныйОтчетСуществует);
Иначе
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиентеСВопросом(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, ПодобныйОтчетСуществует)
Если ПодобныйОтчетСуществует Тогда
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, "Сохранить");
Кнопки.Добавить(КодВозвратаДиалога.Нет, "Отмена");
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Отчет с видом %1 уже существует.
|Сохранить отчет с таким же видом?'"), ?(Вариант = 0, """Первичный""", """Корректирующий/" + Вариант + """"));
ДополнительныеПараметры = Новый Структура("Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки", Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросСохранитьОтчетСТакимЖеВидомЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , Кнопки.Получить(1).Значение);
Иначе
СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросСохранитьОтчетСТакимЖеВидомЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Автосохранение = ДополнительныеПараметры.Автосохранение;
Вариант = ДополнительныеПараметры.Вариант;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = ДополнительныеПараметры.ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки;
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки)
Если ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки Тогда
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ВидОтчета", Вариант);
ФормаВопроса = РегламентированнаяОтчетностьКлиент.ПолучитьОбщуюФормуПоИмени("ВопросПриИзмененииВидаДокументаНомераКорректировки", ПараметрыФормы);
ФормаВопроса.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ДополнительныеПараметры = Новый Структура("Автосохранение, Вариант, ВыполняемоеОповещение", Автосохранение, Вариант, ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросПриИзмененииВидаДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФормаВопроса.ОписаниеОповещенияОЗакрытии = ОписаниеОповещения;
ФормаВопроса.Открыть();
Иначе
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сохраняется %1...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Записать);
РезультатСохранения = Сохранить(Автосохранение, , Вариант, Ложь, Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПриИзмененииВидаДокументаЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт
Автосохранение = ДополнительныеПараметры.Автосохранение;
Вариант = ДополнительныеПараметры.Вариант;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если КодВозврата = КодВозвратаДиалога.Да
ИЛИ КодВозврата = КодВозвратаДиалога.Нет Тогда
ВидДокументаНомерКорректировкиИзменен = ?(КодВозврата = КодВозвратаДиалога.Да, Истина, Ложь);
Иначе
Возврат;
КонецЕсли;
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сохраняется %1...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Записать);
РезультатСохранения = Сохранить(Автосохранение, , Вариант, ВидДокументаНомерКорректировкиИзменен, Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения)
КлючУникальности = СтруктураРеквизитовФормы.мСохраненныйДок;
Если РезультатСохранения Тогда
РегламентированнаяОтчетностьКлиент.ПослеЗаписиРегламентированногоОтчета(ЭтаФорма);
Если ВыполняемоеОповещение <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПередСохранением(КодИФНС = "не применимо", ПодобныйОтчетСуществует, Вариант, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, Автосохранение, НаимТекРаздела)
Если РегламентированнаяОтчетность.БылиИзмененыКлючевыеРеквизитыОтчета(ЭтаФорма, КодИФНС)
И РегламентированнаяОтчетность.СуществуетДокументСАналогичнымиРеквизитами(ЭтаФорма, КодИФНС) Тогда
ПодобныйОтчетСуществует = Истина;
КонецЕсли;
СтруктураРеквизитовФормы.мЗаписываетсяНовыйДокумент = (СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено ИЛИ СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено);
Если Вариант <> Неопределено И ((СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено) ИЛИ (СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено) ИЛИ (Вариант <> СтруктураРеквизитовФормы.мВариант)) Тогда
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено ИЛИ СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено Тогда
ИначеЕсли Вариант <> СтруктураРеквизитовФормы.мВариант Тогда
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = Истина;
КонецЕсли;
КонецЕсли;
Если ПодобныйОтчетСуществует
ИЛИ ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки Тогда
Возврат Ложь;
КонецЕсли;
Возврат Сохранить(Автосохранение, , Вариант, , НаимТекРаздела);
КонецФункции
&НаСервере
Функция Сохранить(Автосохранение = Ложь, КодИФНС = "не применимо", Вариант,
ВидДокументаНомерКорректировкиИзменен = Неопределено, НаимТекРаздела) Экспорт
ДанныеДляРазблокирования = Неопределено;
Если НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы Тогда
ДанныеДляРазблокирования = Новый Структура("Ключ,ИдФормы",
СтруктураРеквизитовФормы.мСохраненныйДок, ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.ПолучитьОбъект();
КонецЕсли;
Если НЕ РегламентированнаяОтчетность.ПриЗаписиРегламентированногоОтчетаНаСервере(
ЭтаФорма, КодИФНС, Автосохранение, Вариант, ВидДокументаНомерКорректировкиИзменен,
СтруктураРеквизитовФормы.мСохраненныйДок) Тогда
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Возврат Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мВариант = Вариант;
СохранитьДанныеРаздела(НаимТекРаздела, Ложь);
ЗаполнитьПустыеСтруктурыДанных();
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
РазделыРеглОтчета = ОбъектОтчета.РазделыРеглОтчета(СтруктураРеквизитовФормы.мВыбраннаяФорма);
РазделыРеглОтчета.Титульный.Данные = СтруктураДанныхТитульный;
РазделыРеглОтчета.Таблица1.Данные = СтруктураДанныхТаблица1;
РазделыРеглОтчета.Таблица1_1.Данные = СтруктураДанныхТаблица1_1;
РазделыРеглОтчета.Таблица2.Данные = СтруктураДанныхТаблица2;
РазделыРеглОтчета.Таблица3_4.Данные = СтруктураДанныхТаблица3_4;
РазделыРеглОтчета.Таблица5.Данные = СтруктураДанныхТаблица5;
РазделыРеглОтчета.Таблица1_1.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица1_1.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
Для Каждого ДанныеДопСтрок Из РазделыРеглОтчета.Таблица2.ДанныеДопСтрок Цикл
РазделыРеглОтчета.Таблица2.ДанныеДопСтрок.Вставить(ДанныеДопСтрок.Ключ,
ДанныеФормыВЗначение(ЭтаФорма[ДанныеДопСтрок.Ключ], Тип("ТаблицаЗначений")));
КонецЦикла;
СтруктураВариантыЗаполнения = Новый Структура;
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
МассивВариантовЗаполненияСтраниц = Новый Массив;
Для Каждого СтрокаТаблицыВариантовЗаполнения Из ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ] Цикл
МассивВариантовЗаполненияСтраниц.Добавить(ДанныеФормыВЗначение(
СтрокаТаблицыВариантовЗаполнения.ТаблицаВариантовЗаполнения, Тип("ТаблицаЗначений")));
КонецЦикла;
СтруктураВариантыЗаполнения.Вставить(ВариантЗаполнения.Ключ, МассивВариантовЗаполненияСтраниц);
КонецЦикла;
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("ИсточникОтчета", Метаданные.Отчеты[Сред(Лев(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""),
СтрНайти(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""), ".Форма.")
- 1), 7)].Имя);
ПараметрыЗаписи.Вставить("ИмяФормыОтчета", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыЗаписи.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыЗаписи.Вставить("ДатаНачала", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыЗаписи.Вставить("ДатаОкончания", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыЗаписи.Вставить("СохраняемыйРеглОтчет", СтруктураРеквизитовФормы.мСохраненныйДок);
ПараметрыЗаписи.Вставить("ДатаПодписи", ДатаПодписи);
ПараметрыЗаписи.Вставить("ЕдиницаИзмерения", СтруктураРеквизитовФормы.ЕдиницаИзмерения);
ПараметрыЗаписи.Вставить("ТочностьЕдиницыИзмерения", СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения);
ПараметрыЗаписи.Вставить("Комментарий", Комментарий);
ПараметрыЗаписи.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыЗаписи.Вставить("СтруктураВариантыЗаполнения", СтруктураВариантыЗаполнения);
ПараметрыЗаписи.Вставить("ДокументУпПред", мСтруктураДокУпПред);
ПараметрыЗаписи.Вставить("ВерсияФормы", СтруктураРеквизитовФормы.мВерсияФормы);
ПараметрыЗаписи.Вставить("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
ПараметрыЗаписи.Вставить("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
ПараметрыЗаписи.Вставить("ФлажокОтклАвтоРасчет", СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыЗаписи.Вставить("ФлПроверятьСоотношенияПриПечатиИВыгрузки",
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
ПараметрыЗаписи.Вставить("ДеревоСтраницОтчета", РеквизитФормыВЗначение("мДеревоСтраницОтчета"));
ПараметрыЗаписи.Вставить("Вариант", СтруктураРеквизитовФормы.мВариант);
ПараметрыЗаписи.Вставить("РазделыОтчета", РазделыРеглОтчета);
ПараметрыЗаписи.Вставить("НаименованиеОтчета", СтруктураРеквизитовФормы.НаименованиеОтчета);
РегламентированнаяОтчетность.ПередЗаписьюНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
Если ОбъектОтчета.ЗаписатьДокумент(СтруктураРеквизитовФормы.мВыбраннаяФорма, ПараметрыЗаписи) = Ложь Тогда
Если НЕ Автосохранение Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПараметрыЗаписи.Ошибки[0];
Сообщение.Сообщить();
КонецЕсли;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Возврат Ложь;
КонецЕсли;
РегламентированнаяОтчетность.ПослеЗаписиНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
РегламентированнаяОтчетность.СохранитьСтатусОтправкиРеглОтчета(ЭтаФорма);
Модифицированность = Ложь;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы
И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
ЗаблокироватьДанныеДляРедактирования(СтруктураРеквизитовФормы.мСохраненныйДок, , ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
Если ДанныеДляРазблокирования <> Неопределено Тогда
РазблокироватьДанныеДляРедактирования(ДанныеДляРазблокирования.Ключ, ДанныеДляРазблокирования.ИдФормы);
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ВосстановитьСохраненныеДанные()
Перем ДанныеМногострочныхРазделов;
Перем ДанныеМногостраничныхРазделов;
Перем ДанныеВариановАвтоЗаполнения;
Перем ПоказателиОтчета;
Перем ВерсияФормы;
Перем АвторасчетОтключен;
Перем ТаблицаМногостраничногоДокумента;
Если СтруктураРеквизитовФормы.Организация <> СтруктураРеквизитовФормы.мСохраненныйДок.Организация
И СтруктураРеквизитовФормы.Организация <> РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа("СправочникСсылка.Организации")
И СтруктураРеквизитовФормы.Организация <> Неопределено Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.Организация = СтруктураРеквизитовФормы.мСохраненныйДок.Организация;
КонецЕсли;
ДатаПодписи = СтруктураРеквизитовФормы.мСохраненныйДок.ДатаПодписи;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ЕдиницаИзмерения;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ТочностьЕдиницыИзмерения;
Комментарий = СтруктураРеквизитовФормы.мСохраненныйДок.Комментарий;
СписокСохранения = СтруктураРеквизитовФормы.мСохраненныйДок.ДанныеОтчета.Получить();
ДеревоНастройкиСтраниц = СтруктураРеквизитовФормы.мСохраненныйДок.ДеревоНастройкиСтраниц.Получить();
Если НЕ ДеревоНастройкиСтраниц = Неопределено Тогда
Счетчик = 0;
Для Каждого СтрокаДерева Из ДеревоНастройкиСтраниц.Строки Цикл
ЭлементмДеревоСтраницОтчета = мДеревоСтраницОтчета.ПолучитьЭлементы().Получить(Счетчик);
Если СтрокаДерева.ИмяСтраницы = "Таблицы3_4" Тогда
СтрокаДерева.ИмяСтраницы = "Таблица3_4";
КонецЕсли;
Если СтрокаДерева.ИмяСтраницы = ЭлементмДеревоСтраницОтчета.ИмяСтраницы Тогда
Если НЕ СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление Тогда
СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
ЗначениеВРеквизитФормы(ДеревоНастройкиСтраниц.Скопировать(), "мДеревоСтраницОтчета");
КонецЕсли;
Если СписокСохранения.Свойство( "ДанныеМногострочныхРазделов", ДанныеМногострочныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногострочныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, ЭтаФорма[НайденноеЗначение])
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеМногостраничныхРазделов", ДанныеМногостраничныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногостраничныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногостраничныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = ЭтаФорма[НайденноеЗначение];
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, НайденноеЗначение);
Если НайденноеЗначение[0].Свойство("Данные") Тогда
Для Каждого СтрокаТаблЗнач Из НайденноеЗначение Цикл
Если ТипЗнч(СтрокаТаблЗнач.Данные) = Тип("СписокЗначений") Тогда
СтрокаТаблЗнач.Данные.Очистить();
СтрокаТаблЗнач.Данные.Добавить(ЭлементСтруктуры.Значение[НайденноеЗначение.Индекс(СтрокаТаблЗнач)].Данные);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если НайденноеЗначение[0].Свойство("ДанныеДопСтрок") Тогда
Ном = 0;
Для Каждого СтрокаТаблЗнач Из ЭлементСтруктуры.Значение Цикл
Если ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("Структура") Тогда
Для Каждого ЭлСтруктуры Из СтрокаТаблЗнач.ДанныеДопСтрок Цикл
ТаблЗнач = ЭлСтруктуры.Значение;
ЭлСтруктуры.Значение = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(ТаблЗнач, ЭлСтруктуры.Значение);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(ЭлСтруктуры.Значение);
КонецЦикла;
ИначеЕсли ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("ТаблицаЗначений") Тогда
СтрокаТаблЗначДанныеДопСтрок = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(СтрокаТаблЗнач.ДанныеДопСтрок, СтрокаТаблЗначДанныеДопСтрок);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(СтрокаТаблЗначДанныеДопСтрок, "ДанныеФормыКоллекцияТаблицаДопСтрокРаздела");
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеВариантовАвтоЗаполнения", ДанныеВариановАвтоЗаполнения) Тогда
Если НЕ ДанныеВариановАвтоЗаполнения = Неопределено Тогда
мСтруктураВариантыЗаполнения.Очистить();
Для Каждого ЭлементСтруктуры Из ДанныеВариановАвтоЗаполнения Цикл
НаименованиеРаздела = ЭлементСтруктуры.Ключ;
Если ЭлементСтруктуры.Ключ = "Таблицы3_4" Тогда
НаименованиеРаздела = "Таблица3_4";
КонецЕсли;
мСтруктураВариантыЗаполнения.Вставить(НаименованиеРаздела, ЭлементСтруктуры.Ключ);
ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Очистить();
Для Каждого ЭлементМассива Из ЭлементСтруктуры.Значение Цикл
ТаблВарЗаполнения = ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Добавить().ТаблицаВариантовЗаполнения;
ЗначениеВДанныеФормы(ЭлементМассива, ТаблВарЗаполнения);
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
СписокСохранения.Свойство("ФлПроверятьСоотношенияПриПечатиИВыгрузки", СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = ?(СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Неопределено, Ложь, СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СписокСохранения.Свойство("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
Если СтруктураРеквизитовФормы.мАвтоВыборКодов = Неопределено Тогда
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
КонецЕсли;
СписокСохранения.Свойство("АвторасчетОтключен", АвторасчетОтключен);
Если АвторасчетОтключен = Неопределено Тогда
СписокСохранения.Свойство("Автозаполнение", АвторасчетОтключен);
КонецЕсли;
Если НЕ АвторасчетОтключен = Неопределено Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = АвторасчетОтключен;
КонецЕсли;
СписокСохранения.Свойство("ДокументУпПред", мСтруктураДокУпПред);
Если мСтруктураДокУпПред = Неопределено Тогда
мСтруктураДокУпПред = Новый Структура;
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры", " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы", " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи", "");
мСтруктураДокУпПред.Вставить("КемВыдан", " ");
КонецЕсли;
Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
Если ВерсияФормы <> СтруктураРеквизитовФормы.мВерсияФормы Тогда
СтруктураРеквизитовФормы.ФлагСохранения = Истина;
ОбновитьПользовательскиеНастройки();
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство( "ПоказателиОтчета", ПоказателиОтчета );
СформироватьДеревоРазделовОтчетаНаСервере();
Префикс = "ПолеТабличногоДокумента";
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе Тогда
СтароеНаименованиеРаздела = Раздел.ИмяСтраницы;
Если СтароеНаименованиеРаздела = "Таблица3_4"
И НЕ ПоказателиОтчета.Свойство(Префикс + СтароеНаименованиеРаздела) Тогда
СтароеНаименованиеРаздела = "Таблицы3_4";
КонецЕсли;
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] = ПоказателиОтчета[Префикс + СтароеНаименованиеРаздела];
Для Каждого ЭлементСтруктуры Из ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] Цикл
Ключ = ПреобразованноеИмяПоказателя(ЭлементСтруктуры.Ключ);
Если НЕ ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Свойство(Ключ) Тогда
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Вставить(Ключ, ЭлементСтруктуры.Значение);
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Удалить(ЭлементСтруктуры.Ключ);
ЭтаФорма[Лев(Ключ, 11)][Число(Прав(Ключ, 1)) - 1][Лев(Ключ, 13)] = ЭлементСтруктуры.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ВосстановитьСведенияОбОрганизацииИзТитульногоЛистаСтарогоОбразца(ПоказателиОтчета);
ИмяТекРаздела = "Титульный";
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
Если ТабличныйДокумент.Области.Найти(ЭлСтруктуры.Ключ).Имя = "ДатаПодписи" Тогда
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ДатаПодписи;
Иначе
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
РегламентированнаяОтчетность.ОперацииПриВосстановленииРегламентированногоОтчета(ЭтаФорма);
СтруктураРеквизитовФормы.мДелитель = 1;
КопироватьДанныеФормы(мДеревоСтраницОтчета, мДеревоВыбранныхСтраниц);
ПривестиВСоответствиеЗначенияИзДопСтрокСтруктурамДанныхРазделов();
Модифицированность = Ложь;
СтруктураРеквизитовФормы.мДокументВосстановлен = Истина;
КонецПроцедуры
&НаСервере
Процедура ВосстановитьСведенияОбОрганизацииИзТитульногоЛистаСтарогоОбразца(ПоказателиОтчета)
ПоказателиТаблПоле = ПоказателиОтчета["ПолеТабличногоДокументаТитульный"];
Для Каждого Показатель Из ПоказателиТаблПоле Цикл
ИмяПоказателя = Показатель.Ключ;
Если ИмяПоказателя = "ОргФССКод_1" Тогда
СтруктураДанныхТитульный.Вставить("ОргФССКод");
Для Ном = 1 По 10 Цикл
СтруктураДанныхТитульный.ОргФССКод = СокрЛП(
СтруктураДанныхТитульный.ОргФССКод) + ПоказателиТаблПоле["ОргФССКод_" + Ном];
СтруктураДанныхТитульный.Удалить("ОргФССКод_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "КодПодчиненности_1" Тогда
СтруктураДанныхТитульный.Вставить("КодПодчиненности");
Для Ном = 1 По 5 Цикл
СтруктураДанныхТитульный.КодПодчиненности = СокрЛП(
СтруктураДанныхТитульный.КодПодчиненности) + ПоказателиТаблПоле["КодПодчиненности_" + Ном];
СтруктураДанныхТитульный.Удалить("КодПодчиненности_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ИНН1" Тогда
СтруктураДанныхТитульный.Вставить("ИНН");
Для Ном = 1 По 12 Цикл
СтруктураДанныхТитульный.ИНН = СокрЛП(СтруктураДанныхТитульный.ИНН) + ПоказателиТаблПоле["ИНН" + Ном];
СтруктураДанныхТитульный.Удалить("ИНН" + Ном);
КонецЦикла;
Если Лев(СтруктураДанныхТитульный.ИНН, 2) = "00" Тогда
СтруктураДанныхТитульный.ИНН = Сред(СтруктураДанныхТитульный.ИНН, 3);
КонецЕсли;
ИначеЕсли ИмяПоказателя = "КПП1" Тогда
СтруктураДанныхТитульный.Вставить("КПП");
Для Ном = 1 По 9 Цикл
СтруктураДанныхТитульный.КПП = СокрЛП(СтруктураДанныхТитульный.КПП) + ПоказателиТаблПоле["КПП" + Ном];
СтруктураДанныхТитульный.Удалить("КПП" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОГРН1" Тогда
СтруктураДанныхТитульный.Вставить("ОГРН");
Для Ном = 1 По 15 Цикл
СтруктураДанныхТитульный.ОГРН = СокрЛП(СтруктураДанныхТитульный.ОГРН) + ПоказателиТаблПоле["ОГРН" + Ном];
СтруктураДанныхТитульный.Удалить("ОГРН" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ТелОрганизации1" Тогда
СтруктураДанныхТитульный.Вставить("ТелОрганизации");
Для Ном = 1 По 15 Цикл
СтруктураДанныхТитульный.ТелОрганизации = СокрЛП(
СтруктураДанныхТитульный.ТелОрганизации) + ПоказателиТаблПоле["ТелОрганизации" + Ном];
СтруктураДанныхТитульный.Удалить("ТелОрганизации" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОКВЭД1" Тогда
СтруктураДанныхТитульный.Вставить("ОКВЭД");
Для Ном = 1 По 8 Цикл
Если ПоказателиТаблПоле.Свойство("ОКВЭД" + Ном) Тогда
СтруктураДанныхТитульный.ОКВЭД = СокрЛП(СтруктураДанныхТитульный.ОКВЭД) + ПоказателиТаблПоле["ОКВЭД" + Ном];
СтруктураДанныхТитульный.Удалить("ОКВЭД" + Ном);
КонецЕсли;
КонецЦикла;
СтруктураДанныхТитульный.ОКВЭД = СокрЛП(СтруктураДанныхТитульный.ОКВЭД);
Если СтрДлина(СтруктураДанныхТитульный.ОКВЭД) > 4 Тогда
СтруктураДанныхТитульный.ОКВЭД = Лев(СтруктураДанныхТитульный.ОКВЭД, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 3, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 5);
ИначеЕсли СтрДлина(СтруктураДанныхТитульный.ОКВЭД) > 2 Тогда
СтруктураДанныхТитульный.ОКВЭД = Лев(СтруктураДанныхТитульный.ОКВЭД, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 3);
КонецЕсли;
ИначеЕсли ИмяПоказателя = "НомерКорректировки1" Тогда
СтруктураДанныхТитульный.Вставить("НомерКорректировки");
Для Ном = 1 По 3 Цикл
СтруктураДанныхТитульный.НомерКорректировки = СокрЛП(
СтруктураДанныхТитульный.НомерКорректировки) + ПоказателиТаблПоле["НомерКорректировки" + Ном];
СтруктураДанныхТитульный.Удалить("НомерКорректировки" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "Период_1" Тогда
СтруктураДанныхТитульный.Вставить("Период");
Для Ном = 1 По 2 Цикл
СтруктураДанныхТитульный.Период = СокрЛП(
СтруктураДанныхТитульный.Период) + ПоказателиТаблПоле["Период_" + Ном];
СтруктураДанныхТитульный.Удалить("Период_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "НомДопРасчета_1" Тогда
СтруктураДанныхТитульный.Вставить("НомДопРасчета");
Для Ном = 1 По 2 Цикл
СтруктураДанныхТитульный.НомДопРасчета = СокрЛП(
СтруктураДанныхТитульный.НомДопРасчета) + ПоказателиТаблПоле["НомДопРасчета_" + Ном];
СтруктураДанныхТитульный.Удалить("НомДопРасчета_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОтчетГод1" Тогда
СтруктураДанныхТитульный.Вставить("ОтчетГод");
Для Ном = 1 По 4 Цикл
СтруктураДанныхТитульный.ОтчетГод = СокрЛП(
СтруктураДанныхТитульный.ОтчетГод) + ПоказателиТаблПоле["ОтчетГод" + Ном];
СтруктураДанныхТитульный.Удалить("ОтчетГод" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислРаботников_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислРаботников");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислРаботников = СокрЛП(
СтруктураДанныхТитульный.ЧислРаботников) + ПоказателиТаблПоле["ЧислРаботников_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислРаботников_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислИнвалидов_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислИнвалидов");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислИнвалидов = СокрЛП(
СтруктураДанныхТитульный.ЧислИнвалидов) + ПоказателиТаблПоле["ЧислИнвалидов_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислИнвалидов_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислВред_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислВред");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислВред = СокрЛП(
СтруктураДанныхТитульный.ЧислВред) + ПоказателиТаблПоле["ЧислВред_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислВред_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "СПриложением1" Тогда
СтруктураДанныхТитульный.Вставить("СПриложением");
Для Ном = 1 По 3 Цикл
СтруктураДанныхТитульный.СПриложением = СокрЛП(
СтруктураДанныхТитульный.СПриложением) + ПоказателиТаблПоле["СПриложением" + Ном];
СтруктураДанныхТитульный.Удалить("СПриложением" + Ном);
КонецЦикла;
КонецЕсли;
КонецЦикла;
ЗаполнитьДатуВЯчейкахНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПривестиВСоответствиеЗначенияИзДопСтрокСтруктурамДанныхРазделов()
СохранитьОтчет = Ложь;
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица1_1, П0001100001) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица1_1, П0001100001);
СохранитьОтчет = Истина;
КонецЕсли;
МассивДанныхДопСтрок = Новый Массив;
МассивДанныхДопСтрок.Добавить(П0000200161);
МассивДанныхДопСтрок.Добавить(П0000200162);
МассивДанныхДопСтрок.Добавить(П0000200163);
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица2, МассивДанныхДопСтрок) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица2, МассивДанныхДопСтрок);
СохранитьОтчет = Истина;
КонецЕсли;
Если СохранитьОтчет Тогда
Сохранить( , , СтруктураРеквизитовФормы.ВидДокумента * НомерКорректировки, , "Титульный");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиенте
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаКлиенте(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста = Неопределено, ТекущаяСтраница = Неопределено, ИдГрупп, ТекущаяОбласть = Неопределено)
Перем ИмяГруппы;
Если ИмяЛиста = Неопределено Тогда
ИмяТекущейСтраницыПанели = ТекущаяСтраница.Имя;
Иначе
ИмяТекущейСтраницыПанели = ИмяЛиста;
КонецЕсли;
Если ИмяТекущейСтраницыПанели = "Таблица2" Тогда
Если ТекущаяОбласть = "П0000200161" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_1;
ИначеЕсли ТекущаяОбласть = "П0000200162" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_2;
ИначеЕсли ТекущаяОбласть = "П0000200163" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_3;
Иначе
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_1;
КонецЕсли;
ИначеЕсли ИмяТекущейСтраницыПанели = "Таблица1_1" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы1;
КонецЕсли;
Возврат ИмяГруппы;
КонецФункции
&НаСервере
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаСервере(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиенте
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаКлиенте(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп) Экспорт
Перем ТекТабличноеПоле;
Если ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_1
ИЛИ ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_2
ИЛИ ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_3 Тогда
ТекТабличноеПоле = "Таблица2";
ИначеЕсли ИдГруппы = ИдГрупп.ИдГруппы1 Тогда
ТекТабличноеПоле = "Таблица1_1";
КонецЕсли;
Возврат ТекТабличноеПоле;
КонецФункции
&НаСервере
Процедура ОбновитьСтруктуруМногострочногоРазделаНаСервере(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСтруктуруМногострочногоРазделаНаКлиенте(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьСтруктуруМногострочногоРаздела(Форма, ИмяГруппы)
Перем СтруктураГруппы;
Форма.мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = Форма[СтруктураГруппы];
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = Форма[ТекТабличноеПолеИмя];
Для НСтр = 1 По СтруктураГруппы.Количество() Цикл
ТекСтрокаТаблицы = СтруктураГруппы[НСтр - 1];
НСтрСтр = Формат(НСтр, "ЧГ=");
НачНомер = 1;
Для НомерГрафы = НачНомер По Форма.мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
ИмяКолонки = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(ИмяКолонки) Тогда
ИмяЯчейки = ИмяКолонки + "_" + НСтрСтр;
ОбластьЯчейки = ТекТабличноеПоле.Области[ИмяЯчейки];
Если ОбластьЯчейки.СодержитЗначение = Истина Тогда
ЗначениеЯчейки = ОбластьЯчейки.Значение;
Иначе
ЗначениеЯчейки = ОбластьЯчейки.Текст;
КонецЕсли;
ТекСтрокаТаблицы[ИмяКолонки] = ЗначениеЯчейки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьПользовательскиеНастройки()
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Изменилась версия формы отчета.%1Выполняется обновление пользовательских настроек.'"), Символы.ПС);
Сообщение.Сообщить();
ЕстьИзмененияВариантыЗаполнения = ОбновитьВариантыЗаполнения();
ЕстьИзмененияНастройкаСтраниц = ОбновитьНастройкиСтраниц();
Если ЕстьИзмененияВариантыЗаполнения ИЛИ ЕстьИзмененияНастройкаСтраниц Тогда
Модифицированность = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Обновление пользовательских настроек успешно завершено.'");
Сообщение.Сообщить();
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Изменения в структуре пользовательских настроек не обнаружены.'");
Сообщение.Сообщить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОбновитьВариантыЗаполнения()
Перем МассивВариантовЗаполненияСтраниц;
ЕстьИзменения = Ложь;
МакетСоставаПоказателей = ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(СтруктураРеквизитовФормы.мСоставПоказателей);
ОписаниеТиповСтрока15 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(15));
ОписаниеТиповСтрока100 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100));
ОписаниеТиповСтрока50 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50));
ОписаниеТиповЧисло1 = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1));
ОписаниеТиповЧисло15 = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(15, 2));
Для Инд = 0 По МакетСоставаПоказателей.Области.Количество() - 1 Цикл
ТекОбласть = МакетСоставаПоказателей.Области[Инд];
ИмяСтраницы = ТекОбласть.Имя;
ТаблицаВариантыЗаполнения = Новый ТаблицаЗначений;
ТаблицаВариантыЗаполнения.Колонки.Добавить("КодПоказателя", ОписаниеТиповСтрока15);
ТаблицаВариантыЗаполнения.Колонки.Добавить("ВариантЗаполнения", ОписаниеТиповЧисло1);
ТаблицаВариантыЗаполнения.Колонки.Добавить("ЗначениеАвто", ОписаниеТиповЧисло15);
ТаблицаВариантыЗаполнения.Колонки.Добавить("Дельта", ОписаниеТиповЧисло15);
ТаблицаВариантыЗаполнения.Колонки.Добавить("Комментарий", ОписаниеТиповСтрока100);
ТаблицаВариантыЗаполнения.Колонки.Добавить("КодПоказателяПоСтруктуре", ОписаниеТиповСтрока50);
Для Ном = ТекОбласть.Верх По ТекОбласть.Низ Цикл
КодПоказателя = СокрП(МакетСоставаПоказателей.Область(Ном, 1).Текст);
ИмяПоказателя = КодПоказателя;
Если КодПоказателя = "===" Тогда
Прервать;
КонецЕсли;
Если Лев(КодПоказателя, 2) = "//" Тогда
Продолжить;
КонецЕсли;
КодПоказателяПоФорме = СокрЛП(МакетСоставаПоказателей.Область(Ном, 2).Текст);
стрВариантЗаполнения = РегламентированнаяОтчетность.ПолучитьВариантЗаполненияПоказателяРегОтчета(МакетСоставаПоказателей, Ном);
чВариантЗаполнения = ? (ПустаяСтрока(стрВариантЗаполнения), 0, Число(стрВариантЗаполнения));
Если чВариантЗаполнения <> 0 Тогда
НоваяСтрока = ТаблицаВариантыЗаполнения.Добавить();
НоваяСтрока.КодПоказателя = ? (Не ПустаяСтрока(КодПоказателяПоФорме), КодПоказателяПоФорме, КодПоказателя);
НоваяСтрока.ВариантЗаполнения = чВариантЗаполнения;
КонецЕсли;
КонецЦикла;
Если Не мСтруктураВариантыЗаполнения.Свойство(ИмяСтраницы, МассивВариантовЗаполненияСтраниц) Тогда
МассивВариантовЗаполненияСтраниц = ЭтаФорма["ТаблицаВариантыЗаполнения" + ИмяСтраницы];
Если ТаблицаВариантыЗаполнения.Количество() > 0 Тогда
МассивВариантовЗаполненияСтраниц.Очистить();
МассивВариантовЗаполненияСтраниц.Добавить(ТаблицаВариантыЗаполнения);
мСтруктураВариантыЗаполнения.Вставить(ИмяСтраницы, ИмяСтраницы);
ЕстьИзменения = Истина;
КонецЕсли;
Иначе
МассивВариантовЗаполненияСтраниц = ЭтаФорма["ТаблицаВариантыЗаполнения" + ИмяСтраницы];
Если ТаблицаВариантыЗаполнения.Количество() = 0 Тогда
мСтруктураВариантыЗаполнения.Удалить(ИмяСтраницы);
ЕстьИзменения = Истина;
Иначе
Для каждого ЭлементМассива Из МассивВариантовЗаполненияСтраниц Цикл
ЭлементМассива = ЭлементМассива.ТаблицаВариантовЗаполнения;
Для каждого СтрокаТаблицы Из ТаблицаВариантыЗаполнения Цикл
КодПоказателя = СтрокаТаблицы.КодПоказателя;
ВариантЗаполнения = СтрокаТаблицы.ВариантЗаполнения;
Если ЭлементМассива.НайтиСтроки(Новый Структура("КодПоказателя", КодПоказателя)).Количество() = 0 Тогда
НоваяСтрока = ЭлементМассива.Добавить();
НоваяСтрока.КодПоказателя = КодПоказателя;
НоваяСтрока.ВариантЗаполнения = ВариантЗаполнения;
ЕстьИзменения = Истина;
КонецЕсли;
КонецЦикла;
ТаблДляЦикла = ЭлементМассива.Выгрузить();
Для каждого СтрокаТаблицы Из ТаблДляЦикла Цикл
КодПоказателя = СтрокаТаблицы.КодПоказателя;
Если ТаблицаВариантыЗаполнения.Найти(КодПоказателя, "КодПоказателя") = Неопределено Тогда
СтрокиВЭлементеМассива = ЭлементМассива.НайтиСтроки(Новый Структура("КодПоказателя", КодПоказателя));
Если СтрокиВЭлементеМассива.Количество() > 0 Тогда
ЭлементМассива.Удалить(СтрокиВЭлементеМассива[0]);
ЕстьИзменения = Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат ЕстьИзменения;
КонецФункции
&НаСервере
Функция ОбновитьНастройкиСтраниц()
ЕстьИзменения = Ложь;
мПользовательскиеНастройкиСтраниц = РеквизитФормыВЗначение("мДеревоСтраницОтчета").Скопировать();
ЗначениеВДанныеФормы(ОбъектОтчета(ЭтаФорма.ИмяФормы).СтруктураСтраницОтчета(
СтруктураРеквизитовФормы.мВыбраннаяФорма), ЭтаФорма["мДеревоСтраницОтчета"]);
Для каждого ИсхКолонка Из РеквизитФормыВЗначение("мДеревоСтраницОтчета").Колонки Цикл
Если мПользовательскиеНастройкиСтраниц.Колонки.Найти(ИсхКолонка.Имя) = Неопределено Тогда
мПользовательскиеНастройкиСтраниц.Колонки.Добавить(
ИсхКолонка.Имя, ИсхКолонка.ТипЗначения, ИсхКолонка.Заголовок, ИсхКолонка.Ширина);
мПользовательскиеНастройкиСтраниц.ЗагрузитьКолонку(
РеквизитФормыВЗначение("мДеревоСтраницОтчета").ВыгрузитьКолонку(ИсхКолонка.Имя), ИсхКолонка.Имя);
ЕстьИзменения = Истина;
КонецЕсли;
КонецЦикла;
Для каждого ТекКолонка Из мПользовательскиеНастройкиСтраниц.Колонки Цикл
Если РеквизитФормыВЗначение("мДеревоСтраницОтчета").Колонки.Найти(ТекКолонка.Имя) = Неопределено Тогда
мПользовательскиеНастройкиСтраниц.Колонки.Удалить(мПользовательскиеНастройкиСтраниц.Колонки.Индекс(ТекКолонка));
ЕстьИзменения = Истина;
КонецЕсли;
КонецЦикла;
Если мДеревоСтраницОтчета.ПолучитьЭлементы().Количество() <> мПользовательскиеНастройкиСтраниц.Строки.Количество() Тогда
КолвоКолонок = РеквизитФормыВЗначение("мДеревоСтраницОтчета").Колонки.Количество();
Для каждого Строка Из мДеревоСтраницОтчета.ПолучитьЭлементы() Цикл
Если мПользовательскиеНастройкиСтраниц.Найти(Строка.ИмяСтраницы, "ИмяСтраницы") = Неопределено Тогда
НоваяСтрока = мПользовательскиеНастройкиСтраниц.Строки.Добавить();
Для НомКолонки = 0 По (КолвоКолонок - 1) Цикл
НоваяСтрока[НомКолонки] = Строка[НомКолонки];
КонецЦикла;
КонецЕсли;
Если Строка.Строки.Количество() > 0 Тогда
Для каждого Строка2 Из Строка.Строки Цикл
Если мПользовательскиеНастройкиСтраниц.Найти(Строка2.ИмяСтраницы, "ИмяСтраницы") = Неопределено Тогда
НоваяСтрока2 = НоваяСтрока.Строки.Добавить();
Для НомКолонки = 0 По (КолвоКолонок - 1) Цикл
НоваяСтрока2[НомКолонки] = Строка2[НомКолонки];
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
Для каждого Строка Из мПользовательскиеНастройкиСтраниц Цикл
Если РеквизитФормыВЗначение("мДеревоСтраницОтчета").Найти(Строка.ИмяСтраницы, "ИмяСтраницы") = Неопределено Тогда
мПользовательскиеНастройкиСтраниц.Строки.Удалить(мПользовательскиеНастройкиСтраниц.Строки.Индекс(Строка));
КонецЕсли;
КонецЦикла;
ЕстьИзменения = Истина;
КонецЕсли;
Для Каждого ТекСтрока Из мДеревоСтраницОтчета.ПолучитьЭлементы() Цикл
НомСтр = мДеревоСтраницОтчета.ПолучитьЭлементы().Индекс(ТекСтрока);
Если ТекСтрока.Представление <> мПользовательскиеНастройкиСтраниц.Строки[НомСтр].Представление Тогда
мПользовательскиеНастройкиСтраниц.Строки[НомСтр].Представление = ТекСтрока.Представление;
ЕстьИзменения = Истина;
КонецЕсли;
Если ТекСтрока.ИмяПоляТабличногоДокум <> мПользовательскиеНастройкиСтраниц.Строки[НомСтр].ИмяПоляТабличногоДокум Тогда
мПользовательскиеНастройкиСтраниц.Строки[НомСтр].ИмяПоляТабличногоДокум = ТекСтрока.ИмяПоляТабличногоДокум;
ЕстьИзменения = Истина;
КонецЕсли;
КонецЦикла;
ЗначениеВРеквизитФормы(мПользовательскиеНастройкиСтраниц.Скопировать(), "мДеревоСтраницОтчета");
Возврат ЕстьИзменения;
КонецФункции
&НаКлиенте
Функция ЗаголовокРегламентированногоОтчета(ДатаНач, ДатаКон, Периодичность = Неопределено) Экспорт
СтрПериодОтчета = ПредставлениеПериода(
НачалоДня(СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета),
КонецДня(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета), "ФП = Истина" );
Если СтрНайти(ЭтаФорма.Заголовок, СтрПериодОтчета) = 0 Тогда
Возврат ЭтаФорма.Заголовок + " за " + СтрПериодОтчета;
Иначе
Возврат ЭтаФорма.Заголовок;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура УстановитьЦветФонаЯчейкиНаКлиенте(ИмяЯчейки = Неопределено, ВариантЗаполнения = Неопределено, ИмяТекущейСтраницыПанели = "") Экспорт
УстановитьЦветФонаЯчейки(ЭтаФорма, ИмяЯчейки, ВариантЗаполнения, ИмяТекущейСтраницыПанели);
КонецПроцедуры
&НаСервере
Процедура УстановитьЦветФонаЯчейкиНаСервере(ИмяЯчейки = Неопределено, ВариантЗаполнения = Неопределено, ИмяТекущейСтраницыПанели = "") Экспорт
УстановитьЦветФонаЯчейки(ЭтаФорма, ИмяЯчейки, ВариантЗаполнения, ИмяТекущейСтраницыПанели);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура УстановитьЦветФонаЯчейки(Форма, ИмяЯчейки = Неопределено, ВариантЗаполнения = Неопределено, ИмяТекущейСтраницыПанели = "")
Перем ЦветФона;
Перем Комментарий;
Если Форма.СтруктураРеквизитовФормы.мБезОткрытияФормы Или Форма.СтруктураРеквизитовФормы.мРежимПечати Тогда
Возврат;
КонецЕсли;
Если Не ИмяЯчейки = Неопределено Тогда
#Если НаКлиенте Тогда
ИмяСтраницыПанели = РегламентированнаяОтчетностьКлиент.ОпределитьСтраницуПанелиПоКодуПоказателяНаКлиенте(Форма, ИмяЯчейки);
#Иначе
ИмяСтраницыПанели = РегламентированнаяОтчетностьВызовСервера.ОпределитьСтраницуПанелиПоКодуПоказателяНаСервере(Форма, ИмяЯчейки);
#КонецЕсли
Если ИмяСтраницыПанели = Неопределено Тогда
Возврат;
КонецЕсли;
ИмяПоляТаблДокумента = "ТабличныйДокумент";
Ключ = "_" + ВариантЗаполнения;
Форма.мСтруктураЦветовРаскраски.Свойство(Ключ, ЦветФона);
Если ВариантЗаполнения = 4 Тогда
Форма[ИмяПоляТаблДокумента].Области[ИмяЯчейки].Защита = Истина;
Иначе
Форма[ИмяПоляТаблДокумента].Области[ИмяЯчейки].Защита = Ложь;
КонецЕсли;
Форма[ИмяПоляТаблДокумента].Области[ИмяЯчейки].ЦветФона = ЦветФона;
Иначе
ТаблицаВариантыЗаполнения = ПолучитьТаблицуВариантовЗаполнения(Форма, ИмяТекущейСтраницыПанели);
Если ТаблицаВариантыЗаполнения = Неопределено Тогда
Возврат;
КонецЕсли;
Для Каждого Строка Из ТаблицаВариантыЗаполнения Цикл
ИмяПоказателя = Строка.КодПоказателя;
ВариантЗаполнения = Строка.ВариантЗаполнения;
Комментарий = Строка.Комментарий;
КодПоказателяПоСтруктуре = Строка.КодПоказателяПоСтруктуре;
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(Форма, ИмяПоказателя);
Если КолвоСтрокВМногострочнойЧасти > 0 Тогда
Многострочность = Истина;
БазоваяЧасть = ИмяПоказателя;
Иначе
Многострочность = Ложь;
КолвоСтрокВМногострочнойЧасти = 1;
КонецЕсли;
Для Инд = 1 по КолвоСтрокВМногострочнойЧасти Цикл
Если Многострочность Тогда
ИмяПоказателя = БазоваяЧасть + "_" + Формат(Инд, "ЧГ=");
КонецЕсли;
Попытка
ТекОбластьЯчеек = Форма.ТабличныйДокумент.Области[ИмяПоказателя];
Если (Не ПустаяСтрока(Комментарий)) ИЛИ (Не ПустаяСтрока(ТекОбластьЯчеек.Примечание.Текст)) Тогда
ТекОбластьЯчеек.Примечание.Текст = Комментарий;
КонецЕсли;
Ключ = "_" + ВариантЗаполнения;
Форма.мСтруктураЦветовРаскраски.Свойство(Ключ, ЦветФона);
Если ВариантЗаполнения = 4 Тогда
Форма.ТабличныйДокумент.Области[ИмяПоказателя].Защита = Истина;
Иначе
Форма.ТабличныйДокумент.Области[ИмяПоказателя].Защита = Ложь;
КонецЕсли;
Форма.ТабличныйДокумент.Области[ИмяПоказателя].ЦветФона = ЦветФона;
Исключение
КонецПопытки;
КонецЦикла;
КонецЦикла;
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ПоказательВходитВМногострочнуюЧасть(Форма, ИмяПоказателя)
ИмяГруппы = Лев(ИмяПоказателя, 11);
СтруктураГруппы = Неопределено;
Если НЕ Форма.мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы) Тогда
Возврат 0;
Иначе
СтруктураГруппы = Форма[СтруктураГруппы];
Возврат СтруктураГруппы.Количество();
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПолучитьТаблицуВариантовЗаполнения(Форма, ИмяСтраницыПанели, ПолучитьЭталонную = Ложь)
#Если НаКлиенте Тогда
Возврат РегламентированнаяОтчетностьКлиент.ПолучитьТаблицуВариантовЗаполненияНаКлиенте(Форма, ИмяСтраницыПанели, ПолучитьЭталонную);
#Иначе
Возврат РегламентированнаяОтчетностьВызовСервера.ПолучитьТаблицуВариантовЗаполненияНаСервере(Форма, ИмяСтраницыПанели, ПолучитьЭталонную);
#КонецЕсли
КонецФункции
&НаКлиенте
Процедура РасчетНаКлиенте(ИмяТекущегоРаздела = "", ОбластьИмя = "") Экспорт
Расчет(ЭтаФорма, ИмяТекущегоРаздела, ОбластьИмя);
КонецПроцедуры
&НаСервере
Процедура РасчетНаСервере(ИмяТекущегоРаздела = "", ОбластьИмя = "") Экспорт
Расчет(ЭтаФорма, ИмяТекущегоРаздела, ОбластьИмя);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура Расчет(Форма, ИмяТекущегоРаздела = "", ОбластьИмя = "")
Перем ТаблицаБлока;
Если Форма.СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Возврат;
КонецЕсли;
Если ИмяТекущегоРаздела = "Таблица1" Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000303, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000010000303.Значение = Форма.ТабличныйДокумент.Области.П000010000103.Значение
- Форма.ТабличныйДокумент.Области.П000010000203.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000304, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000010000304.Значение = Форма.ТабличныйДокумент.Области.П000010000104.Значение
- Форма.ТабличныйДокумент.Области.П000010000204.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000305, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000010000305.Значение = Форма.ТабличныйДокумент.Области.П000010000105.Значение
- Форма.ТабличныйДокумент.Области.П000010000205.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000306, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000010000306.Значение = Форма.ТабличныйДокумент.Области.П000010000106.Значение
- Форма.ТабличныйДокумент.Области.П000010000206.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000903, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000010000903.Значение = Форма.ТабличныйДокумент.Области.П000010000503.Значение
* (1 - Форма.ТабличныйДокумент.Области.П000010000603.Значение / 100
+ Форма.ТабличныйДокумент.Области.П000010000703.Значение / 100);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица1_1" Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000110000106, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы1, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Форма.ТабличныйДокумент.Области["П000110000106_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000110000108_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000110_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000112_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000110000107, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы1, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Форма.ТабличныйДокумент.Области["П000110000107_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000110000109_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000111_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000113_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица2" Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020002401, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020002401.Значение = Форма.ТабличныйДокумент.Области.П000020002101.Значение
+ Форма.ТабличныйДокумент.Области.П000020002201.Значение
+ Форма.ТабличныйДокумент.Области.П000020002301.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020015401, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020015401.Значение = Форма.ТабличныйДокумент.Области.П000020015101.Значение
+ Форма.ТабличныйДокумент.Области.П000020015201.Значение
+ Форма.ТабличныйДокумент.Области.П000020015301.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020016401, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ1 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
МСЧ1 = МСЧ1 + Форма.ТабличныйДокумент.Области["П000020016101_" + Формат(Ном, "ЧГ=")].Значение;
КонецЦикла;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ2 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
МСЧ2 = МСЧ2 + Форма.ТабличныйДокумент.Области["П000020016201_" + Формат(Ном, "ЧГ=")].Значение;
КонецЦикла;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ3 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
МСЧ3 = МСЧ3 + Форма.ТабличныйДокумент.Области["П000020016301_" + Формат(Ном, "ЧГ=")].Значение;
КонецЦикла;
Форма.ТабличныйДокумент.Области.П000020016401.Значение = МСЧ1 + МСЧ2 + МСЧ3;
Форма.СтруктураДанныхТаблица2.П000020016401 = МСЧ1 + МСЧ2 + МСЧ3;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020002003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020002003.Значение = Форма.ТабличныйДокумент.Области.П000020002001.Значение
+ Форма.ТабличныйДокумент.Области.П000020002401.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020012003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020012003.Значение = Форма.ТабличныйДокумент.Области.П000020013003.Значение
+ Форма.ТабличныйДокумент.Области.П000020014003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020015003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020015003.Значение = Форма.ТабличныйДокумент.Области.П000020015001.Значение
+ Форма.ТабличныйДокумент.Области.П000020015401.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020016003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020016003.Значение = Форма.ТабличныйДокумент.Области.П000020016001.Значение
+ Форма.ТабличныйДокумент.Области.П000020016401.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020008003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020008003.Значение = Форма.ТабличныйДокумент.Области.П000020001003.Значение
+ Форма.ТабличныйДокумент.Области.П000020002003.Значение
+ Форма.ТабличныйДокумент.Области.П000020003003.Значение
+ Форма.ТабличныйДокумент.Области.П000020004003.Значение
+ Форма.ТабличныйДокумент.Области.П000020005003.Значение
+ Форма.ТабличныйДокумент.Области.П000020006003.Значение
+ Форма.ТабличныйДокумент.Области.П000020007003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020018003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020018003.Значение = Форма.ТабличныйДокумент.Области.П000020012003.Значение
+ Форма.ТабличныйДокумент.Области.П000020015003.Значение
+ Форма.ТабличныйДокумент.Области.П000020016003.Значение
+ Форма.ТабличныйДокумент.Области.П000020017003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020009003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020009003.Значение = ?(Форма.ТабличныйДокумент.Области.П000020018003.Значение > Форма.ТабличныйДокумент.Области.П000020008003.Значение,
Форма.ТабличныйДокумент.Области.П000020018003.Значение - Форма.ТабличныйДокумент.Области.П000020008003.Значение, 0);
Форма.ТабличныйДокумент.Области.П000020010003.Значение = Форма.ТабличныйДокумент.Области.П000020009003.Значение
- Форма.ТабличныйДокумент.Области.П000020011003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020010003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020010003.Значение = Форма.ТабличныйДокумент.Области.П000020009003.Значение
- Форма.ТабличныйДокумент.Области.П000020011003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020019003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020019003.Значение = ?(Форма.ТабличныйДокумент.Области.П000020008003.Значение > Форма.ТабличныйДокумент.Области.П000020018003.Значение,
Форма.ТабличныйДокумент.Области.П000020008003.Значение - Форма.ТабличныйДокумент.Области.П000020018003.Значение, 0);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица3_4" Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000030010004, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000030010004.Значение = Форма.ТабличныйДокумент.Области.П000030001004.Значение
+ Форма.ТабличныйДокумент.Области.П000030004004.Значение
+ Форма.ТабличныйДокумент.Области.П000030007004.Значение
+ Форма.ТабличныйДокумент.Области.П000030009004.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000040004003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000040004003.Значение = Форма.ТабличныйДокумент.Области.П000040001003.Значение
+ Форма.ТабличныйДокумент.Области.П000040003003.Значение;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "" Тогда
РасчетВСтруктуре(Форма, "Таблица1");
РасчетВСтруктуре(Форма, "Таблица1_1");
РасчетВСтруктуре(Форма, "Таблица2");
РасчетВСтруктуре(Форма, "Таблица3_4");
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РасчетВСтруктуре(Форма, ИмяТекущегоРаздела)
Перем ТаблицаБлока;
Если Форма.СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Возврат;
КонецЕсли;
Если ИмяТекущегоРаздела = "Таблица1" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000010000303 = Форма.ТабличныйДокумент.Области.П000010000103.Значение
- Форма.ТабличныйДокумент.Области.П000010000203.Значение;
СтруктураДанныхРаздела.П000010000304 = Форма.ТабличныйДокумент.Области.П000010000104.Значение
- Форма.ТабличныйДокумент.Области.П000010000204.Значение;
СтруктураДанныхРаздела.П000010000305 = Форма.ТабличныйДокумент.Области.П000010000105.Значение
- Форма.ТабличныйДокумент.Области.П000010000205.Значение;
СтруктураДанныхРаздела.П000010000306 = Форма.ТабличныйДокумент.Области.П000010000106.Значение
- Форма.ТабличныйДокумент.Области.П000010000206.Значение;
СтруктураДанныхРаздела.П000010000903 = Форма.ТабличныйДокумент.Области.П000010000503.Значение
* (1 - Форма.ТабличныйДокумент.Области.П000010000603.Значение / 100
+ Форма.ТабличныйДокумент.Области.П000010000703.Значение / 100);
Форма.ТабличныйДокумент.Области.П000010000303.Значение = СтруктураДанныхРаздела.П000010000303;
Форма.ТабличныйДокумент.Области.П000010000304.Значение = СтруктураДанныхРаздела.П000010000304;
Форма.ТабличныйДокумент.Области.П000010000305.Значение = СтруктураДанныхРаздела.П000010000305;
Форма.ТабличныйДокумент.Области.П000010000306.Значение = СтруктураДанныхРаздела.П000010000306;
Форма.ТабличныйДокумент.Области.П000010000903.Значение = СтруктураДанныхРаздела.П000010000903;
Иначе
СтруктураДанныхРаздела.П000010000303 = СтруктураДанныхРаздела.П000010000103
- СтруктураДанныхРаздела.П000010000203;
СтруктураДанныхРаздела.П000010000304 = СтруктураДанныхРаздела.П000010000104
- СтруктураДанныхРаздела.П000010000204;
СтруктураДанныхРаздела.П000010000305 = СтруктураДанныхРаздела.П000010000105
- СтруктураДанныхРаздела.П000010000205;
СтруктураДанныхРаздела.П000010000306 = СтруктураДанныхРаздела.П000010000106
- СтруктураДанныхРаздела.П000010000206;
СтруктураДанныхРаздела.П000010000903 = СтруктураДанныхРаздела.П000010000503
* (1 - СтруктураДанныхРаздела.П000010000603 / 100
+ СтруктураДанныхРаздела.П000010000703 / 100);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица1_1" Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы1, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
Форма.ТабличныйДокумент.Области["П000110000106_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000110000108_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000110_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000112_" + Постфикс].Значение;
Форма.ТабличныйДокумент.Области["П000110000107_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000110000109_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000111_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000110000113_" + Постфикс].Значение;
Иначе
СтрБлока = ТаблицаБлока[Ном - 1];
СтрБлока["П000110000106"]
= СтрБлока["П000110000108"] + СтрБлока["П000110000110"] + СтрБлока["П000110000112"];
СтруктураДанныхРаздела["П000110000106_" + Постфикс] = СтрБлока["П000110000106"];
СтрБлока["П000110000107"]
= СтрБлока["П000110000109"] + СтрБлока["П000110000111"] + СтрБлока["П000110000113"];
СтруктураДанныхРаздела["П000110000107_" + Постфикс] = СтрБлока["П000110000107"];
КонецЕсли;
КонецЦикла;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица2" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000020002401 = Форма.ТабличныйДокумент.Области.П000020002101.Значение
+ Форма.ТабличныйДокумент.Области.П000020002201.Значение
+ Форма.ТабличныйДокумент.Области.П000020002301.Значение;
СтруктураДанныхРаздела.П000020015401 = Форма.ТабличныйДокумент.Области.П000020015101.Значение
+ Форма.ТабличныйДокумент.Области.П000020015201.Значение
+ Форма.ТабличныйДокумент.Области.П000020015301.Значение;
Форма.ТабличныйДокумент.Области.П000020002401.Значение = СтруктураДанныхРаздела.П000020002401;
Форма.ТабличныйДокумент.Области.П000020015401.Значение = СтруктураДанныхРаздела.П000020015401;
Иначе
СтруктураДанныхРаздела.П000020002401 = СтруктураДанныхРаздела.П000020002101
+ СтруктураДанныхРаздела.П000020002201
+ СтруктураДанныхРаздела.П000020002301;
СтруктураДанныхРаздела.П000020015401 = СтруктураДанныхРаздела.П000020015101
+ СтруктураДанныхРаздела.П000020015201
+ СтруктураДанныхРаздела.П000020015301;
КонецЕсли;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ1 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
МСЧ1 = МСЧ1 + Форма.ТабличныйДокумент.Области["П000020016101_" + Формат(Ном, "ЧГ=")].Значение;
Иначе
МСЧ1 = МСЧ1 + ТаблицаБлока[Ном-1]["П000020016101"];
КонецЕсли;
КонецЦикла;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ2 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
МСЧ2 = МСЧ2 + Форма.ТабличныйДокумент.Области["П000020016201_" + Формат(Ном, "ЧГ=")].Значение;
Иначе
МСЧ2 = МСЧ2 + ТаблицаБлока[Ном-1]["П000020016201"];
КонецЕсли;
КонецЦикла;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
МСЧ3 = 0;
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
МСЧ3 = МСЧ3 + Форма.ТабличныйДокумент.Области["П000020016301_" + Формат(Ном, "ЧГ=")].Значение;
Иначе
МСЧ3 = МСЧ3 + ТаблицаБлока[Ном-1]["П000020016301"];
КонецЕсли;
КонецЦикла;
СтруктураДанныхРаздела.П000020016401 = МСЧ1 + МСЧ2 + МСЧ3;
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
Форма.ТабличныйДокумент.Области.П000020016401.Значение = МСЧ1 + МСЧ2 + МСЧ3;
КонецЕсли;
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000020002003 = Форма.ТабличныйДокумент.Области.П000020002001.Значение
+ Форма.ТабличныйДокумент.Области.П000020002401.Значение;
Форма.ТабличныйДокумент.Области.П000020002003.Значение = СтруктураДанныхРаздела.П000020002003;
СтруктураДанныхРаздела.П000020012003 = Форма.ТабличныйДокумент.Области.П000020013003.Значение
+ Форма.ТабличныйДокумент.Области.П000020014003.Значение;
Форма.ТабличныйДокумент.Области.П000020012003.Значение = СтруктураДанныхРаздела.П000020012003;
СтруктураДанныхРаздела.П000020015003 = Форма.ТабличныйДокумент.Области.П000020015001.Значение
+ Форма.ТабличныйДокумент.Области.П000020015401.Значение;
Форма.ТабличныйДокумент.Области.П000020015003.Значение = СтруктураДанныхРаздела.П000020015003;
СтруктураДанныхРаздела.П000020016003 = Форма.ТабличныйДокумент.Области.П000020016001.Значение
+ Форма.ТабличныйДокумент.Области.П000020016401.Значение;
Форма.ТабличныйДокумент.Области.П000020016003.Значение = СтруктураДанныхРаздела.П000020016003;
СтруктураДанныхРаздела.П000020008003 = Форма.ТабличныйДокумент.Области.П000020001003.Значение
+ Форма.ТабличныйДокумент.Области.П000020002003.Значение
+ Форма.ТабличныйДокумент.Области.П000020003003.Значение
+ Форма.ТабличныйДокумент.Области.П000020004003.Значение
+ Форма.ТабличныйДокумент.Области.П000020005003.Значение
+ Форма.ТабличныйДокумент.Области.П000020006003.Значение
+ Форма.ТабличныйДокумент.Области.П000020007003.Значение;
Форма.ТабличныйДокумент.Области.П000020008003.Значение = СтруктураДанныхРаздела.П000020008003;
СтруктураДанныхРаздела.П000020018003 = Форма.ТабличныйДокумент.Области.П000020012003.Значение
+ Форма.ТабличныйДокумент.Области.П000020015003.Значение
+ Форма.ТабличныйДокумент.Области.П000020016003.Значение
+ Форма.ТабличныйДокумент.Области.П000020017003.Значение;
Форма.ТабличныйДокумент.Области.П000020018003.Значение = СтруктураДанныхРаздела.П000020018003;
СтруктураДанныхРаздела.П000020009003 = ?(Форма.ТабличныйДокумент.Области.П000020018003.Значение
> Форма.ТабличныйДокумент.Области.П000020008003.Значение,
Форма.ТабличныйДокумент.Области.П000020018003.Значение
- Форма.ТабличныйДокумент.Области.П000020008003.Значение, 0);
Форма.ТабличныйДокумент.Области.П000020009003.Значение = СтруктураДанныхРаздела.П000020009003;
СтруктураДанныхРаздела.П000020010003 = Форма.ТабличныйДокумент.Области.П000020009003.Значение
- Форма.ТабличныйДокумент.Области.П000020011003.Значение;
Форма.ТабличныйДокумент.Области.П000020010003.Значение = СтруктураДанныхРаздела.П000020010003;
СтруктураДанныхРаздела.П000020019003 = ?(Форма.ТабличныйДокумент.Области.П000020008003.Значение
> Форма.ТабличныйДокумент.Области.П000020018003.Значение,
Форма.ТабличныйДокумент.Области.П000020008003.Значение
- Форма.ТабличныйДокумент.Области.П000020018003.Значение, 0);
Форма.ТабличныйДокумент.Области.П000020019003.Значение = СтруктураДанныхРаздела.П000020019003;
Иначе
СтруктураДанныхРаздела.П000020002003 = СтруктураДанныхРаздела.П000020002001
+ СтруктураДанныхРаздела.П000020002401;
СтруктураДанныхРаздела.П000020012003 = СтруктураДанныхРаздела.П000020013003
+ СтруктураДанныхРаздела.П000020014003;
СтруктураДанныхРаздела.П000020015003 = СтруктураДанныхРаздела.П000020015001
+ СтруктураДанныхРаздела.П000020015401;
СтруктураДанныхРаздела.П000020016003 = СтруктураДанныхРаздела.П000020016001
+ СтруктураДанныхРаздела.П000020016401;
СтруктураДанныхРаздела.П000020008003 = СтруктураДанныхРаздела.П000020001003
+ СтруктураДанныхРаздела.П000020002003
+ СтруктураДанныхРаздела.П000020003003
+ СтруктураДанныхРаздела.П000020004003
+ СтруктураДанныхРаздела.П000020005003
+ СтруктураДанныхРаздела.П000020006003
+ СтруктураДанныхРаздела.П000020007003;
СтруктураДанныхРаздела.П000020018003 = СтруктураДанныхРаздела.П000020012003
+ СтруктураДанныхРаздела.П000020015003
+ СтруктураДанныхРаздела.П000020016003
+ СтруктураДанныхРаздела.П000020017003;
СтруктураДанныхРаздела.П000020009003 = ?(СтруктураДанныхРаздела.П000020018003
> СтруктураДанныхРаздела.П000020008003,
СтруктураДанныхРаздела.П000020018003
- СтруктураДанныхРаздела.П000020008003, 0);
СтруктураДанныхРаздела.П000020010003 = СтруктураДанныхРаздела.П000020009003
- СтруктураДанныхРаздела.П000020011003;
СтруктураДанныхРаздела.П000020019003 = ?(СтруктураДанныхРаздела.П000020008003
> СтруктураДанныхРаздела.П000020018003,
СтруктураДанныхРаздела.П000020008003
- СтруктураДанныхРаздела.П000020018003, 0);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица3_4" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000030010004 = Форма.ТабличныйДокумент.Области.П000030001004.Значение
+ Форма.ТабличныйДокумент.Области.П000030004004.Значение
+ Форма.ТабличныйДокумент.Области.П000030007004.Значение
+ Форма.ТабличныйДокумент.Области.П000030009004.Значение;
СтруктураДанныхРаздела.П000040004003 = Форма.ТабличныйДокумент.Области.П000040001003.Значение
+ Форма.ТабличныйДокумент.Области.П000040003003.Значение;
Форма.ТабличныйДокумент.Области.П000030010004.Значение = СтруктураДанныхРаздела.П000030010004;
Форма.ТабличныйДокумент.Области.П000040004003.Значение = СтруктураДанныхРаздела.П000040004003;
Иначе
СтруктураДанныхРаздела.П000030010004 = СтруктураДанныхРаздела.П000030001004
+ СтруктураДанныхРаздела.П000030004004
+ СтруктураДанныхРаздела.П000030007004
+ СтруктураДанныхРаздела.П000030009004;
СтруктураДанныхРаздела.П000040004003 = СтруктураДанныхРаздела.П000040001003
+ СтруктураДанныхРаздела.П000040003003;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СкорректироватьМакетТаблица2(ИмяГруппы, СтруктураГруппыКоличество) Экспорт
Если ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1 Тогда
ИмяПоследнейЯчейкиМСЧ = ИмяГруппы + "01_" + СтрокаЧГ0(СтруктураГруппыКоличество);
ПоследняяЯчейкаМСЧ = ТабличныйДокумент.Области[ИмяПоследнейЯчейкиМСЧ];
ВерхСтроки5 = 18;
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки5, 2, ПоследняяЯчейкаМСЧ.Низ + 1, 3);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки5, 4, ПоследняяЯчейкаМСЧ.Низ + 1, 4);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки5, 5, ПоследняяЯчейкаМСЧ.Низ + 1, 5);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть.Имя = "П000020005003";
ИначеЕсли ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2
ИЛИ ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3 Тогда
ВерхСтроки6 = ТабличныйДокумент.Области["П000020016204_1"].Верх;
НизСтроки6 = ТабличныйДокумент.Области["П000020017003"].Низ;
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки6, 2, НизСтроки6, 3);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки6, 4, НизСтроки6, 4);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки6, 5, НизСтроки6, 5);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть.Имя = "П000020006003";
Иначе
Возврат;
КонецЕсли;
ВерхСтроки16 = 16;
НизСтроки16 = ТабличныйДокумент.Области["П000020017003"].Низ - 1;
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки16, 14, НизСтроки16, 14);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки16, 15, НизСтроки16, 15);
ОбъединяемаяОбласть.Объединить();
ОбъединяемаяОбласть.Имя = "П000020016003";
Для НомерСтроки = 1 По СтруктураГруппыКоличество Цикл
ОбластьПоказателя = ТабличныйДокумент.Области["УдалитьСтроку" + ИмяГруппы + "01_" + СтрокаЧГ0(НомерСтроки)];
Если НомерСтроки = 1 Тогда
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
Иначе
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
КонецЕсли;
ОбластьПоказателя = ТабличныйДокумент.Области[ИмяГруппы + "01_" + СтрокаЧГ0(НомерСтроки)];
Если НомерСтроки = 1 Тогда
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
Иначе
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
КонецЕсли;
ОбластьПоказателя = ТабличныйДокумент.Области[ИмяГруппы + "04_" + СтрокаЧГ0(НомерСтроки)];
Если НомерСтроки = 1 Тогда
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
Иначе
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
КонецЕсли;
ОбластьПоказателя = ТабличныйДокумент.Области[ИмяГруппы + "05_" + СтрокаЧГ0(НомерСтроки)];
Если НомерСтроки = 1 Тогда
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.Сплошная, 1);
Иначе
ОбластьПоказателя.ГраницаСверху = Новый Линия(ТипЛинииЯчейкиТабличногоДокумента.НетЛинии);
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Функция СтрокаЧГ0(ИсходноеЧисло)
Возврат ОбъектОтчета(ЭтаФорма.ИмяФормы).СтрокаЧГ0(СтруктураРеквизитовФормы.мВыбраннаяФорма, ИсходноеЧисло);
КонецФункции
&НаКлиенте
Процедура ДобавитьСтроку()
ТекТабличноеПоле = ТабличныйДокумент;
ТекущаяОбласть = ЭтаФорма["ТабличныйДокумент"].ТекущаяОбласть;
ТекРаздел = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
Если ТекущаяОбласть.Имя = "ДобавитьСтроку" ИЛИ ТекущаяОбласть.Имя = "ДобавитьСтрокуЗначок" Тогда
ИмяПараметраАктивнойОбласти = Лев(СтрЗаменить(ТекущаяОбласть.Имя, "ДобавитьСтроку", ""), 11);
ИначеЕсли ТекущаяОбласть.Имя = "ДобавитьСтроку1м"
ИЛИ ТекущаяОбласть.Имя = "ДобавитьСтрокуЗначок1м"
ИЛИ (СтрНайти(ТекущаяОбласть.Имя, "П0000200161") > 0) Тогда
Если ТекРаздел = "Таблица2" Тогда
ИмяПараметраАктивнойОбласти = "П0000200161";
КонецЕсли;
ИначеЕсли ТекущаяОбласть.Имя = "ДобавитьСтроку2м"
ИЛИ ТекущаяОбласть.Имя = "ДобавитьСтрокуЗначок2м"
ИЛИ (СтрНайти(ТекущаяОбласть.Имя, "П0000200162") > 0) Тогда
Если ТекРаздел = "Таблица2" Тогда
ИмяПараметраАктивнойОбласти = "П0000200162";
КонецЕсли;
ИначеЕсли ТекущаяОбласть.Имя = "ДобавитьСтроку3м"
ИЛИ ТекущаяОбласть.Имя = "ДобавитьСтрокуЗначок3м"
ИЛИ (СтрНайти(ТекущаяОбласть.Имя, "П0000200163") > 0) Тогда
Если ТекРаздел = "Таблица2" Тогда
ИмяПараметраАктивнойОбласти = "П0000200163";
КонецЕсли;
КонецЕсли;
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаКлиенте(
Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим,
ИмяПараметраАктивнойОбласти);
Если ИмяГруппы = Неопределено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Не выбран многострочный раздел, в который необходимо добавить строку.'");
Сообщение.Сообщить();
Возврат;
КонецЕсли;
ВставитьДополнительнуюСтроку(Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура УдалитьСтроку()
ТекТабличноеПоле = ЭтаФорма["ТабличныйДокумент"];
ТекущаяОбласть = ТекТабличноеПоле.ТекущаяОбласть;
ИмяГруппы = РегламентированнаяОтчетностьКлиент.РазделТекущейОбласти(ЭтаФорма, ТекущаяОбласть);
Если ИмяГруппы = Неопределено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Не выбрана удаляемая строка многострочного раздела.'");
Сообщение.Сообщить();
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьСтрокуЗавершение", ЭтотОбъект);
ТекстВопроса = НСтр("ru='Удалить выбранную строку?'");
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
КонецПроцедуры
&НаКлиенте
Процедура УдалитьСтрокуЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
УдалитьДополнительнуюСтрокуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВставитьДополнительнуюСтроку(ТекущаяСтраница, ИмяГруппы)
Перем СтруктураГруппы;
Перем МаксимальноеКоличествоСтрокГруппы;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, МаксимальноеКоличествоСтрокГруппы);
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = ЭтаФорма[ТекТабличноеПолеИмя];
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
КолСтрок = СтруктураГруппы.Количество();
КолСтрокСтр = Формат(КолСтрок, "ЧГ=");
КолСтрокСтр1 = Формат(КолСтрок + 1, "ЧГ=");
ИмяПервойЯчейкиПоследнейСтроки = "УдалитьСтроку" + ИмяГруппы + "01_" + КолСтрокСтр;
ОбластьЯчейки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПоследнейСтроки];
ИмяПервойЯчейкиПервойСтроки = "УдалитьСтроку" + ИмяГруппы + "01_1";
ОбластьПервойЯчейкиПервойСтроки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПервойСтроки];
ВерхОбластиМногострочнойЧасти = ОбластьПервойЯчейкиПервойСтроки.Верх;
ВысотаСтроки = МаксимальноеКоличествоСтрокГруппы;
НомерПоследнейСтроки = СтруктураГруппы.Количество();
НомерВерхЯчейкиОбласти = ОбластьЯчейки.Верх;
НомерНижнЯчейкиОбласти = ОбластьЯчейки.Низ;
ИсходнаяОбластьМСЧ = ТекТабличноеПоле.Область(ВерхОбластиМногострочнойЧасти, , НомерНижнЯчейкиОбласти, );
ИмяОбластиМСЧ = ИсходнаяОбластьМСЧ.Имя;
ИсходнаяОбластьМСЧ.Имя = Неопределено;
СдвигСтрок = НомерНижнЯчейкиОбласти - НомерВерхЯчейкиОбласти + 1;
НомерВерхЯчейкиНовойОбласти = НомерВерхЯчейкиОбласти + СдвигСтрок;
НомерНижнЯчейкиНовойОбласти = НомерНижнЯчейкиОбласти + СдвигСтрок;
СпециальногоДобавленияСтроки(
ТекТабличноеПоле, ТекТабличноеПолеИмя, ИмяГруппы, НомерВерхЯчейкиОбласти, НомерНижнЯчейкиОбласти,
СтруктураГруппы, НомерПоследнейСтроки, ВерхОбластиМногострочнойЧасти, ВысотаСтроки, ИмяОбластиМСЧ);
ЭтаФорма[ТекТабличноеПолеИмя] = ТекТабличноеПоле;
Если СтрЧислоВхождений(ИмяГруппы, "П000020016") > 0 Тогда
ДопСимволы = "04_";
Иначе
ДопСимволы = "01_";
КонецЕсли;
ИмяТекущейОбласти = ИмяГруппы + ДопСимволы + КолСтрокСтр1;
ЭтаФорма.Элементы[ТекТабличноеПолеИмя].ТекущаяОбласть = ТекТабличноеПоле.Области[ИмяТекущейОбласти];
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ТекТабличноеПолеИмя];
ЭтаФорма[ИмяГруппы].Добавить();
Если ТекущаяСтраница = "Таблица2" Тогда
СкорректироватьМакетТаблица2(ИмяГруппы, ЭтаФорма[ИмяГруппы].Количество());
КонецЕсли;
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура УдалитьДополнительнуюСтрокуНаСервере(СпециальноеДобавление = Ложь, ИмяКолонкиНомера = Неопределено) Экспорт
ТекущаяСтраница = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
ТекТабличноеПоле = ТабличныйДокумент;
ТекущаяОбласть = Элементы["ТабличныйДокумент"].ТекущаяОбласть;
ИмяГруппы = РегламентированнаяОтчетностьВызовСервера.РазделТекущейОбластиНаСервере(ЭтаФорма, ТекущаяОбласть);
ПараметрыУдаления = Новый Структура;
ПараметрыУдаления.Вставить("СпециальноеДобавление", СпециальноеДобавление);
ПараметрыУдаления.Вставить("ИмяКолонкиНомера", ИмяКолонкиНомера);
ПараметрыУдаления.Вставить("ИмяГруппы", ИмяГруппы);
ПараметрыУдаления.Вставить("ТекущаяСтраница", ТекущаяСтраница);
Если ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1
ИЛИ ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2
ИЛИ ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3 Тогда
УдалитьСоставнуюДополнительнуюСтроку(ПараметрыУдаления);
Иначе
УдалитьОбычнуюДополнительнуюСтроку(ПараметрыУдаления);
КонецЕсли;
РасчетНаСервере();
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура УдалитьОбычнуюДополнительнуюСтроку(ПараметрыУдаления)
Перем ИсходноеКоличествоСтрокГруппы;
Перем СтруктураГруппы;
СпециальноеДобавление = ПараметрыУдаления.СпециальноеДобавление;
ИмяКолонкиНомера = ПараметрыУдаления.ИмяКолонкиНомера;
ИмяГруппы = ПараметрыУдаления.ИмяГруппы;
ТекущаяСтраница = ПараметрыУдаления.ТекущаяСтраница;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
ТекТабличноеПоле = ТабличныйДокумент;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ТекущаяОбласть = Элементы.ТабличныйДокумент.ТекущаяОбласть;
ИмяЯчейки = ТекущаяОбласть.Имя;
НомУдаляемойСтроки = Число(Сред(ИмяЯчейки, СтрНайти(ИмяЯчейки, "_") + 1));
НомерСтрокиТаблицы = НомУдаляемойСтроки - 1;
Если СтруктураГруппы.Количество() > ИсходноеКоличествоСтрокГруппы Тогда
ИмяПервойЯчейкиУдаляемойСтроки = ИмяГруппы + "01_" + Формат(НомУдаляемойСтроки, "ЧГ=");
ОбластьЯчейки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиУдаляемойСтроки];
ВысотаСтроки = 1;
НомерВерхЯчейкиОбласти = ОбластьЯчейки.Верх;
НомерНижнЯчейкиОбласти = ОбластьЯчейки.Верх + ВысотаСтроки - 1;
МногострочностьВРазделе = РегламентированнаяОтчетностьКлиентСервер.ПолучитьСвойствоРаздела(
ЭтаФорма, ТекущаяСтраница, "МногострочностьВРазделе");
МногострочностьВРазделеТип = ТипЗнч(МногострочностьВРазделе);
Если МногострочностьВРазделеТип = Тип("Число") Тогда
ИмяОбластиМнгЧ = "МногострочнаяЧасть";
ИначеЕсли МногострочностьВРазделеТип = Тип("ДанныеФормыКоллекция") Тогда
ИмяОбластиМнгЧ = МногострочностьВРазделе.НайтиСтроки(Новый Структура("ИдГруппы", ИмяГруппы))[0].Область;
КонецЕсли;
Если ТекТабличноеПоле.Области.Найти(ИмяОбластиМнгЧ) <> Неопределено Тогда
ОбластьВерх = ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Верх;
ОбластьНиз = ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Низ;
КонецЕсли;
Если СпециальноеДобавление Тогда
Иначе
УдаляемаяОбласть = ТекТабличноеПоле.Область(НомерВерхЯчейкиОбласти, , НомерНижнЯчейкиОбласти,);
ТекТабличноеПоле.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЕсли;
Если ТекТабличноеПоле.Области.Найти(ИмяОбластиМнгЧ) <> Неопределено Тогда
ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Имя = "";
ТекТабличноеПоле.Область(ОбластьВерх, 0, ОбластьНиз, 0).Имя = ИмяОбластиМнгЧ;
Иначе
ТекТабличноеПоле.Область(ОбластьВерх, 0, ОбластьНиз, 0).Имя = ИмяОбластиМнгЧ;
КонецЕсли;
КолвоСдвигаемыхСтрок = СтруктураГруппы.Количество() - НомУдаляемойСтроки;
Если КолвоСдвигаемыхСтрок > 0 Тогда
Для НСтр = НомУдаляемойСтроки + 1 По СтруктураГруппы.Количество() Цикл
ТекСтрока = СтруктураГруппы[НСтр - 1];
НСтрСтр = Формат(НСтр, "ЧГ=");
НСтрСтр1 = Формат(НСтр - 1, "ЧГ=");
Для НомерГрафы = 1 По мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
Если НомерГрафы = 1 Тогда
КолонкаТаблицыИмя = "УдалитьСтроку" + ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
ИмяСдвинутойЯчейки = КолонкаТаблицыИмя + "_" + НСтрСтр;
НовоеИмяСдвинутойЯчейки = КолонкаТаблицыИмя + "_" + НСтрСтр1;
ОбластьСдвинутойЯчейки = ТекТабличноеПоле.Области[ИмяСдвинутойЯчейки];
ОбластьСдвинутойЯчейки.Имя = НовоеИмяСдвинутойЯчейки;
Если ИмяКолонкиНомера <> Неопределено Тогда
Если ИмяКолонкиНомера = КолонкаТаблицыИмя Тогда
СтарыйНомер = Число(ТекСтрока[КолонкаТаблицыИмя]);
НовыйПорядковыйНомер = Строка(Макс(СтарыйНомер - 1, 0));
ОбластьСдвинутойЯчейки.Текст = НовыйПорядковыйНомер;
ТекСтрока[КолонкаТаблицыИмя] = НовыйПорядковыйНомер;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КолонкаТаблицыИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(КолонкаТаблицыИмя) Тогда
ИмяСдвинутойЯчейки = КолонкаТаблицыИмя + "_" + НСтрСтр;
НовоеИмяСдвинутойЯчейки = КолонкаТаблицыИмя + "_" + НСтрСтр1;
ОбластьСдвинутойЯчейки = ТекТабличноеПоле.Области[ИмяСдвинутойЯчейки];
ОбластьСдвинутойЯчейки.Имя = НовоеИмяСдвинутойЯчейки;
Если ИмяКолонкиНомера <> Неопределено Тогда
Если ИмяКолонкиНомера = КолонкаТаблицыИмя Тогда
СтарыйНомер = Число(ТекСтрока[КолонкаТаблицыИмя]);
НовыйПорядковыйНомер = Формат(Макс(СтарыйНомер - 1, 0), "ЧГ=");
ОбластьСдвинутойЯчейки.Текст = НовыйПорядковыйНомер;
ТекСтрока[КолонкаТаблицыИмя] = НовыйПорядковыйНомер;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецЕсли;
СтруктураГруппы.Удалить(НомерСтрокиТаблицы);
Иначе
СтруктураГруппы.Удалить(НомерСтрокиТаблицы);
ДобавляемаяСтрока = СтруктураГруппы.Добавить();
Для Каждого СтрокаТаблицы Из СтруктураГруппы Цикл
НомерСтрокиВТаблице = СтруктураГруппы.Индекс(СтрокаТаблицы);
НомерСтрокиВФормеТаблицы = Формат(НомерСтрокиВТаблице + 1, "ЧГ=");
Для НомерГрафы = 1 По мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
КолонкаТаблицыИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(КолонкаТаблицыИмя) Тогда
Если ИмяКолонкиНомера <> Неопределено Тогда
Если ИмяКолонкиНомера = КолонкаТаблицыИмя Тогда
СтрокаТаблицы[КолонкаТаблицыИмя] = НомерСтрокиВФормеТаблицы;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ТекущаяСтраница);
КонецЕсли;
НомТекущейСтроки = Мин(НомУдаляемойСтроки, СтруктураГруппы.Количество());
ИмяТекущейОбласти = "УдалитьСтроку" + ИмяГруппы + "01_" + Формат(НомТекущейСтроки, "ЧГ=");
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТекТабличноеПоле.Области[ИмяТекущейОбласти];
ТекущийЭлемент = Элементы.ТабличныйДокумент;
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
КонецПроцедуры
&НаСервере
Процедура УдалитьСоставнуюДополнительнуюСтроку(ПараметрыУдаления)
Перем ИсходноеКоличествоСтрокМСЧ;
Перем СтруктураГруппы;
СпециальноеДобавление = ПараметрыУдаления.СпециальноеДобавление;
ИмяКолонкиНомера = ПараметрыУдаления.ИмяКолонкиНомера;
ИмяГруппы = ПараметрыУдаления.ИмяГруппы;
ТекущаяСтраница = ПараметрыУдаления.ТекущаяСтраница;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокМСЧ);
ТекТабличноеПоле = ТабличныйДокумент;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ТекущаяОбласть = Элементы.ТабличныйДокумент.ТекущаяОбласть;
ИмяЯчейки = ТекущаяОбласть.Имя;
КоличествоСтрокДоУдаления = СтруктураГруппы.Количество();
НомерУдаляемойСтроки = Число(Сред(ИмяЯчейки, СтрНайти(ИмяЯчейки, "_") + 1));
ИндексСтрокиТаблицы = НомерУдаляемойСтроки - 1;
Если КоличествоСтрокДоУдаления > ИсходноеКоличествоСтрокМСЧ Тогда
Для Каждого СтрокаТаблицы Из СтруктураГруппы Цикл
ИндексСтрокиВТаблице = СтруктураГруппы.Индекс(СтрокаТаблицы);
Постфикс = "_" + Формат(ИндексСтрокиВТаблице + 1, "ЧГ=");
НачНомер = 1;
Для НомерГрафы = НачНомер По мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
КолонкаТаблицыИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(КолонкаТаблицыИмя) Тогда
ИмяЯчейки = КолонкаТаблицыИмя + Постфикс;
ОбластьЯчейкиМСЧ = ТекТабличноеПоле.Области[ИмяЯчейки];
Если ОбластьЯчейкиМСЧ.СодержитЗначение Тогда
ЗначениеЯчейки = ОбластьЯчейкиМСЧ.Значение;
Иначе
ЗначениеЯчейки = ОбластьЯчейкиМСЧ.Текст;
КонецЕсли;
СтрокаТаблицы[КолонкаТаблицыИмя] = ЗначениеЯчейки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
СтруктураГруппы.Удалить(ИндексСтрокиТаблицы);
ИмяПервойЯчейкиУдаляемойСтроки = ИмяГруппы + "01_" + Формат(КоличествоСтрокДоУдаления, "ЧГ=");
ОбластьЯчейкиУдаляемойСтроки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиУдаляемойСтроки];
ВысотаСтроки = 1;
НомерВерхЯчейкиОбласти = ОбластьЯчейкиУдаляемойСтроки.Верх;
НомерНижнЯчейкиОбласти = ОбластьЯчейкиУдаляемойСтроки.Верх + ВысотаСтроки - 1;
МногострочностьВРазделе = РегламентированнаяОтчетностьКлиентСервер.ПолучитьСвойствоРаздела(
ЭтаФорма, ТекущаяСтраница, "МногострочностьВРазделе");
МногострочностьВРазделеТип = ТипЗнч(МногострочностьВРазделе);
Если МногострочностьВРазделеТип = Тип("Число") Тогда
ИмяОбластиМнгЧ = "МногострочнаяЧасть";
ИначеЕсли МногострочностьВРазделеТип = Тип("ДанныеФормыКоллекция") Тогда
НайденныеСтроки = МногострочностьВРазделе.НайтиСтроки(Новый Структура("ИдГруппы", ИмяГруппы));
Если НайденныеСтроки.Количество() > 0 Тогда
ИмяОбластиМнгЧ = МногострочностьВРазделе.НайтиСтроки(Новый Структура("ИдГруппы", ИмяГруппы))[0].Область;
КонецЕсли;
КонецЕсли;
Если ТекТабличноеПоле.Области.Найти(ИмяОбластиМнгЧ) <> Неопределено Тогда
ОбластьВерх = ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Верх;
ОбластьНиз = ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Низ;
КонецЕсли;
Если СпециальноеДобавление Тогда
Иначе
УдаляемаяОбласть = ТекТабличноеПоле.Область(НомерВерхЯчейкиОбласти, , НомерНижнЯчейкиОбласти,);
ТекТабличноеПоле.УдалитьОбласть(УдаляемаяОбласть, ТипСмещенияТабличногоДокумента.ПоВертикали);
КонецЕсли;
Если ТекТабличноеПоле.Области.Найти(ИмяОбластиМнгЧ) <> Неопределено Тогда
ТекТабличноеПоле.Области[ИмяОбластиМнгЧ].Имя = "";
ТекТабличноеПоле.Область(ОбластьВерх, 0, ОбластьНиз, 0).Имя = ИмяОбластиМнгЧ;
КонецЕсли;
ВывестиЗначенияВМногострочнуюЧасть(ЭтаФорма, СтруктураГруппы, ТекТабличноеПоле, ИмяГруппы);
Иначе
СтруктураГруппы.Удалить(ИндексСтрокиТаблицы);
ДобавляемаяСтрока = СтруктураГруппы.Добавить();
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ТекущаяСтраница);
КонецЕсли;
Для Каждого СтрокаТаблицы Из СтруктураГруппы Цикл
НомерСтрокиВТаблице = СтруктураГруппы.Индекс(СтрокаТаблицы);
НомерСтрокиВФормеТаблицы = Формат(НомерСтрокиВТаблице + 1, "ЧГ=");
НачНомер = 1;
Для НомерГрафы = НачНомер По мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
КолонкаТаблицыИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(КолонкаТаблицыИмя) Тогда
Если ИмяКолонкиНомера <> Неопределено Тогда
Если ИмяКолонкиНомера = КолонкаТаблицыИмя Тогда
СтрокаТаблицы[КолонкаТаблицыИмя] = НомерСтрокиВФормеТаблицы;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
НомТекущейСтроки = Мин(НомерУдаляемойСтроки, СтруктураГруппы.Количество());
ИмяТекущейОбласти = "УдалитьСтроку" + ИмяГруппы + "01_" + Формат(НомТекущейСтроки, "ЧГ=");
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТекТабличноеПоле.Области[ИмяТекущейОбласти];
ТекущийЭлемент = Элементы.ТабличныйДокумент;
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
КонецПроцедуры
&НаСервере
Процедура ДобавитьНеобходимоеКоличествоДопСтрокНаСервере(ТекТабличноеПоле, ТекТабличноеПолеИмя, ИсходноеКоличествоСтрокГруппы, ТекущееКоличествоСтрокГруппы, ИмяГруппы, СтруктураГруппы) Экспорт
ИмяПервойЯчейкиПервойСтроки = ИмяГруппы + "01_1";
ОбластьЯчейкиПервойСтроки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПервойСтроки];
ВерхОбластиМногострочнойЧасти = ОбластьЯчейкиПервойСтроки.Верх;
ИмяПервойЯчейкиПоследнейСтроки = ИмяГруппы + "01_" + Формат(ИсходноеКоличествоСтрокГруппы, "ЧГ=");
ОбластьЯчейкиПоследнейСтроки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПоследнейСтроки];
НизОбластиМногострочнойЧасти = ОбластьЯчейкиПоследнейСтроки.Низ;
ИсходнаяОбластьМСЧ = ТекТабличноеПоле.Область(ВерхОбластиМногострочнойЧасти, , НизОбластиМногострочнойЧасти, );
ИмяОбластиМСЧ = ИсходнаяОбластьМСЧ.Имя;
ИсходнаяОбластьМСЧ.Имя = Неопределено;
ПрототипДобавляемойОбласти = ТекТабличноеПоле.ПолучитьОбласть(
ОбластьЯчейкиПоследнейСтроки.Верх, , ОбластьЯчейкиПоследнейСтроки.Низ, );
ПомежуточныйТабличныйДокумент = Новый ТабличныйДокумент;
Для НомерНовойСтроки = ИсходноеКоличествоСтрокГруппы + 1 По ТекущееКоличествоСтрокГруппы Цикл
ПомежуточныйТабличныйДокумент.Вывести(ПрототипДобавляемойОбласти);
НачНомер = 1;
Для НомерГрафы = НачНомер По мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
КолонкаИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если НомерГрафы = НачНомер Тогда
ИмяОбластиПрототипа = "УдалитьСтроку" + КолонкаИмя + "_" + Формат(ИсходноеКоличествоСтрокГруппы, "ЧГ=");
НазначаемоеИмяОбластиДобавленнойСтроки = "УдалитьСтроку" + КолонкаИмя + "_" + Формат(НомерНовойСтроки, "ЧГ=");
ОбластьДобавленнойСтроки = ПомежуточныйТабличныйДокумент.Области[ИмяОбластиПрототипа];
ОбластьДобавленнойСтроки.Имя = НазначаемоеИмяОбластиДобавленнойСтроки;
Если ОбластьДобавленнойСтроки.СодержитЗначение = Истина Тогда
ОбластьДобавленнойСтроки.Очистить();
КонецЕсли;
КонецЕсли;
Если СтруктураГруппы[0].Свойство(КолонкаИмя) Тогда
ИмяОбластиПрототипа = КолонкаИмя + "_" + Формат(ИсходноеКоличествоСтрокГруппы, "ЧГ=");
НазначаемоеИмяОбластиДобавленнойСтроки = КолонкаИмя + "_" + Формат(НомерНовойСтроки, "ЧГ=");
ОбластьДобавленнойСтроки = ПомежуточныйТабличныйДокумент.Области[ИмяОбластиПрототипа];
ОбластьДобавленнойСтроки.Имя = НазначаемоеИмяОбластиДобавленнойСтроки;
Если ОбластьДобавленнойСтроки.СодержитЗначение = Истина Тогда
ОбластьДобавленнойСтроки.Очистить();
КонецЕсли;
КонецЕсли;
КонецЦикла
КонецЦикла;
ВставляемаяОбласть = ПомежуточныйТабличныйДокумент.Область(1, , ПомежуточныйТабличныйДокумент.ВысотаТаблицы, );
ПозицияВставки = ТекТабличноеПоле.Область(ОбластьЯчейкиПоследнейСтроки.Верх + 1, , ОбластьЯчейкиПоследнейСтроки.Низ + 1, );
ТекТабличноеПоле.ВставитьОбласть(ВставляемаяОбласть, ПозицияВставки, ТипСмещенияТабличногоДокумента.ПоВертикали);
МаксимальноеКоличествоСтрокГруппы = 1;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, МаксимальноеКоличествоСтрокГруппы);
ОбластьМСЧ = ТекТабличноеПоле.Область(
ВерхОбластиМногострочнойЧасти, , ВерхОбластиМногострочнойЧасти + МаксимальноеКоличествоСтрокГруппы - 1, );
ОбластьМСЧ.Имя = ИмяОбластиМСЧ;
КонецПроцедуры
&НаСервере
Процедура УдалитьНеобходимоеКоличествоДопСтрокНаСервере(ВыбТабличноеПоле, ВыбТабличноеПолеИмя, ИмяГруппыДопСтрок) Экспорт
ПромТаблицаДопСтрокРаздела = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппыДопСтрок, ПромТаблицаДопСтрокРаздела);
ПромТаблицаДопСтрокРаздела = ЭтаФорма[ПромТаблицаДопСтрокРаздела];
ИсходноеКоличествоСтрокГруппы = 0;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппыДопСтрок, ИсходноеКоличествоСтрокГруппы);
ТекущееКоличествоСтрок = ПромТаблицаДопСтрокРаздела.Количество();
Если ТекущееКоличествоСтрок > ИсходноеКоличествоСтрокГруппы Тогда
НСтр = ПромТаблицаДопСтрокРаздела.Количество();
Пока НСтр > ИсходноеКоличествоСтрокГруппы Цикл
ТекСтрокаТаблицы = ПромТаблицаДопСтрокРаздела[НСтр - 1];
ИмяПервойКолонки = ИмяГруппыДопСтрок + "01_";
ИмяПервойЯчейкиУдаляемойСтроки = ИмяПервойКолонки + НСтр;
ОбластьЯчейки = ВыбТабличноеПоле.Области[ИмяПервойЯчейкиУдаляемойСтроки];
НомерВерхЯчейкиОбласти = ОбластьЯчейки.Верх;
НомерНижнЯчейкиОбласти = ОбластьЯчейки.Низ;
РегламентированнаяОтчетностьВызовСервера.СпециальногоУдаленияСтроки(
ВыбТабличноеПоле, ВыбТабличноеПолеИмя, ИмяГруппыДопСтрок, НомерВерхЯчейкиОбласти, НомерНижнЯчейкиОбласти);
ПромТаблицаДопСтрокРаздела.Удалить(ТекСтрокаТаблицы);
НСтр = НСтр - 1;
КонецЦикла;
Если ВыбТабличноеПоле.Области.Найти("МногострочнаяЧасть") = Неопределено Тогда
ВыбТабличноеПоле.Область(НомерВерхЯчейкиОбласти - 1, , НомерНижнЯчейкиОбласти - 1).Имя = "МногострочнаяЧасть";
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СпециальногоДобавленияСтроки(ТекТабличноеПоле, ТекТабличноеПолеИмя, ИмяГруппы, НомерВерхЯчейкиОбласти, НомерНижнЯчейкиОбласти, СтруктураГруппы, НомерПоследнейСтроки, ВерхОбластиМногострочнойЧасти, ВысотаСтроки, ИмяОбластиМСЧ) Экспорт
КопияИсходнойОбласти = ТекТабличноеПоле.ПолучитьОбласть(НомерВерхЯчейкиОбласти, , НомерНижнЯчейкиОбласти, );
ПромежуточныйТД = Новый ТабличныйДокумент;
ПромежуточныйТД.Вывести(КопияИсходнойОбласти);
ПрямоугольныеОбласти = Новый Массив;
Для Каждого Область Из ПромежуточныйТД.Области Цикл
Если Область.ТипОбласти <> ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Продолжить;
КонецЕсли;
ПрямоугольныеОбласти.Добавить(Область);
КонецЦикла;
Для Каждого Область Из ПрямоугольныеОбласти Цикл
СоставляющиеИмени = СтроковыеФункцииКлиентСервер.РазложитьСтрокуВМассивПодстрок(Область.Имя, "_");
Если СтруктураГруппы[0].Свойство(СоставляющиеИмени[0])
ИЛИ СтрЧислоВхождений(СоставляющиеИмени[0],"УдалитьСтроку") > 0 Тогда
СоставляющиеИмени[1] = Формат(НомерПоследнейСтроки + 1, "ЧГ=");
НовоеИмя = СоставляющиеИмени[0];
НовоеИмя = НовоеИмя + "_" + СоставляющиеИмени[1];
Область.Имя = НовоеИмя;
Иначе
Область.Имя = Неопределено;
КонецЕсли;
Если Область.СодержитЗначение = Истина Тогда
Область.Очистить();
КонецЕсли;
КонецЦикла;
ВставляемаяОбласть = ПромежуточныйТД.Область(1, , ПромежуточныйТД.ВысотаТаблицы);
ПозицияВставки = ТекТабличноеПоле.Область(НомерНижнЯчейкиОбласти + 1, , НомерНижнЯчейкиОбласти + 1, );
ТекТабличноеПоле.ВставитьОбласть(ВставляемаяОбласть, ПозицияВставки, ТипСмещенияТабличногоДокумента.ПоВертикали, Ложь);
ОбластьМСЧ = ТекТабличноеПоле.Область(ВерхОбластиМногострочнойЧасти, , ВерхОбластиМногострочнойЧасти + ВысотаСтроки - 1, );
ОбластьМСЧ.Имя = ИмяОбластиМСЧ;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ВывестиЗначенияВМногострочнуюЧасть(Форма, СтруктураГруппы, ПолеТабличногоДокумента, ИмяГруппы)
Для Каждого СтрокаТаблицы Из СтруктураГруппы Цикл
НомерСтрокиВТаблице = СтруктураГруппы.Индекс(СтрокаТаблицы);
НомерСтрокиВФормеТаблицы = Формат(НомерСтрокиВТаблице + 1, "ЧГ=");
НачНомер = 1;
Для НомерГрафы = НачНомер По Форма.мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
КолонкаТаблицыИмя = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(КолонкаТаблицыИмя) Тогда
ИмяЯчейки = КолонкаТаблицыИмя + "_" + НомерСтрокиВФормеТаблицы;
ОбластьЯчейкиТаблицы = ПолеТабличногоДокумента.Области[ИмяЯчейки];
ЗначениеЯчейки = СтрокаТаблицы[КолонкаТаблицыИмя];
Если ОбластьЯчейкиТаблицы.СодержитЗначение = Истина Тогда
ОбластьЯчейкиТаблицы.Значение = ЗначениеЯчейки;
Иначе
ОбластьЯчейкиТаблицы.Текст = ЗначениеЯчейки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Очистить(ВыполняемоеОповещение = Неопределено) Экспорт
РегламентированнаяОтчетностьКлиент.Очистить(ЭтаФорма, ВыполняемоеОповещение);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьОтчет(Команда)
РегламентированнаяОтчетностьКлиент.МеханизмыОчисткиРегламентированныхОтчетов(ЭтаФорма, "ОчиститьВесьОтчет");
КонецПроцедуры
&НаСервере
Процедура ОчиститьНаСервере() Экспорт
СтруктураДанныхТаблица1.Очистить();
СтруктураДанныхТаблица1_1.Очистить();
СтруктураДанныхТаблица2.Очистить();
СтруктураДанныхТаблица3_4.Очистить();
СтруктураДанныхТаблица5.Очистить();
Для Каждого мнгРаздел Из мСтруктураМногострочныхРазделов Цикл
ЭтаФорма[мнгРаздел.Ключ].Очистить();
КонецЦикла;
НачальныеОперацииСМногострочнымиБлоками();
ЗаполнитьПустыеСтруктурыДанных();
Если НЕ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ОчиститьТабличноеПолеНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
РегламентированнаяОтчетностьКлиентСервер.ОчиститьВариантыЗаполнения(ЭтаФорма);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницу(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОчиститьТекущуюСтраницуЗавершение", ЭтотОбъект);
РегламентированнаяОтчетностьКлиент.МеханизмыОчисткиРегламентированныхОтчетов(
ЭтаФорма, "ОчиститьТекущийЭкземплярМногостраничногоРаздела"
+ Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим,
ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницуЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ЗначениеКорректировки = ТабличныйДокумент.Области.НомерКорректировки.Значение;
Если НЕ ЗначениеЗаполнено(ЗначениеКорректировки) Тогда
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
ЗначениеКорректировки = 0;
КонецЕсли;
НомерКорректировки = ЗначениеКорректировки;
СтруктураРеквизитовФормы.ВидДокумента = ?(ЗначениеКорректировки = 0, 0, 1);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчисткаРегламентированногоОтчетаНаСервере(ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста, РежимОчистки, Многостраничность, КолВоСтраницВРазделе) Экспорт
УдалятьсяВсеДопЭкземпляры = Ложь;
Если СтрНайти(РежимОчистки, "ОчиститьТекущийРаздел") > 0 Тогда
Если (Многостраничность) И (КолВоСтраницВРазделе > 1) Тогда
ОчиститьПоказателиОтчетаЗаполняемыеИзИБНаСервере(ИмяСтраницы);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
УдалятьсяВсеДопЭкземпляры = Истина;
Иначе
ОчиститьТабличноеПолеНаСервере(ИмяСтраницы);
КонецЕсли;
СформироватьДеревоРазделовОтчетаНаСервере();
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
ИначеЕсли СтрНайти(РежимОчистки, "ОчиститьТекущийЭкземплярМногостраничногоРаздела") > 0 Тогда
ОчиститьТабличноеПолеНаСервере(ИмяСтраницы);
КонецЕсли;
Если ИмяСтраницы = "Титульный" Тогда
ТабличныйДокумент.Область("НомерКорректировки").Значение = "000";
Если Элементы.Найти("ДатаПодписи") = Неопределено Тогда
Область = ТабличныйДокумент.Области.Найти("ДатаПодписи");
Если НЕ Область = Неопределено Тогда
Если ТипЗнч(Область.Значение) = Тип("Строка") Тогда
ДатаПодписи = Лев(СтрЗаменить(Область.Значение, ".", ""), 8);
ИначеЕсли ТипЗнч(Область.Значение) = Тип("Дата") Тогда
Если ЗначениеЗаполнено(Область.Значение) Тогда
ДатаПодписи = Лев(СтрЗаменить(Формат(Область.Значение, "ДФ = ""дд.ММ.гггг 'г.'"""), ".", ""), 8);
Иначе
ДатаПодписи = " ";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИмяСтраницы = "Таблица2" Тогда
П0000200161.Очистить();
П0000200162.Очистить();
П0000200163.Очистить();
П0000200161.Добавить();
П0000200162.Добавить();
П0000200163.Добавить();
ВывестиМакетСтраницыВТабличныйДокументНаСервере(ИмяСтраницы, 1);
КонецЕсли;
РегламентированнаяОтчетностьКлиентСервер.ПослеОчисткиРегламентированногоОтчета(
ЭтаФорма, ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста);
КонецПроцедуры
&НаКлиенте
Процедура ОчисткаРегламентированногоОтчетаНаКлиенте(ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста, РежимОчистки, Многостраничность, КолВоСтраницВРазделе) Экспорт
УдалятьсяВсеДопЭкземпляры = Ложь;
Если СтрНайти(РежимОчистки, "ОчиститьТекущийРаздел") > 0 Тогда
Если (Многостраничность) И (КолВоСтраницВРазделе > 1) Тогда
РегламентированнаяОтчетностьКлиентСервер.ОчиститьПоказателиОтчетаЗаполняемыеИзИБ(ЭтаФорма, ИмяСтраницы);
УдалятьсяВсеДопЭкземпляры = Истина;
Иначе
ОчиститьТабличноеПолеНаКлиенте(ИмяСтраницы);
КонецЕсли;
СформироватьДеревоРазделовОтчетаНаКлиенте();
ИначеЕсли СтрНайти(РежимОчистки, "ОчиститьТекущийЭкземплярМногостраничногоРаздела") > 0 Тогда
ОчиститьТабличноеПолеНаКлиенте(ИмяСтраницы);
КонецЕсли;
РегламентированнаяОтчетностьКлиентСервер.ПослеОчисткиРегламентированногоОтчета(
ЭтаФорма, ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста);
КонецПроцедуры
&НаСервере
Процедура ОчиститьПоказателиОтчетаЗаполняемыеИзИБНаСервере(НазванияМногостраничныхРазделовДляУдаления = "")
РегламентированнаяОтчетностьКлиентСервер.ОчиститьПоказателиОтчетаЗаполняемыеИзИБ(
ЭтаФорма, НазванияМногостраничныхРазделовДляУдаления);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуНастроек(Команда)
ОткрытьФормуВыбораСтраниц("ВыбратьДляНастройки");
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСтраниц(ВариантВыбора)
Перем ТекущийРазделОтчетаСокрНаим;
Перем НомерСтраницыРазделаОтчета;
Если НЕ Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
ТекущийРазделОтчетаСокрНаим = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
НомерСтраницыРазделаОтчета = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета;
КонецЕсли;
мПараметры = Новый Структура;
мПараметры.Вставить("ПроверкаСоотношений", Истина);
мПараметры.Вставить("РазрешитьВстроеннуюПечать", Ложь);
мПараметры.Вставить("Автосохранение", Ложь);
мПараметры.Вставить("СчетчикСтраниц", Истина);
мПараметры.Вставить("Выгрузка", Ложь);
мПараметры.Вставить("ИмеетсяРеквизитДеревоВыбранныхСтраниц", Истина);
мПараметры.Вставить("ИмяОтчета", "РегламентированныйОтчет4ФСС");
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФлажокОтклАвтоРасчет", СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыФормы.Вставить("мСчетчикСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
ПараметрыФормы.Вставить("мАвтоВыборКодов", СтруктураРеквизитовФормы.мАвтоВыборКодов);
ПараметрыФормы.Вставить("мИнтервалАвтосохранения", СтруктураРеквизитовФормы.мИнтервалАвтосохранения);
ПараметрыФормы.Вставить("мПроверятьСоотношенияПриПечатиИВыгрузки", СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
ПараметрыФормы.Вставить("мПараметры", мПараметры);
ФормаНастройкиОтчета = РегламентированнаяОтчетностьКлиент.ПолучитьОбщуюФормуПоИмени("НастройкиОтчета", ПараметрыФормы, ЭтаФорма);
мДеревоВыбранныхСтраниц.ПолучитьЭлементы().Очистить();
КопироватьДанныеФормы(мДеревоСтраницОтчета, ФормаНастройкиОтчета.Дерево);
ЗначениеАвторасчета = СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет;
ДополнительныеПараметры = Новый Структура(
"ЗначениеАвторасчета, ЗначениеЕдИзм, ЗначениеЗпт, НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим",
ЗначениеАвторасчета, НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОткрытьФормуВыбораСтраницЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФормаНастройкиОтчета.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ФормаНастройкиОтчета.ОписаниеОповещенияОЗакрытии = ОписаниеОповещения;
ФормаНастройкиОтчета.Открыть();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСтраницЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
ЗначениеАвторасчета = ДополнительныеПараметры.ЗначениеАвторасчета;
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
Модифицированность = Истина;
флЗначенияИдентичны = Истина;
Для Индекс = 0 По мДеревоСтраницОтчета.ПолучитьЭлементы().Количество() - 1 Цикл
Если НЕ мДеревоСтраницОтчета.ПолучитьЭлементы()[Индекс].ПоказатьСтраницу = мДеревоВыбранныхСтраниц.ПолучитьЭлементы()[Индекс].ПоказатьСтраницу Тогда
флЗначенияИдентичны = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЗначениеАвторасчета <> СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Если СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = Ложь Тогда
ДополнительныеПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ВопросПерерасчетВсехРассчитываемыхПоказателейЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ТекстВопроса = НСтр("ru='Будет произведен перерасчет всех рассчитываемых показателей. Продолжить?'");
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Иначе
#Если ВебКлиент Тогда
ИзменитьТаблицуВариантовЗаполненияНаСервере();
#Иначе
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
#КонецЕсли
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
Иначе
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПерерасчетВсехРассчитываемыхПоказателейЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = Истина;
Возврат;
КонецЕсли;
РасчетНаСервере();
#Если ВебКлиент Тогда
ИзменитьТаблицуВариантовЗаполненияНаСервере();
#Иначе
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
#КонецЕсли
Показатели = ТаблицаВариантыЗаполненияТитульный[0].ТаблицаВариантовЗаполнения.НайтиСтроки(
Новый Структура("ВариантЗаполнения", 4));
Для Каждого Показатель Из Показатели Цикл
Показатель.ВариантЗаполнения = 0;
КонецЦикла;
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ПослеОткрытияФормыВыбораСтраниц(ДополнительныеПараметры)
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
РегламентированнаяОтчетностьКлиент.ПоказатьСтраницыОтчетаНаКлиенте(ЭтаФорма);
Если НЕ флЗначенияИдентичны Тогда
СформироватьДеревоРазделовОтчетаНаКлиенте();
Если НЕ ТекущийРазделОтчетаСокрНаим = Неопределено Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
РазделыОтчета.ПолучитьЭлементы(), "КолонкаРазделыОтчетаСокрНаим", ТекущийРазделОтчетаСокрНаим);
Если НЕ НайденнаяСтрока = Неопределено И НЕ НомерСтраницыРазделаОтчета = Неопределено
И НайденнаяСтрока.ПолучитьЭлементы().Количество() > 0 Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
НайденнаяСтрока.ПолучитьЭлементы(), "КолонкаНомерСтраницыРазделаОтчета", НомерСтраницыРазделаОтчета);
КонецЕсли;
Если НЕ НайденнаяСтрока = Неопределено Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = НайденнаяСтрока.ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьТаблицуВариантовЗаполненияНаСервере()
ИмяТекущегоРаздела = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланк(Команда)
Отказ = Ложь;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Команда", Команда);
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьБланкЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередПечатьюРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланкЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Команда = ДополнительныеПараметры.Команда;
Печать(Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура АктивизироватьЯчейку(Ячейка) Экспорт
РегламентированнаяОтчетностьКлиент.АктивизироватьЯчейку(ЭтаФорма, Ячейка);
КонецПроцедуры
&НаКлиенте
Процедура Печать(ВидПечати, НеИзФормыОтчета = Ложь) Экспорт
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1. Формируется печатная форма...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Печать);
Если СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Истина Тогда
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС, Истина);
КонецЕсли;
Если НЕ ПечатьНаСервере(ВидПечати) Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ОткрытьФормуПредварительногоПросмотра(
ЭтаФорма, ВидПечати, , СтруктураРеквизитовФормы.СписокПечатаемыхЛистов);
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
КонецПроцедуры
&НаСервере
Функция ПечатьНаСервере(ВидПечати)
Если НЕ РегламентированнаяОтчетность.ПринтерДоступен() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед формированием печатных форм необходимо определить в системе принтер и задать его в качестве используемого по умолчанию.'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если ТипЗнч(мДеревоВыбранныхСтраниц) <> Тип("ДанныеФормыДерево") Тогда
Возврат Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мПечатныеФормы.Очистить();
СтруктураРеквизитовФормы.мРежимПечати = Истина;
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Ложь);
ДанныеРазделов = Новый Структура;
ДанныеРазделов.Вставить("Титульный", ЭтаФорма["СтруктураДанныхТитульный"]);
ДанныеРазделов.Вставить("Таблица1", ЭтаФорма["СтруктураДанныхТаблица1"]);
ДанныеРазделов.Вставить("Таблица1_1", ЭтаФорма["СтруктураДанныхТаблица1_1"]);
ДанныеРазделов.Вставить("Таблица2", ЭтаФорма["СтруктураДанныхТаблица2"]);
ДанныеРазделов.Вставить("Таблица3_4", ЭтаФорма["СтруктураДанныхТаблица3_4"]);
ДанныеРазделов.Вставить("Таблица5", ЭтаФорма["СтруктураДанныхТаблица5"]);
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы1], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3], Тип("ТаблицаЗначений")));
ПараметрыПечати = Новый Структура;
ПараметрыПечати.Вставить("ВыбраннаяФорма", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыПечати.Вставить("ДанныеРазделов", ДанныеРазделов);
ПараметрыПечати.Вставить("ВидПечати", ВидПечати);
ПараметрыПечати.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыПечати.Вставить("ДеревоВыбранныхСтраниц", ДанныеФормыВЗначение(мДеревоВыбранныхСтраниц,
Тип("ДеревоЗначений")));
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПечатныйБланк(ПараметрыПечати);
КопироватьДанныеФормы(мДеревоВыбранныхСтраниц, мДеревоСтраницОтчета);
Возврат Истина;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица1_1(Форма)
ПрефиксПоказателейРаздела = "П" + "00011";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица1_1 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица3_4(Форма)
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица3_4" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Если ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица3_4 Цикл
Если ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПоказательЗаполнен(ОбластьПоказателя)
Если ОбластьПоказателя.СодержитЗначение Тогда
ЗначениеОбласти = ОбластьПоказателя.Значение;
ТипЗначенияОбласти = ТипЗнч(ЗначениеОбласти);
Если ТипЗначенияОбласти = Тип("Число") Тогда
Возврат (ЗначениеОбласти <> 0);
ИначеЕсли ТипЗначенияОбласти = Тип("Строка") Тогда
Возврат (НЕ ПустаяСтрока(ЗначениеОбласти));
Иначе
Возврат ЗначениеЗаполнено(ЗначениеОбласти);
КонецЕсли;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Заголовок = ЗаголовокРегламентированногоОтчета(
СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета, СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ОргСтр = " (" + СтруктураРеквизитовФормы.Организация + ")";
Если СтрНайти(Заголовок, ОргСтр) = 0 Тогда
Заголовок = Заголовок + ОргСтр;
КонецЕсли;
Заголовок = Заголовок + ?(СтрНайти(ЭтаФорма.ИмяФормы, "Внешний") > 0, " - внешний отчет", "");
ПодключитьОбработчикОжидания("ВыполнитьПроверкуПередОткрытием", 0.1, Истина);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
Если РазделыОтчета.ПолучитьЭлементы().Количество() > 0 Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = РазделыОтчета.ПолучитьЭлементы()[0].ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПроверкуПередОткрытием()
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередОткрытиемФормыРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытииЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Модифицированность = Ложь;
Закрыть();
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.ПередЗакрытиемРегламентированногоОтчета(ЭтаФорма, Отказ, СтандартнаяОбработка, ЗавершениеРаботы, ТекстПредупреждения);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Если ЗавершениеРаботы Тогда
Возврат;
КонецЕсли;
ПриЗакрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииНаСервере()
РегламентированнаяОтчетность.ПриЗакрытииРегламентированногоОтчета(ЭтаФорма);
КонецПроцедуры
#Область ВыгрузкаВЭлектронномВиде
&НаКлиенте
Процедура Выгрузить(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВыгрузитьЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ВыгрузитьОтчет();
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьОтчет() Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения("ВыгрузитьОтчетЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьОтчетЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФормаВыгрузкиРеглОтчета = ПолучитьФорму("Документ.ВыгрузкаРегламентированныхОтчетов.Форма.ФормаДокумента", , ЭтаФорма);
СпДокОсн = Новый СписокЗначений;
СпДокОсн.Добавить(СтруктураРеквизитовФормы.мСохраненныйДок);
ФормаВыгрузкиРеглОтчета.СформироватьИЗаписать(СпДокОсн);
КонецПроцедуры
&НаКлиенте
Функция УниверсальнаяВыгрузка(ТекстВыгрузки = Неопределено, ПроверятьБлокировки = Истина) Экспорт
Перем ПараметрыВыгрузки;
Если Модифицированность Тогда
ТекстЗаголовка = ЗаголовокРегламентированногоОтчета(СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета, СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ОргСтр = " (" + СтруктураРеквизитовФормы.Организация + ")";
Если СтрНайти(ТекстЗаголовка, ОргСтр) = 0 Тогда
ТекстЗаголовка = ТекстЗаголовка + ОргСтр;
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Отчет """ + ТекстЗаголовка + """ не сохранен.";
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если Открыта() Тогда
Если СтруктураРеквизитовФормы.ЕдиницаИзмерения <> ПорядкиОкругленияОтчетности.ПеречислениеПорядкиОкругленияОтчетностиОкр1 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед выгрузкой необходимо установить единицу измерения ""в рублях"".'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения <> 2 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед выгрузкой необходимо установить точность ""2"".'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Истина Тогда
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС, Истина);
КонецЕсли;
КонецЕсли;
Если НЕ УниверсальнаяВыгрузкаНаСервере(ТекстВыгрузки, ПараметрыВыгрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Функция УниверсальнаяВыгрузкаНаСервере(ТекстВыгрузки, ПараметрыВыгрузки)
ПараметрыРеглОтчета = Новый Структура;
ПараметрыРеглОтчета.Вставить("СохраненныйОтчет", СтруктураРеквизитовФормы.мСохраненныйДок);
ПараметрыРеглОтчета.Вставить("ИсточникОтчета", СтруктураРеквизитовФормы.мСохраненныйДок.ИсточникОтчета);
ПараметрыРеглОтчета.Вставить("ВыбраннаяФорма", СтруктураРеквизитовФормы.мСохраненныйДок.ВыбраннаяФорма);
ПараметрыРеглОтчета.Вставить("РезультатВыгрузки", РегламентированнаяОтчетность.НовыйРезультатВыгрузкиРеглОтчета());
ПараметрыРеглОтчета.РезультатВыгрузки.ТаблицаСообщений = ЭтаФорма.ТаблицаСообщений;
РезультатВыгрузки = ОбъектОтчета(ЭтаФорма.ИмяФормы).УниверсальнаяВыгрузка(ПараметрыРеглОтчета);
Если РезультатВыгрузки.РеглОтчетВыгружен Тогда
ФайлВыгрузки = ПолучитьИзВременногоХранилища(РезультатВыгрузки.АдресФайлаВыгрузки);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
ФайлВыгрузки.Записать(ИмяВременногоФайла);
ЧтениеТекста = Новый ЧтениеТекста(ИмяВременногоФайла, РезультатВыгрузки.КодировкаФайлаВыгрузки);
ТекстВыгрузки = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ЧтениеТекста = Неопределено;
УдалитьФайлы(ИмяВременногоФайла);
КонецЕсли;
Возврат РезультатВыгрузки.РеглОтчетВыгружен;
КонецФункции
&НаСервере
Процедура СформироватьСтруктуруПоказателей()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.СформироватьСтруктуруПоказателей(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
СтруктураРеквизитовФормы,
мСтруктураДокУпПред);
КонецПроцедуры
&НаСервере
Функция СформироватьСтруктуруПараметров()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.СформироватьСтруктуруПараметров(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
СтруктураРеквизитовФормы);
КонецФункции
&НаСервере
Функция ИзвлечьСтруктуруXML()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ИзвлечьСтруктуруXML(СтруктураРеквизитовФормы.мВыбраннаяФорма);
КонецФункции
&НаСервере
Функция ВыгрузкаВозможна(ПараметрыВыгрузки, ДеревоВыгрузки)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ВыгрузкаВозможна(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
ПараметрыВыгрузки,
ДеревоВыгрузки,
ЭтаФорма,
СтруктураРеквизитовФормы);
КонецФункции
&НаСервере
Процедура ЗаполнитьДанными(ДеревоВыгрузки, ПараметрыВыгрузки)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ЗаполнитьДанными(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
ПараметрыВыгрузки,
ДеревоВыгрузки);
КонецПроцедуры
&НаСервере
Функция ПроверитьДанные(Узел)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ПроверитьДанные(СтруктураРеквизитовФормы.мВыбраннаяФорма, Узел, Этаформа);
КонецФункции
&НаСервере
Функция ПроверитьПоказатели() Экспорт
СформироватьСтруктуруПоказателей();
ПараметрыВыгрузки = СформироватьСтруктуруПараметров();
ДеревоВыгрузки = ИзвлечьСтруктуруXML();
ВыгрузкаВозможна = Истина;
Если НЕ ВыгрузкаВозможна(ПараметрыВыгрузки, ДеревоВыгрузки) Тогда
ВыгрузкаВозможна = Ложь;
КонецЕсли;
Если НЕ ВыгрузкаВозможна Тогда
Возврат Ложь;
КонецЕсли;
ЗаполнитьДанными(ДеревоВыгрузки, ПараметрыВыгрузки);
Если НЕ ПроверитьДанные(ДеревоВыгрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Процедура ПроверитьВыгрузку(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВыгрузкуЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ПроверитьВыгрузкуОтчета();
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуОтчета()
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВыгрузкуОтчетаЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуОтчетаЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФормаВыгрузкиРеглОтчета = ПолучитьФорму("Документ.ВыгрузкаРегламентированныхОтчетов.Форма.ФормаДокумента", , ЭтаФорма);
СпДокОсн = Новый СписокЗначений;
СпДокОсн.Добавить(СтруктураРеквизитовФормы.мСохраненныйДок);
ФормаВыгрузкиРеглОтчета.Проверить(СпДокОсн);
КонецПроцедуры
#КонецОбласти
#Область ЗагрузкаИзФайла
&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьИзФайлаЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередЗагрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ЗагрузитьИзФайлаОтчет();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаОтчет() Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьИзФайлаОтчетЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаОтчетЗавершение(Результат, ДополнительныеПараметры) Экспорт
РегламентированнаяОтчетностьЗагрузкаКлиент.ЗагрузитьИзФайлаОтчет(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ЗагрузкаОтчетаИзФайла(ДанныеДляЗагрузки) Экспорт
Если Модифицированность Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='Отчет ""%1"" не сохранен.'"), ЭтотОбъект.Заголовок);
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если НЕ ЗагрузкаОтчетаИзФайлаНаСервере(ДанныеДляЗагрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Функция ЗагрузкаОтчетаИзФайлаНаСервере(ДанныеДляЗагрузки)
СформироватьСтруктуруПоказателей();
ПараметрыОтчета = СформироватьСтруктуруПараметров();
ДеревоДляЗагрузки = ИзвлечьСтруктуруXML();
Если НЕ РегламентированнаяОтчетностьЗагрузка.ЗагрузкаОтчетаИзФайла(
ЭтотОбъект, ПараметрыОтчета, ДанныеДляЗагрузки, ДеревоДляЗагрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
#КонецОбласти
&НаКлиенте
Функция ДобавитьРеквизит(Текст, ДобСтрока, Префикс)
Если ЗначениеЗаполнено(ДобСтрока) Тогда
Текст = Текст + Префикс + ДобСтрока;
КонецЕсли;
Возврат Текст;
КонецФункции
&НаКлиенте
Процедура ТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
ОбластьИмя = Область.Имя;
Если СтрЧислоВхождений(Область.Имя, "ДобавитьСтроку") > 0 Тогда
СтандартнаяОбработка = Ложь;
ДобавитьСтроку();
ИначеЕсли СтрЧислоВхождений(Область.Имя, "УдалитьСтроку") > 0 И Область.Гиперссылка Тогда
СтандартнаяОбработка = Ложь;
УдалитьСтроку();
КонецЕсли;
Если РегламентированнаяОтчетностьКлиент.ВыбраннаяОбластьРегламентированногоОтчетаНеВерна(ЭтаФорма, Область, СтандартнаяОбработка) Тогда
Возврат;
КонецЕсли;
Если СтрНайти(ОбластьИмя, "ДокУпПред") > 0 Тогда
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СтруктураДокумента", мСтруктураДокУпПред);
ФормаВводаДокументПредставителя = ПолучитьФорму("Отчет.РегламентированныйОтчет4ФСС.Форма.ФормаВводаДокументПредставителя", ПараметрыФормы);
ФормаВводаДокументПредставителя.ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ОткрытьФормуВводаДокументаПредставителяЗавершение", ЭтотОбъект);
ФормаВводаДокументПредставителя.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ФормаВводаДокументПредставителя.Открыть();
ИначеЕсли ОбластьИмя = "П000010000001" ИЛИ ОбластьИмя = "П000010000002" Тогда
СтандартнаяОбработка = Ложь;
Область.Значение = ?(СокрЛП(Область.Значение) = "", "Х", "");
Модифицированность = Истина;
Иначе
ПараметрВводаПоля = СвойстваПоказателей.НайтиСтроки(Новый Структура("Показатель", ОбластьИмя));
Если ПараметрВводаПоля.Количество() = 0 Тогда
ПараметрВводаПоля = Неопределено;
Для Каждого Стр из СвойстваПоказателей Цикл
Если Лев(Область.Имя, СтрДлина(Стр.Показатель)) = Стр.Показатель Тогда
ПараметрВводаПоля = Стр;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ПараметрВводаПоля = ПараметрВводаПоля[0];
КонецЕсли;
Если ПараметрВводаПоля <> Неопределено И ПараметрВводаПоля.ТаблицаЗначений.Количество() > 0 Тогда
ВвестиПоказатель(Элемент, Область, ПараметрВводаПоля.Показатель, Ложь, ПараметрВводаПоля.ТекстПриВыборе, ПараметрВводаПоля.ТаблицаЗначений, СтандартнаяОбработка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриАктивизации(Элемент)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Если ТабличныйДокумент.ТекущаяОбласть = Неопределено Тогда
Возврат;
КонецЕсли;
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Ложь;
Если СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200161") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200162") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200163") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0001100001") > 0 Тогда
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Истина;
ПозицияЗнакаПодчеркивания = СтрНайти(ТабличныйДокумент.ТекущаяОбласть.Имя, "_");
Если НЕ ПозицияЗнакаПодчеркивания = Неопределено Тогда
КодОбласти = Лев(ТабличныйДокумент.ТекущаяОбласть.Имя, ПозицияЗнакаПодчеркивания);
Если НЕ ТабличныйДокумент.Области.Найти(КодОбласти + "2") = Неопределено Тогда
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВводаДокументаПредставителяЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
мСтруктураДокУпПред = Результат;
Текст = "";
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НаименованиеУдостоверяющего, "");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРимскиеЦифры, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРусскиеБуквы, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НомерУдостоверяющего, " № ");
Текст = ДобавитьРеквизит(Текст, Формат(мСтруктураДокУпПред.ДатаВыдачи,"ДФ=dd.MM.yyyy"), " от ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.КемВыдан, " выдан: ");
ТабличныйДокумент.Области.ДокУпПред.Значение = Текст;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриИзмененииСодержимогоОбласти(Элемент, Область)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Модифицированность = Истина;
ИмяРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
ИмяОбласти = Область.Имя;
ПозицияПодстроки = СтрНайти(ИмяОбласти, "_");
Если ПозицияПодстроки > 0 Тогда
ИмяОбласти = Лев(ИмяОбласти, ПозицияПодстроки - 1);
КонецЕсли;
Если СтрНайти(ИмяОбласти, "НомДопРасчета") > 0 Тогда
ЭтоОбластьПериода = (ИмяОбласти = "НомДопРасчета");
Если ЭтоОбластьПериода Тогда
КодПериода = Формат(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета, "ДФ=ММ");
Если КодПериода = "03" ИЛИ КодПериода = "06" ИЛИ КодПериода = "09" ИЛИ КодПериода = "12" Тогда
Если ПустаяСтрока(ТабличныйДокумент.Области.НомДопРасчета.Значение) Тогда
ТабличныйДокумент.Области.Период.Значение = КодПериода;
Иначе
ТабличныйДокумент.Области.Период.Значение = "";
ТабличныйДокумент.Области.НомДопРасчета.Значение =
РегламентированнаяОтчетностьКлиентСервер.ДополнитьСтроку(СокрЛП(ТабличныйДокумент.Области.НомДопРасчета.Значение), 2, "0", 0);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ИмяОбласти = "КодПодчиненности" Тогда
Если СтрДлина(СокрЛП(Область.Значение)) <> 5 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru = 'Введенное значение кода подчиненности должно состоять из 5 символов.'");
Сообщение.Сообщить();
Область.Значение = "";
КонецЕсли;
КонецЕсли;
Если ИмяОбласти = "НомерКорректировки" Тогда
Если НЕ ЗначениеЗаполнено(Область.Значение) Тогда
Область.Значение = "0";
КонецЕсли;
ОтобразитьНомерКорректировки(ЭтаФорма, Область.Значение);
РегламентированнаяОтчетностьКлиентСервер.УстановитьЗначениеОКВЭД(ДатаПодписи,
СтруктураРеквизитовФормы,
ТабличныйДокумент.Области.ОКВЭД.Значение);
ИначеЕсли ИмяОбласти = "ДатаПодписи" Тогда
ДатаПодписи = ТабличныйДокумент.Области.ДатаПодписи.Значение;
ДатаПодписиПриИзмененииНаСервере();
Модифицированность = Истина;
КонецЕсли;
РасчетНаКлиенте(ИмяРаздела, ИмяОбласти);
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, ИмяРаздела);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОтобразитьНомерКорректировки(Форма, ЗначениеКорректировки)
Форма.СтруктураРеквизитовФормы.ВидДокумента = ?(Число(ЗначениеКорректировки) = 0, 0, 1);
Форма.НомерКорректировки = Форма.СтруктураРеквизитовФормы.ВидДокумента * Число(ЗначениеКорректировки);
НомерКорректировкиСтрока = Формат(Форма.НомерКорректировки, "ЧН=0; ЧГ=");
СтрДлинаНомерКорректировкиСтрока = СтрДлина(НомерКорректировкиСтрока);
НомерКорректировкиСтрока = РегламентированнаяОтчетностьКлиентСервер.ДополнитьСтроку(НомерКорректировкиСтрока,3,"0",0);
Форма.ТабличныйДокумент.Области.НомерКорректировки.Значение = НомерКорректировкиСтрока;
Конецпроцедуры
&НаКлиенте
Процедура ЗаполнитьАвто(Команда)
Отказ = Ложь;
РегламентированнаяОтчетностьКлиентПереопределяемый.ПроверитьВозможностьАвтоЗаполненияРеглОтчета(ИмяФормы, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Команда", Команда);
ОписаниеОповещения = Новый ОписаниеОповещения("ЗаполнитьАвтоЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередЗаполнениемРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьАвтоЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Команда = ДополнительныеПараметры.Команда;
НачатьЗамерВремени();
ЗаполнитьАвтоНаСервере();
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
РегламентированнаяОтчетностьКлиент.ОбновитьДеревоРазделовВФормеОтчета(ЭтаФорма);
Если НЕ Элементы.РазделыОтчета.ТекущиеДанные.ПолучитьРодителя() = Неопределено Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = Элементы.РазделыОтчета.ТекущиеДанные.ПолучитьРодителя().ПолучитьЭлементы()[0].ПолучитьИдентификатор();
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьАвтоНаСервере()
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Ложь);
ЗаполнитьПустыеСтруктурыДанных();
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
Контейнер = Новый Структура();
Контейнер.Вставить("Титульный", СтруктураДанныхТитульный);
Контейнер.Вставить("Таблица1", СтруктураДанныхТаблица1);
Контейнер.Вставить("Таблица1_1", СтруктураДанныхТаблица1_1);
Контейнер.Вставить("Таблица1_1_ДанныеДопСтрок", П0001100001);
Контейнер.Вставить("Таблица2", СтруктураДанныхТаблица2);
Контейнер.Вставить("Таблица2_1_ДанныеДопСтрок", П0000200161);
Контейнер.Вставить("Таблица2_2_ДанныеДопСтрок", П0000200162);
Контейнер.Вставить("Таблица2_3_ДанныеДопСтрок", П0000200163);
Контейнер.Вставить("Таблица3_4", СтруктураДанныхТаблица3_4);
Контейнер.Вставить("Таблица5", СтруктураДанныхТаблица5);
ЭтаФормаИмя = ЭтаФорма.ИмяФормы;
Если СтрЧислоВхождений(ЭтаФормаИмя, "ВнешнийОтчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "ВнешнийОтчет.", "");
ИначеЕсли СтрЧислоВхождений(ЭтаФормаИмя, "Отчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "Отчет.", "");
КонецЕсли;
ЭтаФормаИмя = Лев(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") - 1);
РегламентированнаяОтчетностьПереопределяемый.ЗаполнитьОтчет(ЭтаФормаИмя, ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ПараметрыОтчета, Контейнер);
ЗаполнитьПустыеСтруктурыДанных();
Если П0001100001.Количество() = 0 Тогда
П0001100001.Добавить();
КонецЕсли;
Если П0000200161.Количество() = 0 Тогда
П0000200161.Добавить();
КонецЕсли;
Если П0000200162.Количество() = 0 Тогда
П0000200162.Добавить();
КонецЕсли;
Если П0000200163.Количество() = 0 Тогда
П0000200163.Добавить();
КонецЕсли;
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСтруктурыДанныхРазделовЗначениямиИзДопСтрок(
СтруктураРеквизитовФормы.мВыбраннаяФорма, Контейнер);
ВывестиМакетВТаблДокНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере();
Для Каждого Страница Из мДеревоСтраницОтчета.ПолучитьЭлементы() Цикл
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, Страница.ИмяСтраницы);
КонецЦикла;
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура Расшифровать(Команда)
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыОтчета.Вставить("ЗначениеТекущегоПоказателя", Элементы.ТабличныйДокумент.ТекущаяОбласть.Текст);
ИДИменПоказателей = Новый Массив();
ИДИменПоказателей.Добавить(Элементы.ТабличныйДокумент.ТекущаяОбласть.Имя);
РегламентированнаяОтчетностьКлиент.ОткрытьРасшифровкуОтчета(
ИмяОтчета(ЭтаФорма.ИмяФормы),
ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ИДИменПоказателей, ПараметрыОтчета);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РазделЗаполнен(Форма, ИмяСтраницы)
Если ИмяСтраницы = "Таблица1_1" Тогда
Возврат ЗаполненаТаблица1_1(Форма);
ИначеЕсли ИмяСтраницы = "Таблица3_4" Тогда
Возврат ЗаполненаТаблица3_4(Форма);
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ВключитьПечатьЗаполненногоНеобязательногоРаздела(Форма, ИмяРаздела)
ОбязательныеРазделы = Новый Массив;
ОбязательныеРазделы.Добавить("Титульный");
ОбязательныеРазделы.Добавить("Таблица1");
ОбязательныеРазделы.Добавить("Таблица2");
ОбязательныеРазделы.Добавить("Таблица5");
Если ОбязательныеРазделы.Найти(ИмяРаздела) <> Неопределено Тогда
Возврат;
КонецЕсли;
НастройкиСтраницыРаздела = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
Форма.мДеревоВыбранныхСтраниц.ПолучитьЭлементы(), "ИмяСтраницы", ИмяРаздела);
Если НастройкиСтраницыРаздела = Неопределено Тогда
Возврат;
КонецЕсли;
ВРазделеОтключенаПечать = (НастройкиСтраницыРаздела.ВыводНаПечать = 0);
Если ВРазделеОтключенаПечать И РазделЗаполнен(Форма, ИмяРаздела) Тогда
НастройкиСтраницыРаздела.ВыводНаПечать = 1;
КонецЕсли;
КопироватьДанныеФормы(Форма.мДеревоВыбранныхСтраниц, Форма.мДеревоСтраницОтчета);
КонецПроцедуры
&НаСервере
Функция ПреобразованноеИмяПоказателя(ИсходноеИмя)
СписокПреобразования = "П000020016101,П000020016104,П000020016105,
|П000020016201,П000020016204,П000020016205,
|П000020016301,П000020016304,П000020016305";
Если СтрНайти(СписокПреобразования, ИсходноеИмя) <> 0 Тогда
Результат = ИсходноеИмя + "_1";
Иначе
Результат = ИсходноеИмя;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция НачатьЗамерВремени()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент").ЗамерВремени(КлючеваяОперация, , Истина);
КонецЕсли;
КонецФункции
&НаСервереБезКонтекста
Функция ЗначениеТаймера()
ВыполнятьЗамерыПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительностиВызовСервераПовтИсп").ВыполнятьЗамерыПроизводительности();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности")
И ВыполнятьЗамерыПроизводительности Тогда
Возврат ОценкаПроизводительности.НачатьЗамерВремени();
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаписатьЗамер(ВремяНачала)
Если ВремяНачала <> Неопределено И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности").ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернете(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВИнтернетеЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернетеЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПроверитьВИнтернете(ЭтаФорма, "ФСС");
КонецПроцедуры
#Область ПанельОтправкиВКонтролирующиеОрганы
&НаКлиенте
Процедура ОбновитьОтправку(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОбновитьОтправкуИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПротоколНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьПротоколИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьНеотправленноеИзвещение(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОтправитьНеотправленноеИзвещениеИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ЭтапыОтправкиНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьСостояниеОтправкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьКритическиеОшибкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаНаименованиеЭтапаНажатие(Элемент)
ПараметрыИзменения = Новый Структура;
ПараметрыИзменения.Вставить("Форма", ЭтаФорма);
ПараметрыИзменения.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыИзменения.Вставить("КонтролирующийОрган",
ПредопределенноеЗначение("Перечисление.ТипыКонтролирующихОрганов.ФСС"));
РегламентированнаяОтчетностьКлиент.ИзменитьСтатусОтправки(ПараметрыИзменения);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрган(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередОтправкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ОтправитьВКонтролирующийОрганЗавершение", ЭтотОбъект);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрганЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПриНажатииНаКнопкуОтправкиВКонтролирующийОрган(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаСервере
Функция ОбъектОтчета(ЭтаФормаИмя) Экспорт
Если мОбъектОтчета = Неопределено Тогда
мОбъектОтчета = РегламентированнаяОтчетностьВызовСервера.ОбъектОтчета(ЭтаФормаИмя);
КонецЕсли;
Возврат мОбъектОтчета;
КонецФункции
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", ЭтаФорма);
Оповещение = Новый ОписаниеОповещения("ПослеСохраненияФормыЗавершение", ЭтотОбъект, ДополнительныеПараметры);
СохранитьНаКлиенте(, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСохраненияФормыЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДополнительныеПараметры.Форма.Закрыть();
КонецПроцедуры
&НаСервере
Процедура РазрешитьРедактированиеРеквизитовОбъекта() Экспорт
РегламентированнаяОтчетность.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
РегламентированнаяОтчетностьКлиент.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьПрисоединенныеФайлы(Команда)
РегламентированнаяОтчетностьКлиент.СохранитьОтчетИОткрытьФормуПрисоединенныеФайлы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийПриИзменении(Элемент)
Модифицированность = Истина;
КонецПроцедуры
#Область МеханизмПроверкиКонтрольныхСоотношений
&НаКлиенте
Процедура Проверить(Команда)
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС);
КонецПроцедуры
&НаСервере
Функция ПроверитьКонтрольныеСоотношенияВОтчете() Экспорт
СформироватьСтруктуруПоказателей();
СтруктураРеквизитовФормы.ТекстДляЗаголовочнойЧасти =
РегламентированнаяОтчетностьКлиентСервер.ПредставлениеДокументаРеглОтч(СтруктураРеквизитовФормы.мСохраненныйДок);
СтруктураРезультата = Новый Структура;
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", 0);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", 0);
СтруктураРезультата.Вставить("СтруктураОшибок", Новый Структура);
Если СписокРасшифровкиПоказателей = Неопределено Тогда
СписокРасшифровкиПоказателей = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиПоказателей();
Иначе
СписокРасшифровкиПоказателей.Очистить();
КонецЕсли;
Если СписокРасшифровкиформулы = Неопределено Тогда
СписокРасшифровкиформулы = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиформулы();
Иначе
СписокРасшифровкиформулы.Очистить();
КонецЕсли;
СчетчикФормулДляРасшифровок = 0;
ПроверитьКС_Тит_ЧислИнвалидов(СтруктураРезультата);
ПроверитьКС_Тит_ЧислВред(СтруктураРезультата);
ПроверитьКС_Т1_Ст9(СтруктураРезультата);
ПроверитьКС_Т1_Ст5(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр03_3(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр03_4а(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр03_4б(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр03_5(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр04(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр05(СтруктураРезультата);
ПроверитьКС_Т1_Ст1Гр06(СтруктураРезультата);
ПроверитьКС_Т1_Ст2Гр03_9(СтруктураРезультата);
ПроверитьКС_Т1_Ст2Гр03_10а(СтруктураРезультата);
ПроверитьКС_Т1_Ст2Гр03_10б(СтруктураРезультата);
ПроверитьКС_Т1_Ст3Гр03_12(СтруктураРезультата);
ПроверитьКС_Т1_Ст3Гр03_13а(СтруктураРезультата);
ПроверитьКС_Т1_Ст3Гр03_13б(СтруктураРезультата);
ПроверитьКС_Т1_Ст4Гр03_18(СтруктураРезультата);
ПроверитьКС_Т1_Ст4Гр03_19а(СтруктураРезультата);
ПроверитьКС_Т1_Ст4Гр03_19б(СтруктураРезультата);
ПроверитьКС_Т1_Ст4Гр03_20(СтруктураРезультата);
ПроверитьКС_Т1_Ст4Гр03_21(СтруктураРезультата);
ПроверитьКС_Т11_Гр06_1(СтруктураРезультата);
ПроверитьКС_Т11_Гр06_2(СтруктураРезультата);
ПроверитьКС_Т11_Гр08(СтруктураРезультата);
ПроверитьКС_Т11_Гр10(СтруктураРезультата);
ПроверитьКС_Т11_Гр12(СтруктураРезультата);
ПроверитьКС_Т11_Гр07(СтруктураРезультата);
ПроверитьКС_Т2_Ст10Гр03_1а(СтруктураРезультата);
ПроверитьКС_Т2_Ст10Гр03_1б(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_2а(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_2б(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4а_2м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4а_3м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4б_2м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4б_3м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4г_2м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4г_3м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4д_2м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр01_4д_3м(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр03_5а(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр03_5б(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр03_5г(СтруктураРезультата);
ПроверитьКС_Т2_Ст20Гр03_5д(СтруктураРезультата);
ПроверитьКС_Т2_Ст80Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст90Гр03_7а(СтруктураРезультата);
ПроверитьКС_Т2_Ст90Гр03_7б(СтруктураРезультата);
ПроверитьКС_Т2_Ст90Гр03_8(СтруктураРезультата);
ПроверитьКС_Т2_Ст100Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст110Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст120Гр03_11а(СтруктураРезультата);
ПроверитьКС_Т2_Ст120Гр03_11б(СтруктураРезультата);
ПроверитьКС_Т2_Ст120Гр03_12(СтруктураРезультата);
ПроверитьКС_Т2_Ст130Гр03_13а(СтруктураРезультата);
ПроверитьКС_Т2_Ст130Гр03_13б(СтруктураРезультата);
ПроверитьКС_Т2_Ст140Гр03_14а(СтруктураРезультата);
ПроверитьКС_Т2_Ст140Гр03_14б(СтруктураРезультата);
ПроверитьКС_Т2_Ст150Гр01_15а(СтруктураРезультата);
ПроверитьКС_Т2_Ст150Гр01_15б(СтруктураРезультата);
ПроверитьКС_Т2_Ст150Гр03_16(СтруктураРезультата);
ПроверитьКС_Т2_Ст150Гр3_17(СтруктураРезультата);
ПроверитьКС_Т2_Ст160Гр01_18а(СтруктураРезультата);
ПроверитьКС_Т2_Ст160Гр01_18б(СтруктураРезультата);
ПроверитьКС_Т2_Ст160Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст180Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст19Гр3_21а(СтруктураРезультата);
ПроверитьКС_Т2_Ст19Гр3_21б(СтруктураРезультата);
ПроверитьКС_Т2_Ст200Гр03(СтруктураРезультата);
ПроверитьКС_Т2_Ст8_9Гр03(СтруктураРезультата);
ПроверитьКС_Т3_Ст1Гр03(СтруктураРезультата);
ПроверитьКС_Т3_Ст1Гр04(СтруктураРезультата);
ПроверитьКС_Т3_Ст4Гр03(СтруктураРезультата);
ПроверитьКС_Т3_Ст4Гр04(СтруктураРезультата);
ПроверитьКС_Т3_Ст7Гр03(СтруктураРезультата);
ПроверитьКС_Т3_Ст7Гр04(СтруктураРезультата);
ПроверитьКС_Т3_Ст10Гр04(СтруктураРезультата);
ПроверитьКС_Т3_Ст11Гр04(СтруктураРезультата);
ПроверитьКС_Т4_Ст2Гр03(СтруктураРезультата);
ПроверитьКС_Т4_Ст4Гр03(СтруктураРезультата);
ПроверитьКС_Т4_Ст5Гр03(СтруктураРезультата);
ПроверитьКС_Т5_Ст1Гр03(СтруктураРезультата);
ПроверитьКС_Т5_Ст1Гр04(СтруктураРезультата);
ПроверитьКС_Т5_Ст2Гр07_3(СтруктураРезультата);
ПроверитьКС_Т5_Ст2Гр07_4(СтруктураРезультата);
ПроверитьКС_Т5_Ст2Гр07_5(СтруктураРезультата);
Если СписокРасшифровкиПоказателей.Количество() > 0 Тогда
СтруктураРезультата.Вставить("СписокРасшифровкиПоказателей",
ПоместитьВоВременноеХранилище(СписокРасшифровкиПоказателей, Новый УникальныйИдентификатор));
КонецЕсли;
Если СписокРасшифровкиформулы.Количество() > 0 Тогда
АдресВоВременномХранилище = ПоместитьВоВременноеХранилище(СписокРасшифровкиформулы, Новый УникальныйИдентификатор);
СтруктураРезультата.Вставить("СписокРасшифровкиформулы", АдресВоВременномХранилище);
КонецЕсли;
Возврат СтруктураРезультата;
КонецФункции
&НаСервере
Процедура ПроверитьКС_Тит_ЧислИнвалидов(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка титульного листа (КС 3)'");
ОписаниеКС = НСтр("ru='Показатель ""Численность работающих инвалидов"" больше 0, если значение Таблицы 1 строки 4 графы 3 больше 0'");
ОписаниеОшибки = НСтр("ru=''");
ЧислИнвалидов = ПоказательПоСтроке("ЧислИнвалидов");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Титульный, ЧислИнвалидов);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(ЧислИнвалидов, "Титульный");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
КС = ПоказателиКС(ЧислИнвалидов.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " > " + КС.ПраваяЧастьСтр + ", когда " + Т1_Ст4Гр03.ЗначениеСтр + " > 0";
УсловиеВыполнено = (Т1_Ст4Гр03.Значение > 0);
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть > КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки);
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Тит_ЧислВред(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка титульного листа (КС 4)'");
ОписаниеКС = НСтр("ru='Показатель ""Численность работников, занятых на работах с вредными и (или) опасными производственными факторами"" больше 0, если значение Таблицы 5 строки 2 графы 7 больше 0'");
ОписаниеОшибки = НСтр("ru=''");
ЧислВред = ПоказательПоСтроке("ЧислВред");
Т5_Ст2Гр07 = ПоказательПоСтроке("Т5_Ст2Гр07");
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
ВставитьЗначениеПоказателя(Титульный, ЧислВред);
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст2Гр07);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(ЧислВред, "Титульный");
ВнестиПоказательВРасшифровку(Т5_Ст2Гр07, "Таблица5");
КС = ПоказателиКС(ЧислВред.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " > " + КС.ПраваяЧастьСтр + ", когда " + Т5_Ст2Гр07.ЗначениеСтр + " > 0";
УсловиеВыполнено = (Т5_Ст2Гр07.Значение > 0);
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть > КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки);
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст9(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 1)'");
ОписаниеКС = НСтр("ru='Значение строки 9 = строка 5 * (1 - строка 6 / 100 + строка 7 / 100), полученное значение округляется до двух десятичных знаков после запятой'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т1_Ст5 = ПоказательПоСтроке("Т1_Ст5");
Т1_Ст6 = ПоказательПоСтроке("Т1_Ст6");
Т1_Ст7 = ПоказательПоСтроке("Т1_Ст7");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст5);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст6);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст7);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст5, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст6, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст7, "Таблица1");
КС = ПоказателиКС(Т1_Ст9.Значение, Окр(Т1_Ст5.Значение * (1 - Т1_Ст6.Значение / 100 + Т1_Ст7.Значение / 100), 2));
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст5.ЗначениеСтр + " * (1 - " + Т1_Ст6.ЗначениеСтр + " / 100 + "
+ Т1_Ст7.ЗначениеСтр + " / 100) Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст5(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 2)'");
ОписаниеКС = НСтр("ru='Значение строки 5 больше 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст5 = ПоказательПоСтроке("Т1_Ст5");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст5);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст5, "Таблица1");
КС = ПоказателиКС(Т1_Ст5.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " > " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть > КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр03_3(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 3)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 больше или равно 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр03 = ПоказательПоСтроке("Т1_Ст1Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр03_4а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 4а)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 равно сумме значений строки 1 по графам 4, 5, 6, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр03 = ПоказательПоСтроке("Т1_Ст1Гр03");
Т1_Ст1Гр04 = ПоказательПоСтроке("Т1_Ст1Гр04");
Т1_Ст1Гр05 = ПоказательПоСтроке("Т1_Ст1Гр05");
Т1_Ст1Гр06 = ПоказательПоСтроке("Т1_Ст1Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр06, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр03.Значение, Т1_Ст1Гр04.Значение + Т1_Ст1Гр05.Значение + Т1_Ст1Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст1Гр04.ЗначениеСтр + " + " + Т1_Ст1Гр05.ЗначениеСтр + " + "
+ Т1_Ст1Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр03_4б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 4б)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 равно сумме значений строки 1 по графам 4, 5, 6 + Таблица 1 строка 1 графа 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица1ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица1;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т1_Ст1Гр03 = ПоказательПоСтроке("Т1_Ст1Гр03");
Т1_Ст1Гр04 = ПоказательПоСтроке("Т1_Ст1Гр04");
Т1_Ст1Гр05 = ПоказательПоСтроке("Т1_Ст1Гр05");
Т1_Ст1Гр06 = ПоказательПоСтроке("Т1_Ст1Гр06");
Т1_Ст1Гр03ПНП = ПоказательПоСтроке("Т1_Ст1Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр06);
ВставитьЗначениеПоказателя(Таблица1ПНП, Т1_Ст1Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст1Гр06, "Таблица1");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т1_Ст1Гр03ПНП, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр03.Значение, Т1_Ст1Гр04.Значение + Т1_Ст1Гр05.Значение + Т1_Ст1Гр06.Значение + Т1_Ст1Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст1Гр04.ЗначениеСтр + " + " + Т1_Ст1Гр05.ЗначениеСтр + " + "
+ Т1_Ст1Гр06.ЗначениеСтр + " + " + Т1_Ст1Гр03ПНП.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр03_5(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 5)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 равно сумме значений строк 2, 3 по графе 3'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр03 = ПоказательПоСтроке("Т1_Ст1Гр03");
Т1_Ст2Гр03 = ПоказательПоСтроке("Т1_Ст2Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр03.Значение, Т1_Ст2Гр03.Значение + Т1_Ст3Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр03.ЗначениеСтр + " + " + Т1_Ст3Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 6)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 4 равно сумме значений строк 2, 3 по графе 4'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр04 = ПоказательПоСтроке("Т1_Ст1Гр04");
Т1_Ст2Гр04 = ПоказательПоСтроке("Т1_Ст2Гр04");
Т1_Ст3Гр04 = ПоказательПоСтроке("Т1_Ст3Гр04");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр04, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр04.Значение, Т1_Ст2Гр04.Значение + Т1_Ст3Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр04.ЗначениеСтр + " + " + Т1_Ст3Гр04.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр05(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 7)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 5 равно сумме значений строк 2, 3 по графе 5'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр05 = ПоказательПоСтроке("Т1_Ст1Гр05");
Т1_Ст2Гр05 = ПоказательПоСтроке("Т1_Ст2Гр05");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр05.Значение, Т1_Ст2Гр05.Значение + Т1_Ст3Гр05.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр05.ЗначениеСтр + " + " + Т1_Ст3Гр05.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст1Гр06(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 8)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 6 равно сумме значений строк 2, 3 по графе 6'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст1Гр06 = ПоказательПоСтроке("Т1_Ст1Гр06");
Т1_Ст2Гр06 = ПоказательПоСтроке("Т1_Ст2Гр06");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст1Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст1Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
КС = ПоказателиКС(Т1_Ст1Гр06.Значение, Т1_Ст2Гр06.Значение + Т1_Ст3Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр06.ЗначениеСтр + " + " + Т1_Ст3Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст2Гр03_9(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 9)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 больше или равно 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст2Гр03 = ПоказательПоСтроке("Т1_Ст2Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст2Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст2Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст2Гр03_10а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 10а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно сумме значений строки 2 по графам 4, 5, 6, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст2Гр03 = ПоказательПоСтроке("Т1_Ст2Гр03");
Т1_Ст2Гр04 = ПоказательПоСтроке("Т1_Ст2Гр04");
Т1_Ст2Гр05 = ПоказательПоСтроке("Т1_Ст2Гр05");
Т1_Ст2Гр06 = ПоказательПоСтроке("Т1_Ст2Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст2Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр06, "Таблица1");
КС = ПоказателиКС(Т1_Ст2Гр03.Значение, Т1_Ст2Гр04.Значение + Т1_Ст2Гр05.Значение + Т1_Ст2Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр04.ЗначениеСтр + " + " + Т1_Ст2Гр05.ЗначениеСтр + " + "
+ Т1_Ст2Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст2Гр03_10б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 10б)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно сумме значений строки 1 по графам 4, 5, 6 + Таблица 1 строка 2 графа 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица1ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица1;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т1_Ст2Гр03 = ПоказательПоСтроке("Т1_Ст2Гр03");
Т1_Ст2Гр04 = ПоказательПоСтроке("Т1_Ст2Гр04");
Т1_Ст2Гр05 = ПоказательПоСтроке("Т1_Ст2Гр05");
Т1_Ст2Гр06 = ПоказательПоСтроке("Т1_Ст2Гр06");
Т1_Ст2Гр03ПНП = ПоказательПоСтроке("Т1_Ст2Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст2Гр06);
ВставитьЗначениеПоказателя(Таблица1ПНП, Т1_Ст2Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст2Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст2Гр06, "Таблица1");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т1_Ст2Гр03ПНП, "Таблица1");
КС = ПоказателиКС(Т1_Ст2Гр03.Значение, Т1_Ст2Гр04.Значение + Т1_Ст2Гр05.Значение + Т1_Ст2Гр06.Значение + Т1_Ст2Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст2Гр04.ЗначениеСтр + " + " + Т1_Ст2Гр05.ЗначениеСтр + " + "
+ Т1_Ст2Гр06.ЗначениеСтр + " + " + Т1_Ст2Гр03ПНП.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст3Гр03_12(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 12)'");
ОписаниеКС = НСтр("ru='Значение строки 3 графы 3 больше или равно 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст3Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст3Гр03_13а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 13а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно сумме значений строки 3 по графам 4, 5, 6, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст3Гр04 = ПоказательПоСтроке("Т1_Ст3Гр04");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
КС = ПоказателиКС(Т1_Ст3Гр03.Значение, Т1_Ст3Гр04.Значение + Т1_Ст3Гр05.Значение + Т1_Ст3Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст3Гр04.ЗначениеСтр + " + " + Т1_Ст3Гр05.ЗначениеСтр + " + "
+ Т1_Ст3Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст3Гр03_13б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 13б)'");
ОписаниеКС = НСтр("ru='Значение строки 3 графы 3 равно сумме значений строки 3 по графам 4, 5, 6 + Таблица 1 строка 3 графа 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица1ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица1;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст3Гр04 = ПоказательПоСтроке("Т1_Ст3Гр04");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Т1_Ст3Гр03ПНП = ПоказательПоСтроке("Т1_Ст3Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
ВставитьЗначениеПоказателя(Таблица1ПНП, Т1_Ст3Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т1_Ст3Гр03ПНП, "Таблица1");
КС = ПоказателиКС(Т1_Ст3Гр03.Значение, Т1_Ст3Гр04.Значение + Т1_Ст3Гр05.Значение + Т1_Ст3Гр06.Значение + Т1_Ст3Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст3Гр04.ЗначениеСтр + " + " + Т1_Ст3Гр05.ЗначениеСтр + " + "
+ Т1_Ст3Гр06.ЗначениеСтр + " + " + Т1_Ст3Гр03ПНП.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст4Гр03_18(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 12)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 больше или равно 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст4Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст4Гр03_19а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 19а)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 равно сумме значений строки 4 по графам 4, 5, 6, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Т1_Ст4Гр04 = ПоказательПоСтроке("Т1_Ст4Гр04");
Т1_Ст4Гр05 = ПоказательПоСтроке("Т1_Ст4Гр05");
Т1_Ст4Гр06 = ПоказательПоСтроке("Т1_Ст4Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр06, "Таблица1");
КС = ПоказателиКС(Т1_Ст4Гр03.Значение, Т1_Ст4Гр04.Значение + Т1_Ст4Гр05.Значение + Т1_Ст4Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст4Гр04.ЗначениеСтр + " + " + Т1_Ст4Гр05.ЗначениеСтр + " + "
+ Т1_Ст4Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст4Гр03_19б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 19б)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 равно сумме значений строки 4 по графам 4, 5, 6 + Таблица 1 строка 4 графа 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица1ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица1;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Т1_Ст4Гр04 = ПоказательПоСтроке("Т1_Ст4Гр04");
Т1_Ст4Гр05 = ПоказательПоСтроке("Т1_Ст4Гр05");
Т1_Ст4Гр06 = ПоказательПоСтроке("Т1_Ст4Гр06");
Т1_Ст4Гр03ПНП = ПоказательПоСтроке("Т1_Ст4Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр04);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр06);
ВставитьЗначениеПоказателя(Таблица1ПНП, Т1_Ст4Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр04, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр06, "Таблица1");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т1_Ст4Гр03ПНП, "Таблица1");
КС = ПоказателиКС(Т1_Ст4Гр03.Значение, Т1_Ст4Гр04.Значение + Т1_Ст4Гр05.Значение + Т1_Ст4Гр06.Значение + Т1_Ст4Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст4Гр04.ЗначениеСтр + " + " + Т1_Ст4Гр05.ЗначениеСтр + " + "
+ Т1_Ст4Гр06.ЗначениеСтр + " + " + Т1_Ст4Гр03ПНП.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст4Гр03_20(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 20)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 меньше или равно значения строки 3 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
КС = ПоказателиКС(Т1_Ст4Гр03.Значение, Т1_Ст3Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т1_Ст4Гр03_21(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1 (КС 21)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 равно 0, если значение показателя ""Численность работающих инвалидов"" равно 0'");
ОписаниеОшибки = НСтр("ru=''");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
ЧислИнвалидов = ПоказательПоСтроке("ЧислИнвалидов");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Титульный, ЧислИнвалидов);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(ЧислИнвалидов, "Титульный");
КС = ПоказателиКС(Т1_Ст4Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + ЧислИнвалидов.ЗначениеСтр + " = 0.";
УсловиеВыполнено = (ЧислИнвалидов.Значение = 0);
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр06_1(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 1)'");
ОписаниеКС = НСтр("ru='Сумма всех строк по графе 6 меньше или равно Таблица 1 строка 3 графа 3'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр06 = ПоказательПоСтроке("Т11_Гр06");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр06 = 0;
СуммаГр06Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр06, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр06, "Таблица1_1");
СуммаГр06 = СуммаГр06 + Т11_Гр06.Значение;
СуммаГр06Стр = СуммаГр06Стр + Т11_Гр06.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
КС = ПоказателиКС(СуммаГр06, Т1_Ст3Гр03.Значение);
Расшифровка = РасшифровкаВСтр(СуммаГр06Стр) + " Итог [" + КС.ЛеваяЧастьСтр + "] <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр06_2(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 2)'");
ОписаниеКС = НСтр("ru='В строке %1 значение графы 6 по каждой строке больше или равно графы 7'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр06 = ПоказательПоСтроке("Т11_Гр06");
Т11_Гр07 = ПоказательПоСтроке("Т11_Гр07");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд));
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр06, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр07, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр06, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр07, "Таблица1_1");
КС = ПоказателиКС(Т11_Гр06.Значение, Т11_Гр07.Значение);
Расшифровка = Т11_Гр06.ЗначениеСтр + " >= " + Т11_Гр07.ЗначениеСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр08(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 3)'");
ОписаниеКС = НСтр("ru='В строке %1 значение графы 8 по каждой строке больше или равно графы 9'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр08 = ПоказательПоСтроке("Т11_Гр08");
Т11_Гр09 = ПоказательПоСтроке("Т11_Гр09");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд));
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр08, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр09, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр08, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр09, "Таблица1_1");
КС = ПоказателиКС(Т11_Гр08.Значение, Т11_Гр09.Значение);
Расшифровка = Т11_Гр08.ЗначениеСтр + " >= " + Т11_Гр09.ЗначениеСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр10(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 4)'");
ОписаниеКС = НСтр("ru='В строке %1 значение графы 10 по каждой строке больше или равно графы 11'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр10 = ПоказательПоСтроке("Т11_Гр10");
Т11_Гр11 = ПоказательПоСтроке("Т11_Гр11");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд));
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр10, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр11, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр10, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр11, "Таблица1_1");
КС = ПоказателиКС(Т11_Гр10.Значение, Т11_Гр11.Значение);
Расшифровка = Т11_Гр10.ЗначениеСтр + " >= " + Т11_Гр11.ЗначениеСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр12(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 5)'");
ОписаниеКС = НСтр("ru='В строке %1 значение графы 12 по каждой строке больше или равно графы 13'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр12 = ПоказательПоСтроке("Т11_Гр12");
Т11_Гр13 = ПоказательПоСтроке("Т11_Гр13");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд));
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр12, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр13, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр12, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр13, "Таблица1_1");
КС = ПоказателиКС(Т11_Гр12.Значение, Т11_Гр13.Значение);
Расшифровка = Т11_Гр12.ЗначениеСтр + " >= " + Т11_Гр13.ЗначениеСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, Инд),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т11_Гр07(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 1.1 (КС 6)'");
ОписаниеКС = НСтр("ru='Сумма всех строк по графе 7 меньше или равно Таблица 1 строка 4 графа 3'");
ОписаниеОшибки = НСтр("ru=''");
Т11_Гр07 = ПоказательПоСтроке("Т11_Гр07");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр07 = 0;
СуммаГр07Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр07, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр07, "Таблица1_1");
СуммаГр07 = СуммаГр07 + Т11_Гр07.Значение;
СуммаГр07Стр = СуммаГр07Стр + Т11_Гр07.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
КС = ПоказателиКС(СуммаГр07, Т1_Ст4Гр03.Значение);
Расшифровка = РасшифровкаВСтр(СуммаГр07Стр) + " Итог [" + КС.ЛеваяЧастьСтр + "] <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст10Гр03_1а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 1а)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 равно значению строки 19 ""Задолженность за страхователем"" графы 3 за предыдущий расчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
ТекущийГод = Год(ОкончаниеПериодаОтчета);
Если ТекущийГод > 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Ст190Гр03ПНП = ПоказательПоСтроке("Т2_Ст190Гр03");
ТаблицаПНПСтр = "Таблица2";
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ТекущийГод = 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, -112, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаРаздел2_7;
Ст190Гр03ПНП = ПоказательПоСтроке("Т7_Ст190Гр03ПНП");
ТаблицаПНПСтр = "Раздел2_7";
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст10Гр03 = ПоказательПоСтроке("Т2_Ст10Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст10Гр03);
ВставитьЗначениеПоказателя(ТаблицаПНП, Ст190Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст10Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Ст190Гр03ПНП, ТаблицаПНПСтр);
КС = ПоказателиКС(Т2_Ст10Гр03.Значение, Ст190Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст10Гр03_1б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 1б)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 равно значению строки 1 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст10Гр03 = ПоказательПоСтроке("Т2_Ст10Гр03");
Т2_Ст10Гр03ПНП = ПоказательПоСтроке("Т2_Ст10Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст10Гр03);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст10Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст10Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст10Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст10Гр03.Значение, Т2_Ст10Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_2а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 2а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1, показатель ""на начало отчетного периода"" равно 0, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст20Гр01 = ПоказательПоСтроке("Т2_Ст20Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст20Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст20Гр01.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_2б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 2б)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1, показатель ""на начало отчетного периода"" равно значению строки 2 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст20Гр01 = ПоказательПоСтроке("Т2_Ст20Гр01");
Т2_Ст20Гр03ПНП = ПоказательПоСтроке("Т2_Ст20Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр01);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст20Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст20Гр01, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст20Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст20Гр01.Значение, Т2_Ст20Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 3)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно сумме строки 2 графы 1, показатель ""на начало отчетного периода"" + показатель ""за последние три месяца отчетного периода""'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т2_Ст20Гр01 = ПоказательПоСтроке("Т2_Ст20Гр01");
Т2_Ст24Гр01 = ПоказательПоСтроке("Т2_Ст24Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр01);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст24Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст20Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст24Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст20Гр03.Значение, Т2_Ст20Гр01.Значение + Т2_Ст24Гр01.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст20Гр01.ЗначениеСтр + " + " + Т2_Ст24Гр01.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4а_2м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""2 месяц"" равно (Таблица 1 строка 3 графа 5 – Таблица 1 строка 4 графа 5 + 0,6 * Таблица 1 строка 4 графа 5) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст22Гр01 = ПоказательПоСтроке("Т2_Ст22Гр01");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст4Гр05 = ПоказательПоСтроке("Т1_Ст4Гр05");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст22Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст22Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст22Гр01.Значение, (Т1_Ст3Гр05.Значение - Т1_Ст4Гр05.Значение + 0.6 * Т1_Ст4Гр05.Значение) * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = (" + Т1_Ст3Гр05.ЗначениеСтр + " - " + Т1_Ст4Гр05.ЗначениеСтр + " + 0,6 * " + Т1_Ст4Гр05.ЗначениеСтр + ") * "
+ Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4а_3м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""3 месяц"" равно (Таблица 1 строка 3 графа 6 – Таблица 1 строка 4 графа 6 + 0,6 * Таблица 1 строка 4 графа 6) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст23Гр01 = ПоказательПоСтроке("Т2_Ст23Гр01");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Т1_Ст4Гр06 = ПоказательПоСтроке("Т1_Ст4Гр06");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст23Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст23Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст23Гр01.Значение, (Т1_Ст3Гр06.Значение - Т1_Ст4Гр06.Значение + 0.6 * Т1_Ст4Гр06.Значение) * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = (" + Т1_Ст3Гр06.ЗначениеСтр + " - " + Т1_Ст4Гр06.ЗначениеСтр + " + 0,6 * " + Т1_Ст4Гр06.ЗначениеСтр + ") * "
+ Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4б_2м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4б)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""2 месяц"" равно (Таблица 1 строка 3 графа 5 * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст22Гр01 = ПоказательПоСтроке("Т2_Ст22Гр01");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст22Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст22Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст22Гр01.Значение, Т1_Ст3Гр05.Значение * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст3Гр05.ЗначениеСтр + " * " + Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
Кс = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4б_3м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4б)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""3 месяц"" равно (Таблица 1 строка 3 графа 6 * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст23Гр01 = ПоказательПоСтроке("Т2_Ст23Гр01");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст23Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст23Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст23Гр01.Значение, Т1_Ст3Гр06.Значение * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т1_Ст3Гр06.ЗначениеСтр + " * " + Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4г_2м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4г)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""2 месяц"" равно (Таблица 1 строка 3 графа 5 – Таблица 1 строка 4 графа 5 - Таблица 1.1 сумма строк по графе 10 + "
+ "Таблица 1.1 сумма строк по графе 11 + 0,6 * (Таблица 1 строка 4 графа 5 - Таблица 1.1 сумма строк по графе 11) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст22Гр01 = ПоказательПоСтроке("Т2_Ст22Гр01");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст4Гр05 = ПоказательПоСтроке("Т1_Ст4Гр05");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр10 = ПоказательПоСтроке("Т11_Гр10");
Т11_Гр11 = ПоказательПоСтроке("Т11_Гр11");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст22Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр10 = 0; СуммаГр10Стр = "";
СуммаГр11 = 0; СуммаГр11Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр10, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр11, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр10, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр11, "Таблица1_1");
СуммаГр10 = СуммаГр10 + Т11_Гр10.Значение;
СуммаГр11 = СуммаГр11 + Т11_Гр11.Значение;
СуммаГр10Стр = СуммаГр10Стр + Т11_Гр10.ЗначениеСтр + " + ";
СуммаГр11Стр = СуммаГр11Стр + Т11_Гр11.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст22Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст22Гр01.Значение, (Т1_Ст3Гр05.Значение - Т1_Ст4Гр05.Значение - СуммаГр10 + СуммаГр11 + 0.6 * Т1_Ст4Гр05.Значение - СуммаГр11) * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = (" + Т1_Ст3Гр05.ЗначениеСтр + " - " + Т1_Ст4Гр05.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр10Стр) + ") + (" + РасшифровкаВСтр(СуммаГр11Стр)
+ ") + 0,6 * (" + Т1_Ст4Гр05.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр11Стр) + ")) * " + Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4г_3м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4г)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""3 месяц"" равно (Таблица 1 строка 3 графа 6 – Таблица 1 строка 4 графа 6 - Таблица 1.1 сумма строк по графе 12 + "
+ "Таблица 1.1 сумма строк по графе 13 + 0,6 * (Таблица 1 строка 4 графа 6 - Таблица 1.1 сумма строк по графе 13) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст23Гр01 = ПоказательПоСтроке("Т2_Ст23Гр01");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Т1_Ст4Гр06 = ПоказательПоСтроке("Т1_Ст4Гр06");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр12 = ПоказательПоСтроке("Т11_Гр12");
Т11_Гр13 = ПоказательПоСтроке("Т11_Гр13");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст23Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр12 = 0; СуммаГр12Стр = "";
СуммаГр13 = 0; СуммаГр13Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр12, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр13, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр12, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр13, "Таблица1_1");
СуммаГр12 = СуммаГр12 + Т11_Гр12.Значение;
СуммаГр13 = СуммаГр13 + Т11_Гр13.Значение;
СуммаГр12Стр = СуммаГр12Стр + Т11_Гр12.ЗначениеСтр + " + ";
СуммаГр13Стр = СуммаГр13Стр + Т11_Гр13.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст23Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст23Гр01.Значение, (Т1_Ст3Гр06.Значение - Т1_Ст4Гр06.Значение - СуммаГр12 + СуммаГр13 + 0.6 * Т1_Ст4Гр06.Значение - СуммаГр13) * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = (" + Т1_Ст3Гр06.ЗначениеСтр + " - " + Т1_Ст4Гр06.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр12Стр) + ") + (" + РасшифровкаВСтр(СуммаГр13Стр)
+ ") + 0,6 * (" + Т1_Ст4Гр06.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр13Стр) + ")) * " + Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4д_2м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4д)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""2 месяц"" равно 0,6 * (Таблица 1 строка 3 графа 5 – Таблица 1.1 сумма строк по графе 10) * Таблица 1 строка 9 / 100"
+ " сумма начислений Таблица 1.1 по всем строкам за соответствующий месяц +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст22Гр01 = ПоказательПоСтроке("Т2_Ст22Гр01");
Т1_Ст3Гр05 = ПоказательПоСтроке("Т1_Ст3Гр05");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр10 = ПоказательПоСтроке("Т11_Гр10");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст22Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр05);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр10 = 0; СуммаГр10Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр10, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр10, "Таблица1_1");
СуммаГр10 = СуммаГр10 + Т11_Гр10.Значение;
СуммаГр10Стр = СуммаГр10Стр + Т11_Гр10.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст22Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр05, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст22Гр01.Значение, 0.6 * (Т1_Ст3Гр05.Значение - СуммаГр10) * Т1_Ст9.Значение / 100 + СуммаГр10);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + "0,6 * (" + Т1_Ст3Гр05.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр10Стр) + ")) * " + Т1_Ст9.ЗначениеСтр + " / 100 + (" + РасшифровкаВСтр(СуммаГр10Стр) + ") Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр01_4д_3м(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 4д)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 1 показатель ""3 месяц"" равно 0,6 * (Таблица 1 строка 3 графа 6 – Таблица 1.1 сумма строк по графе 11) * Таблица 1 строка 9 / 100"
+ " сумма начислений Таблица 1.1 по всем строкам за соответствующий месяц +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст23Гр01 = ПоказательПоСтроке("Т2_Ст23Гр01");
Т1_Ст3Гр06 = ПоказательПоСтроке("Т1_Ст3Гр06");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр11 = ПоказательПоСтроке("Т11_Гр11");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст23Гр01);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр06);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр11 = 0; СуммаГр11Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр11, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр11, "Таблица1_1");
СуммаГр11 = СуммаГр11 + Т11_Гр11.Значение;
СуммаГр11Стр = СуммаГр11Стр + Т11_Гр11.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст23Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр06, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст23Гр01.Значение, 0.6 * (Т1_Ст3Гр06.Значение - СуммаГр11) * Т1_Ст9.Значение / 100 + СуммаГр11);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + "0,6 * (" + Т1_Ст3Гр06.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр11Стр) + ")) * " + Т1_Ст9.ЗначениеСтр + " / 100 + (" + РасшифровкаВСтр(СуммаГр11Стр) + ") Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр03_5а(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 5а)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно (Таблица 1 строка 3 графа 3 – Таблица 1 строка 4 графа 3 + 0,6 * Таблица 1 строка 4 графа 3) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст20Гр03.Значение, (Т1_Ст3Гр03.Значение - Т1_Ст4Гр03.Значение + 0.6 * Т1_Ст4Гр03.Значение) * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = (" + Т1_Ст3Гр03.ЗначениеСтр + " - " + Т1_Ст4Гр03.ЗначениеСтр + " + 0,6 * " + Т1_Ст4Гр03.ЗначениеСтр + ") * "
+ Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр03_5б(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "отсутствует Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 5б)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно (0,6 * Таблица 1 строка 3 графа 3) * Таблица 1 строка 9 / 100 +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = НЕ РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст20Гр03.Значение, 0.6 * Т1_Ст3Гр03.Значение * Т1_Ст9.Значение / 100);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + "0,6 * " + Т1_Ст3Гр03.ЗначениеСтр + " * " + Т1_Ст9.ЗначениеСтр + " / 100" + " Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр03_5г(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" не установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 5г)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно ((Таблица 1 строка 3 графа 3 – Таблица 1 строка 4 графа 3 - Таблица 1.1 сумма строк по графе 6 + Таблица 1.1 сумма строк по графе 7 "
+ "+ 0,6 * (Таблица 1 строка 4 графа 3 - Таблица 1.1 сумма строк по графе 7)) * Таблица 1 строка 9 / 100 + сумма начислений Таблица 1.1 по всем строкам +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст4Гр03 = ПоказательПоСтроке("Т1_Ст4Гр03");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр06 = ПоказательПоСтроке("Т11_Гр06");
Т11_Гр07 = ПоказательПоСтроке("Т11_Гр07");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр06 = 0; СуммаГр06Стр = "";
СуммаГр07 = 0; СуммаГр07Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр06, Инд);
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр07, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр06, "Таблица1_1");
ВнестиПоказательВРасшифровку(Т11_Гр07, "Таблица1_1");
СуммаГр06 = СуммаГр06 + Т11_Гр06.Значение;
СуммаГр07 = СуммаГр07 + Т11_Гр07.Значение;
СуммаГр06Стр = СуммаГр06Стр + Т11_Гр06.ЗначениеСтр + " + ";
СуммаГр07Стр = СуммаГр07Стр + Т11_Гр07.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст4Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст20Гр03.Значение, ((Т1_Ст3Гр03.Значение - Т1_Ст4Гр03.Значение - СуммаГр06 + СуммаГр07 + 0.6 * (Т1_Ст4Гр03.Значение - СуммаГр07)) * Т1_Ст9.Значение / 100) + СуммаГр06);
Расшифровка = КС.ЛеваяЧастьСтр + " = ((" + Т1_Ст3Гр03.ЗначениеСтр + " - " + Т1_Ст4Гр03.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр06Стр) + ") + (" + РасшифровкаВСтр(СуммаГр07Стр)
+ ") + 0,6 * (" + Т1_Ст4Гр03.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр06Стр) + "))) * " + Т1_Ст9.ЗначениеСтр + " / 100 + (" + РасшифровкаВСтр(СуммаГр06Стр) + ") Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст20Гр03_5д(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "заполнена Таблица 1.1 и признак ""Льгота 60%"" установлен";
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 5д)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 равно (0,6 * (Таблица 1 строка 3 графа 3 - Таблица 1.1 сумма строк по графе 6)) * Таблица 1 строка 9 / 100 + "
+ "сумма начислений Таблица 1.1 по всем строкам +- 1 рубль, когда %1'");
ОписаниеОшибки = НСтр("ru=''");
Льгота60Процентов = ?(ЗначениеЗаполнено(СтруктураДанныхТаблица1.П000010000002), 1, 0);
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т1_Ст3Гр03 = ПоказательПоСтроке("Т1_Ст3Гр03");
Т1_Ст9 = ПоказательПоСтроке("Т1_Ст9");
Т11_Гр06 = ПоказательПоСтроке("Т11_Гр06");
Таблица1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1;
Таблица1_1 = мДанныеОтчета.ПолеТабличногоДокументаТаблица1_1;
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст3Гр03);
ВставитьЗначениеПоказателя(Таблица1, Т1_Ст9);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр));
КолвоСтрокВМногострочнойЧасти = ПоказательВходитВМногострочнуюЧасть(ЭтаФорма, "П000110000110_");
СуммаГр06 = 0; СуммаГр06Стр = "";
Для Инд = 1 По КолвоСтрокВМногострочнойЧасти Цикл
ВставитьЗначениеМногострочногоПоказателя(Таблица1_1, Т11_Гр06, Инд);
ВнестиПоказательВРасшифровку(Т11_Гр06, "Таблица1_1");
СуммаГр06 = СуммаГр06 + Т11_Гр06.Значение;
СуммаГр06Стр = СуммаГр06Стр + Т11_Гр06.ЗначениеСтр + " + ";
КонецЦикла;
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т1_Ст3Гр03, "Таблица1");
ВнестиПоказательВРасшифровку(Т1_Ст9, "Таблица1");
УсловиеВыполнено = РазделЗаполнен(ЭтаФорма, "Таблица1_1") И (Льгота60Процентов = 1);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т2_Ст20Гр03.Значение, (0.6 * (Т1_Ст3Гр03.Значение - СуммаГр06)) * Т1_Ст9.Значение / 100 + СуммаГр06);
Расшифровка = КС.ЛеваяЧастьСтр + " = ( 0,6 * (" + Т1_Ст3Гр03.ЗначениеСтр + " - (" + РасшифровкаВСтр(СуммаГр06Стр) + "))) * " + Т1_Ст9.ЗначениеСтр + " / 100 + ("
+ РасшифровкаВСтр(СуммаГр06Стр) + ") Итог [" + КС.ПраваяЧастьСтр + "] +- 1";
Иначе
КС = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КССучетомОтклонения(КС.ЛеваяЧасть, КС.ПраваяЧасть, 1)) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст80Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 6)'");
ОписаниеКС = НСтр("ru='Значение строки 8 графы 3 равно сумме строк 1-7 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст10Гр03 = ПоказательПоСтроке("Т2_Ст10Гр03");
Т2_Ст20Гр03 = ПоказательПоСтроке("Т2_Ст20Гр03");
Т2_Ст30Гр03 = ПоказательПоСтроке("Т2_Ст30Гр03");
Т2_Ст40Гр03 = ПоказательПоСтроке("Т2_Ст40Гр03");
Т2_Ст50Гр03 = ПоказательПоСтроке("Т2_Ст50Гр03");
Т2_Ст60Гр03 = ПоказательПоСтроке("Т2_Ст60Гр03");
Т2_Ст70Гр03 = ПоказательПоСтроке("Т2_Ст70Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст10Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст20Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст30Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст40Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст50Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст60Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст70Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст10Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст20Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст30Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст40Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст50Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст60Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст70Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст80Гр03.Значение, Т2_Ст10Гр03.Значение + Т2_Ст20Гр03.Значение + Т2_Ст30Гр03.Значение + Т2_Ст40Гр03.Значение
+ Т2_Ст50Гр03.Значение + Т2_Ст60Гр03.Значение + Т2_Ст70Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст10Гр03.ЗначениеСтр + " + " + Т2_Ст20Гр03.ЗначениеСтр + " + " + Т2_Ст30Гр03.ЗначениеСтр
+ " + " + Т2_Ст40Гр03.ЗначениеСтр + " + " + Т2_Ст50Гр03.ЗначениеСтр + " + " + Т2_Ст60Гр03.ЗначениеСтр + " + "
+ Т2_Ст70Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст90Гр03_7а(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 7а)'");
ОписаниеКС = НСтр("ru='Значение строки 9 графы 3 равно строка 18 графа 3 - строка 8 графа 3, если значение строки 18 графы 3 больше значения строки 8 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст90Гр03 = ПоказательПоСтроке("Т2_Ст90Гр03");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст90Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст90Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
УсловиеВыполнено = Т2_Ст180Гр03.Значение > Т2_Ст80Гр03.Значение;
РасшифровкаУсловия = Т2_Ст180Гр03.ЗначениеСтр + " > " + Т2_Ст80Гр03.ЗначениеСтр;
ЗначениеПравойЧасти = Т2_Ст180Гр03.Значение - Т2_Ст80Гр03.Значение;
КС = ПоказателиКС(Т2_Ст90Гр03.Значение, ЗначениеПравойЧасти);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + РасшифровкаУсловия;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст90Гр03_7б(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 7б)'");
ОписаниеКС = НСтр("ru='Значение строки 9 графы 3 равно 0, если значение строки 18 графы 3 меньше или равно значения строки 8 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст90Гр03 = ПоказательПоСтроке("Т2_Ст90Гр03");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст90Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст90Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
УсловиеВыполнено = Т2_Ст180Гр03.Значение <= Т2_Ст80Гр03.Значение;
РасшифровкаУсловия = Т2_Ст180Гр03.ЗначениеСтр + " <= " + Т2_Ст80Гр03.ЗначениеСтр;
КС = ПоказателиКС(Т2_Ст90Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + РасшифровкаУсловия;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст90Гр03_8(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 8)'");
ОписаниеКС = НСтр("ru='Значение строки 9 графы 3 равно сумме строк 10 и 11 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст90Гр03 = ПоказательПоСтроке("Т2_Ст90Гр03");
Т2_Ст100Гр03 = ПоказательПоСтроке("Т2_Ст100Гр03");
Т2_Ст110Гр03 = ПоказательПоСтроке("Т2_Ст110Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст90Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст100Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст110Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст90Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст100Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст110Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст90Гр03.Значение, Т2_Ст100Гр03.Значение + Т2_Ст110Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст100Гр03.ЗначениеСтр + " + " + Т2_Ст110Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст100Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 9)'");
ОписаниеКС = НСтр("ru='Значение строки 10 графы 3 равно 0, если значения строк 13 и 15 по графе 3 равны 0'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст100Гр03 = ПоказательПоСтроке("Т2_Ст100Гр03");
Т2_Ст130Гр03 = ПоказательПоСтроке("Т2_Ст130Гр03");
Т2_Ст150Гр03 = ПоказательПоСтроке("Т2_Ст150Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст100Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст130Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст100Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст130Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст150Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст100Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + Т2_Ст130Гр03.ЗначениеСтр + " = 0 и "
+ Т2_Ст150Гр03.ЗначениеСтр + " = 0";
УсловиеВыполнено = Т2_Ст130Гр03.Значение = 0 И Т2_Ст150Гр03.Значение = 0;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст110Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 10)'");
ОписаниеКС = НСтр("ru='Значение строки 11 графы 3 равно 0, если значения строк 14 и 16 по графе 3 равны 0'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст110Гр03 = ПоказательПоСтроке("Т2_Ст110Гр03");
Т2_Ст140Гр03 = ПоказательПоСтроке("Т2_Ст140Гр03");
Т2_Ст160Гр03 = ПоказательПоСтроке("Т2_Ст160Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст110Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст140Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст110Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст140Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст160Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст110Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + Т2_Ст140Гр03.ЗначениеСтр + " = 0 и "
+ Т2_Ст160Гр03.ЗначениеСтр + " = 0";
УсловиеВыполнено = Т2_Ст140Гр03.Значение = 0 И Т2_Ст160Гр03.Значение = 0;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст120Гр03_11а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 11а)'");
ОписаниеКС = НСтр("ru='Значение строки 12 графы 3 равно значению строки 9 графы 3 за предыдущий расчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
ТекущийГод = Год(ОкончаниеПериодаОтчета);
Если ТекущийГод > 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Ст90Гр03ПНП = ПоказательПоСтроке("Т2_Ст90Гр03");
ТаблицаПНПСтр = "Таблица2";
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ТекущийГод = 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, -112, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаРаздел2_7;
Ст90Гр03ПНП = ПоказательПоСтроке("Т7_Ст90Гр03ПНП");
ТаблицаПНПСтр = "Раздел2_7";
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст120Гр03 = ПоказательПоСтроке("Т2_Ст120Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст120Гр03);
ВставитьЗначениеПоказателя(ТаблицаПНП, Ст90Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст120Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Ст90Гр03ПНП, ТаблицаПНПСтр);
КС = ПоказателиКС(Т2_Ст120Гр03.Значение, Ст90Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст120Гр03_11б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 11б)'");
ОписаниеКС = НСтр("ru='Значение строки 12 графы 3 равно значению строки 12 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст120Гр03 = ПоказательПоСтроке("Т2_Ст120Гр03");
Т2_Ст120Гр03ПНП = ПоказательПоСтроке("Т2_Ст120Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст120Гр03);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст120Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст120Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст120Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст120Гр03.Значение, Т2_Ст120Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст120Гр03_12(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 12)'");
ОписаниеКС = НСтр("ru='Значение строки 12 графы 3 равно сумме строк 13 и 14 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст120Гр03 = ПоказательПоСтроке("Т2_Ст120Гр03");
Т2_Ст130Гр03 = ПоказательПоСтроке("Т2_Ст130Гр03");
Т2_Ст140Гр03 = ПоказательПоСтроке("Т2_Ст140Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст120Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст130Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст140Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст120Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст130Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст140Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст120Гр03.Значение, Т2_Ст130Гр03.Значение + Т2_Ст140Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст130Гр03.ЗначениеСтр + " + " + Т2_Ст140Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст130Гр03_13а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 13а)'");
ОписаниеКС = НСтр("ru='Значение строки 13 графы 3 равно значению строки 10 ""за счет превышения расходов"" графы 3 за предыдущий расчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
ТекущийГод = Год(ОкончаниеПериодаОтчета);
Если ТекущийГод > 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Ст100Гр03ПНП = ПоказательПоСтроке("Т2_Ст100Гр03");
ТаблицаПНПСтр = "Таблица2";
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ТекущийГод = 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, -112, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаРаздел2_7;
Ст100Гр03ПНП = ПоказательПоСтроке("Т7_Ст100Гр03ПНП");
ТаблицаПНПСтр = "Раздел2_7";
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст130Гр03 = ПоказательПоСтроке("Т2_Ст130Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст130Гр03);
ВставитьЗначениеПоказателя(ТаблицаПНП, Ст100Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст130Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Ст100Гр03ПНП, ТаблицаПНПСтр);
КС = ПоказателиКС(Т2_Ст130Гр03.Значение, Ст100Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст130Гр03_13б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 13б)'");
ОписаниеКС = НСтр("ru='Значение строки 13 графы 3 равно значению строки 13 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст130Гр03 = ПоказательПоСтроке("Т2_Ст130Гр03");
Т2_Ст130Гр03ПНП = ПоказательПоСтроке("Т2_Ст130Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст130Гр03);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст130Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст130Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст130Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст130Гр03.Значение, Т2_Ст130Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст140Гр03_14а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 14а)'");
ОписаниеКС = НСтр("ru='Значение строки 14 графы 3 равно значению строки 11 ""за счет переплаты взносов"" графы 3 за предыдущий расчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
ТекущийГод = Год(ОкончаниеПериодаОтчета);
Если ТекущийГод > 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Ст110Гр03ПНП = ПоказательПоСтроке("Т2_Ст110Гр03");
ТаблицаПНПСтр = "Таблица2";
Иначе
Возврат;
КонецЕсли;
ИначеЕсли ТекущийГод = 2017 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, -112, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
ТаблицаПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаРаздел2_7;
Ст110Гр03ПНП = ПоказательПоСтроке("Т7_Ст110Гр03ПНП");
ТаблицаПНПСтр = "Раздел2_7";
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст140Гр03 = ПоказательПоСтроке("Т2_Ст140Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст140Гр03);
ВставитьЗначениеПоказателя(ТаблицаПНП, Ст110Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст140Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Ст110Гр03ПНП, ТаблицаПНПСтр);
КС = ПоказателиКС(Т2_Ст140Гр03.Значение, Ст110Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст140Гр03_14б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 14б)'");
ОписаниеКС = НСтр("ru='Значение строки 14 графы 3 равно значению строки 14 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст140Гр03 = ПоказательПоСтроке("Т2_Ст140Гр03");
Т2_Ст140Гр03ПНП = ПоказательПоСтроке("Т2_Ст140Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст140Гр03);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст140Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст140Гр03, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст140Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст140Гр03.Значение, Т2_Ст140Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст150Гр01_15а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 15а)'");
ОписаниеКС = НСтр("ru='Значение строки 15 графы 1, показатель ""на начало отчетного периода"" равно 0, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст150Гр01 = ПоказательПоСтроке("Т2_Ст150Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст150Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст150Гр01.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст150Гр01_15б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 15б)'");
ОписаниеКС = НСтр("ru='Значение строки 15 графы 1, показатель ""на начало отчетного периода"" равно значению строки 15 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст150Гр01 = ПоказательПоСтроке("Т2_Ст150Гр01");
Т2_Ст150Гр03ПНП = ПоказательПоСтроке("Т2_Ст150Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр01);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст150Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст150Гр01, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст150Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст150Гр01.Значение, Т2_Ст150Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст150Гр03_16(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 16)'");
ОписаниеКС = НСтр("ru='Значение строки 15 графы 3 равно сумме строки 15 графы 1, показатель ""на начало отчетного периода"" + показатель ""за последние три месяца отчетного периода""'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст150Гр03 = ПоказательПоСтроке("Т2_Ст150Гр03");
Т2_Ст150Гр01 = ПоказательПоСтроке("Т2_Ст150Гр01");
Т2_Ст154Гр01 = ПоказательПоСтроке("Т2_Ст154Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр01);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст154Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст150Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст150Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст154Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст150Гр03.Значение, Т2_Ст150Гр01.Значение + Т2_Ст154Гр01.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст150Гр01.ЗначениеСтр + " + " + Т2_Ст154Гр01.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр
+ "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст150Гр3_17(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 17)'");
ОписаниеКС = НСтр("ru='Значение строки 15 графы 3 равно значению таблицы 3 строки 10 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст150Гр03 = ПоказательПоСтроке("Т2_Ст150Гр03");
Т3_Ст10Гр04 = ПоказательПоСтроке("Т3_Ст10Гр04");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст10Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст150Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т3_Ст10Гр04, "Таблица3_4");
КС = ПоказателиКС(Т2_Ст150Гр03.Значение, Т3_Ст10Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст160Гр01_18а(СтруктураРезультата)
Если НЕ РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 18а)'");
ОписаниеКС = НСтр("ru='Значение строки 16 графы 1, показатель ""на начало отчетного периода"" равно 0, если расчет за 1-й квартал'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст160Гр01 = ПоказательПоСтроке("Т2_Ст160Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст160Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст160Гр01.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст160Гр01_18б(СтруктураРезультата)
Если РасчетЗаКвартал(1) Тогда
Возврат;
КонецЕсли;
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 18б)'");
ОписаниеКС = НСтр("ru='Значение строки 16 графы 1, показатель ""на начало отчетного периода"" равно значению строки 16 графы 3 за предыдущий отчетный период'");
ОписаниеОшибки = НСтр("ru=''");
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
ТекущийКвартал = НомерКвартала();
Если ТекущийКвартал <> 0 И ТекущийКвартал > 1 Тогда
ДокументПНП = РегламентированнаяОтчетность.ПолучитьДокументПНП(СтруктураРеквизитовФормы.мСохраненныйДок, ТекущийКвартал - 1, Истина);
Если ДокументПНП <> Неопределено Тогда
СведенияДокументПНП = ДокументПНП.ДанныеОтчета.Получить();
Таблица2ПНП = СведенияДокументПНП.ПоказателиОтчета.ПолеТабличногоДокументаТаблица2;
Иначе
Возврат;
КонецЕсли;
Иначе
Возврат;
КонецЕсли;
Т2_Ст160Гр01 = ПоказательПоСтроке("Т2_Ст160Гр01");
Т2_Ст160Гр03ПНП = ПоказательПоСтроке("Т2_Ст160Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр01);
ВставитьЗначениеПоказателя(Таблица2ПНП, Т2_Ст160Гр03ПНП);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст160Гр01, "Таблица2");
ВнестиПоказательДокументаВРасшифровку(ДокументПНП, Т2_Ст160Гр03ПНП, "Таблица2");
КС = ПоказателиКС(Т2_Ст160Гр01.Значение, Т2_Ст160Гр03ПНП.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст160Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 19)'");
ОписаниеКС = НСтр("ru='Значение строки 16 графы 3 равно сумме строки 16 графы 1, показатель ""на начало отчетного периода"" + показатель ""за последние три месяца отчетного периода""'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст160Гр03 = ПоказательПоСтроке("Т2_Ст160Гр03");
Т2_Ст160Гр01 = ПоказательПоСтроке("Т2_Ст160Гр01");
Т2_Ст164Гр01 = ПоказательПоСтроке("Т2_Ст164Гр01");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр01);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст164Гр01);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст160Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст160Гр01, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст164Гр01, "Таблица2");
КС = ПоказателиКС(Т2_Ст160Гр03.Значение, Т2_Ст160Гр01.Значение + Т2_Ст164Гр01.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст160Гр01.ЗначениеСтр + " + " + Т2_Ст164Гр01.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст180Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 20)'");
ОписаниеКС = НСтр("ru='Значение строки 18 графы 3 равно сумме строк 12, 15, 16, 17 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Т2_Ст120Гр03 = ПоказательПоСтроке("Т2_Ст120Гр03");
Т2_Ст150Гр03 = ПоказательПоСтроке("Т2_Ст150Гр03");
Т2_Ст160Гр03 = ПоказательПоСтроке("Т2_Ст160Гр03");
Т2_Ст170Гр03 = ПоказательПоСтроке("Т2_Ст170Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст120Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст150Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст160Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст170Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст120Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст150Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст160Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст170Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст180Гр03.Значение, Т2_Ст120Гр03.Значение + Т2_Ст150Гр03.Значение + Т2_Ст160Гр03.Значение + Т2_Ст170Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т2_Ст120Гр03.ЗначениеСтр + " + " + Т2_Ст150Гр03.ЗначениеСтр + " + " + Т2_Ст160Гр03.ЗначениеСтр
+ " + " + Т2_Ст170Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст19Гр3_21а(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 21а)'");
ОписаниеКС = НСтр("ru='Значение строки 19 графы 3 равно строка 8 графа 3 - строка 18 графа 3,
|если значение строки 8 графы 3 больше значения строки 18 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст190Гр03 = ПоказательПоСтроке("Т2_Ст190Гр03");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст190Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст190Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
УсловиеВыполнено = Т2_Ст80Гр03.Значение > Т2_Ст180Гр03.Значение;
ЗначениеПравойЧасти = Т2_Ст80Гр03.Значение - Т2_Ст180Гр03.Значение;
РасшифровкаУсловия = Т2_Ст80Гр03.ЗначениеСтр + " > " + Т2_Ст180Гр03.ЗначениеСтр;
КС = ПоказателиКС(Т2_Ст190Гр03.Значение, ЗначениеПравойЧасти);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + РасшифровкаУсловия;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст19Гр3_21б(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 21б)'");
ОписаниеКС = НСтр("ru='Значение строки 19 графы 3 равно 0, если значение строки 8 графы 3 меньше или равно значения строки 18 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст190Гр03 = ПоказательПоСтроке("Т2_Ст190Гр03");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст190Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст190Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
УсловиеВыполнено = Т2_Ст80Гр03.Значение <= Т2_Ст180Гр03.Значение;
РасшифровкаУсловия = Т2_Ст80Гр03.ЗначениеСтр + " <= " + Т2_Ст180Гр03.ЗначениеСтр;
КС = ПоказателиКС(Т2_Ст190Гр03.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", когда " + РасшифровкаУсловия;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст200Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 22)'");
ОписаниеКС = НСтр("ru='Значение строки 20 графы 3 меньше или равно значения строки 19 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст200Гр03 = ПоказательПоСтроке("Т2_Ст200Гр03");
Т2_Ст190Гр03 = ПоказательПоСтроке("Т2_Ст190Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст200Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст190Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст200Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст190Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст200Гр03.Значение, Т2_Ст190Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т2_Ст8_9Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 2 (КС 23)'");
ОписаниеКС = НСтр("ru='Сумма строк 8 и 9 графы 3 равно сумме строк 18 и 19 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т2_Ст80Гр03 = ПоказательПоСтроке("Т2_Ст80Гр03");
Т2_Ст90Гр03 = ПоказательПоСтроке("Т2_Ст90Гр03");
Т2_Ст180Гр03 = ПоказательПоСтроке("Т2_Ст180Гр03");
Т2_Ст190Гр03 = ПоказательПоСтроке("Т2_Ст190Гр03");
Таблица2 = мДанныеОтчета.ПолеТабличногоДокументаТаблица2;
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст80Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст90Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст180Гр03);
ВставитьЗначениеПоказателя(Таблица2, Т2_Ст190Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т2_Ст80Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст90Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст180Гр03, "Таблица2");
ВнестиПоказательВРасшифровку(Т2_Ст190Гр03, "Таблица2");
КС = ПоказателиКС(Т2_Ст80Гр03.Значение + Т2_Ст90Гр03.Значение, Т2_Ст180Гр03.Значение + Т2_Ст190Гр03.Значение);
Расшифровка = Т2_Ст80Гр03.ЗначениеСтр + " + " + Т2_Ст90Гр03.ЗначениеСтр + " Итог [" + КС.ЛеваяЧастьСтр + "] = "
+ Т2_Ст180Гр03.ЗначениеСтр + " + " + Т2_Ст190Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст1Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 1)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 больше или равно суммы строк 2 и 3 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст1Гр03 = ПоказательПоСтроке("Т3_Ст1Гр03");
Т3_Ст2Гр03 = ПоказательПоСтроке("Т3_Ст2Гр03");
Т3_Ст3Гр03 = ПоказательПоСтроке("Т3_Ст3Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст2Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст1Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст2Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст3Гр03, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст1Гр03.Значение, Т3_Ст2Гр03.Значение + Т3_Ст3Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + Т3_Ст2Гр03.ЗначениеСтр + " + " + Т3_Ст3Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр
+ "]";
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст1Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 2)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 4 больше или равно суммы строк 2 и 3 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст1Гр04 = ПоказательПоСтроке("Т3_Ст1Гр04");
Т3_Ст2Гр04 = ПоказательПоСтроке("Т3_Ст2Гр04");
Т3_Ст3Гр04 = ПоказательПоСтроке("Т3_Ст3Гр04");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст2Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст3Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст1Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст2Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст3Гр04, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст1Гр04.Значение, Т3_Ст2Гр04.Значение + Т3_Ст3Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + Т3_Ст2Гр04.ЗначениеСтр + " + " + Т3_Ст3Гр04.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст4Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 3)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 больше или равно суммы строк 5 и 6 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст4Гр03 = ПоказательПоСтроке("Т3_Ст4Гр03");
Т3_Ст5Гр03 = ПоказательПоСтроке("Т3_Ст5Гр03");
Т3_Ст6Гр03 = ПоказательПоСтроке("Т3_Ст6Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст5Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст6Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст4Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст5Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст6Гр03, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст4Гр03.Значение, Т3_Ст5Гр03.Значение + Т3_Ст6Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + Т3_Ст5Гр03.ЗначениеСтр + " + " + Т3_Ст6Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст4Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 4)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 4 больше или равно суммы строк 5 и 6 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст4Гр04 = ПоказательПоСтроке("Т3_Ст4Гр04");
Т3_Ст5Гр04 = ПоказательПоСтроке("Т3_Ст5Гр04");
Т3_Ст6Гр04 = ПоказательПоСтроке("Т3_Ст6Гр04");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст4Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст5Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст6Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст4Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст5Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст6Гр04, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст4Гр04.Значение, Т3_Ст5Гр04.Значение + Т3_Ст6Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + Т3_Ст5Гр04.ЗначениеСтр + " + " + Т3_Ст6Гр04.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст7Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 5)'");
ОписаниеКС = НСтр("ru='Значение строки 7 графы 3 больше или равно значения строки 8 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст7Гр03 = ПоказательПоСтроке("Т3_Ст7Гр03");
Т3_Ст8Гр03 = ПоказательПоСтроке("Т3_Ст8Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст7Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст8Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст7Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст8Гр03, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст7Гр03.Значение, Т3_Ст8Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст7Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 6)'");
ОписаниеКС = НСтр("ru='Значение строки 7 графы 4 больше или равно значения строки 8 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст7Гр04 = ПоказательПоСтроке("Т3_Ст7Гр04");
Т3_Ст8Гр04 = ПоказательПоСтроке("Т3_Ст8Гр04");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст7Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст8Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст7Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст8Гр04, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст7Гр04.Значение, Т3_Ст8Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст10Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 7)'");
ОписаниеКС = НСтр("ru='Значение строки 10 графы 4 равно сумме строк 1, 4, 7, 9 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст10Гр04 = ПоказательПоСтроке("Т3_Ст10Гр04");
Т3_Ст1Гр04 = ПоказательПоСтроке("Т3_Ст1Гр04");
Т3_Ст4Гр04 = ПоказательПоСтроке("Т3_Ст4Гр04");
Т3_Ст7Гр04 = ПоказательПоСтроке("Т3_Ст7Гр04");
Т3_Ст9Гр04 = ПоказательПоСтроке("Т3_Ст9Гр04");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст10Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст4Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст7Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст9Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст10Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст1Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст4Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст7Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст9Гр04, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст10Гр04.Значение, Т3_Ст1Гр04.Значение + Т3_Ст4Гр04.Значение + Т3_Ст7Гр04.Значение + Т3_Ст9Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т3_Ст1Гр04.ЗначениеСтр + " + " + Т3_Ст4Гр04.ЗначениеСтр + " + " + Т3_Ст7Гр04.ЗначениеСтр
+ " + " + Т3_Ст9Гр04.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т3_Ст11Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 3 (КС 8)'");
ОписаниеКС = НСтр("ru='Значение строки 11 графы 4 меньше или равно значения строки 10 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т3_Ст11Гр04 = ПоказательПоСтроке("Т3_Ст11Гр04");
Т3_Ст10Гр04 = ПоказательПоСтроке("Т3_Ст10Гр04");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст11Гр04);
ВставитьЗначениеПоказателя(Таблица3_4, Т3_Ст10Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т3_Ст11Гр04, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т3_Ст10Гр04, "Таблица3_4");
КС = ПоказателиКС(Т3_Ст11Гр04.Значение, Т3_Ст10Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т4_Ст2Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 4 (КС 1)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 3 меньше или равно значения строки 1 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т4_Ст2Гр03 = ПоказательПоСтроке("Т4_Ст2Гр03");
Т4_Ст1Гр03 = ПоказательПоСтроке("Т4_Ст1Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст2Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст1Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т4_Ст2Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т4_Ст1Гр03, "Таблица3_4");
КС = ПоказателиКС(Т4_Ст2Гр03.Значение, Т4_Ст1Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т4_Ст4Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 4 (КС 2)'");
ОписаниеКС = НСтр("ru='Значение строки 4 графы 3 равно сумме строк 1 и 3 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т4_Ст4Гр03 = ПоказательПоСтроке("Т4_Ст4Гр03");
Т4_Ст1Гр03 = ПоказательПоСтроке("Т4_Ст1Гр03");
Т4_Ст3Гр03 = ПоказательПоСтроке("Т4_Ст3Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст4Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст3Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т4_Ст4Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т4_Ст1Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т4_Ст3Гр03, "Таблица3_4");
КС = ПоказателиКС(Т4_Ст4Гр03.Значение, Т4_Ст1Гр03.Значение + Т4_Ст3Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + Т4_Ст1Гр03.ЗначениеСтр + " + " + Т4_Ст3Гр03.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";;
Если КС.ЛеваяЧасть = КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т4_Ст5Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 4 (КС 3)'");
ОписаниеКС = НСтр("ru='Значение строки 5 графы 3 меньше или равно значения строки 4 графы 3'");
ОписаниеОшибки = НСтр("ru=''");
Т4_Ст5Гр03 = ПоказательПоСтроке("Т4_Ст5Гр03");
Т4_Ст4Гр03 = ПоказательПоСтроке("Т4_Ст4Гр03");
Таблица3_4 = мДанныеОтчета.ПолеТабличногоДокументаТаблица3_4;
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст5Гр03);
ВставитьЗначениеПоказателя(Таблица3_4, Т4_Ст4Гр03);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т4_Ст5Гр03, "Таблица3_4");
ВнестиПоказательВРасшифровку(Т4_Ст4Гр03, "Таблица3_4");
КС = ПоказателиКС(Т4_Ст5Гр03.Значение, Т4_Ст4Гр03.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " <= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть <= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т5_Ст1Гр03(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 5 (КС 1)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 3 больше или равно значения строки 1 графы 4'");
ОписаниеОшибки = НСтр("ru=''");
Т5_Ст1Гр03 = ПоказательПоСтроке("Т5_Ст1Гр03");
Т5_Ст1Гр04 = ПоказательПоСтроке("Т5_Ст1Гр04");
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст1Гр03);
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст1Гр04);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т5_Ст1Гр03, "Таблица5");
ВнестиПоказательВРасшифровку(Т5_Ст1Гр04, "Таблица5");
КС = ПоказателиКС(Т5_Ст1Гр03.Значение, Т5_Ст1Гр04.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т5_Ст1Гр04(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 5 (КС 2)'");
ОписаниеКС = НСтр("ru='Значение строки 1 графы 4 больше или равно строки 1 суммы граф 5 и 6'");
ОписаниеОшибки = НСтр("ru=''");
Т5_Ст1Гр04 = ПоказательПоСтроке("Т5_Ст1Гр04");
Т5_Ст1Гр05 = ПоказательПоСтроке("Т5_Ст1Гр05");
Т5_Ст1Гр06 = ПоказательПоСтроке("Т5_Ст1Гр06");
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст1Гр04);
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст1Гр05);
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст1Гр06);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т5_Ст1Гр04, "Таблица5");
ВнестиПоказательВРасшифровку(Т5_Ст1Гр05, "Таблица5");
ВнестиПоказательВРасшифровку(Т5_Ст1Гр06, "Таблица5");
КС = ПоказателиКС(Т5_Ст1Гр04.Значение, Т5_Ст1Гр05.Значение + Т5_Ст1Гр06.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + Т5_Ст1Гр05.ЗначениеСтр + " + " + Т5_Ст1Гр06.ЗначениеСтр + " Итог [" + КС.ПраваяЧастьСтр + "]";
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т5_Ст2Гр07_3(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
ТекстФормулы = НСтр("ru='Проверка таблицы 5 (КС 3)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 7 больше или равно значения строки 2 графы 8'");
ОписаниеОшибки = НСтр("ru=''");
Т5_Ст2Гр07 = ПоказательПоСтроке("Т5_Ст2Гр07");
Т5_Ст2Гр08 = ПоказательПоСтроке("Т5_Ст2Гр08");
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст2Гр07);
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст2Гр08);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т5_Ст2Гр07, "Таблица5");
ВнестиПоказательВРасшифровку(Т5_Ст2Гр08, "Таблица5");
КС = ПоказателиКС(Т5_Ст2Гр07.Значение, Т5_Ст2Гр08.Значение);
Расшифровка = КС.ЛеваяЧастьСтр + " >= " + КС.ПраваяЧастьСтр;
Если КС.ЛеваяЧасть >= КС.ПраваяЧасть Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка,
ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т5_Ст2Гр07_4(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "показатель ""Численность работников, занятых на работах с вредными и (или) опасными производственными факторами"" равен 0";
ТекстФормулы = НСтр("ru='Проверка таблицы 5 (КС 4)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 7 равно 0, если %1'");
ОписаниеОшибки = НСтр("ru=''");
Т5_Ст2Гр07 = ПоказательПоСтроке("Т5_Ст2Гр07");
ЧислВред = ПоказательПоСтроке("ЧислВред");
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст2Гр07);
ВставитьЗначениеПоказателя(Титульный, ЧислВред);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т5_Ст2Гр07, "Таблица5");
ВнестиПоказательВРасшифровку(ЧислВред, "Титульный");
УсловиеВыполнено = (ЧислВред.Значение = 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т5_Ст2Гр07.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " = " + КС.ПраваяЧастьСтр + ", если " + ЧислВред.ЗначениеСтр + " = 0";
Иначе
Кс = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть = КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_Т5_Ст2Гр07_5(СтруктураРезультата)
ОбщееЧислоОшибок = СтруктураРезультата.КоличествоНайденныхОшибок;
ОбщееЧислоБезОшибок = СтруктураРезультата.КоличествоНайденныхБезОшибок;
СтруктураОшибок = СтруктураРезультата.СтруктураОшибок;
УсловиеКССтр = "показатель ""Численность работников, занятых на работах с вредными и (или) опасными производственными факторами"" больше 0";
ТекстФормулы = НСтр("ru='Проверка таблицы 5 (КС 5)'");
ОписаниеКС = НСтр("ru='Значение строки 2 графы 7 больше 0, если %1'");
ОписаниеОшибки = НСтр("ru=''");
Т5_Ст2Гр07 = ПоказательПоСтроке("Т5_Ст2Гр07");
ЧислВред = ПоказательПоСтроке("ЧислВред");
Таблица5 = мДанныеОтчета.ПолеТабличногоДокументаТаблица5;
Титульный = мДанныеОтчета.ПолеТабличногоДокументаТитульный;
ВставитьЗначениеПоказателя(Таблица5, Т5_Ст2Гр07);
ВставитьЗначениеПоказателя(Титульный, ЧислВред);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
ВнестиПоказательВРасшифровку(Т5_Ст2Гр07, "Таблица5");
ВнестиПоказательВРасшифровку(ЧислВред, "Титульный");
УсловиеВыполнено = (ЧислВред.Значение > 0);
Если УсловиеВыполнено Тогда
КС = ПоказателиКС(Т5_Ст2Гр07.Значение, 0);
Расшифровка = КС.ЛеваяЧастьСтр + " > " + КС.ПраваяЧастьСтр + ", если " + ЧислВред.ЗначениеСтр + " > 0";
Иначе
Кс = "";
Расшифровка = "Условие не выполнено: " + УсловиеКССтр;
КонецЕсли;
Если НЕ УсловиеВыполнено ИЛИ (УсловиеВыполнено И КС.ЛеваяЧасть > КС.ПраваяЧасть) Тогда
ЭтоОшибка = Ложь;
ОбщееЧислоБезОшибок = ОбщееЧислоБезОшибок + 1;
Иначе
ЭтоОшибка = Истина;
ОбщееЧислоОшибок = ОбщееЧислоОшибок + 1;
КонецЕсли;
ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ОписаниеКС, УсловиеКССтр),
ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка, ЭтоОшибка, ОписаниеОшибки, , );
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", ОбщееЧислоОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", ОбщееЧислоБезОшибок);
СтруктураРезультата.Вставить("СтруктураОшибок", СтруктураОшибок);
КонецПроцедуры
&НаСервере
Функция ПоказательПоСтроке(УсловныйКодПоказателя)
Результат = Новый Структура;
Результат.Вставить("Имя");
Результат.Вставить("Представление");
Если УсловныйКодПоказателя = "ЧислИнвалидов" Тогда
Результат.Вставить("Имя", "ЧислИнвалидов");
Результат.Вставить("Представление", Нстр("ru='Численность работающих инвалидов'"));
ИначеЕсли УсловныйКодПоказателя = "ЧислВред" Тогда
Результат.Вставить("Имя", "ЧислВред");
Результат.Вставить("Представление", Нстр("ru='Численность работников работающих, занятых на работах с вредными и (или) опасными производственными факторами'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст1Гр03" Тогда
Результат.Вставить("Имя", "П000010000103");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат и иных вознаграждений. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст1Гр04" Тогда
Результат.Вставить("Имя", "П000010000104");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат и иных вознаграждений. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст1Гр05" Тогда
Результат.Вставить("Имя", "П000010000105");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат и иных вознаграждений. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст1Гр06" Тогда
Результат.Вставить("Имя", "П000010000106");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат и иных вознаграждений. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр03" Тогда
Результат.Вставить("Имя", "П000010000203");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр04" Тогда
Результат.Вставить("Имя", "П000010000204");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр05" Тогда
Результат.Вставить("Имя", "П000010000205");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр06" Тогда
Результат.Вставить("Имя", "П000010000206");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр03" Тогда
Результат.Вставить("Имя", "П000010000303");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр04" Тогда
Результат.Вставить("Имя", "П000010000304");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр05" Тогда
Результат.Вставить("Имя", "П000010000305");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр06" Тогда
Результат.Вставить("Имя", "П000010000306");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст4Гр03" Тогда
Результат.Вставить("Имя", "П000010000403");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат в пользу работающих инвалидов. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст4Гр04" Тогда
Результат.Вставить("Имя", "П000010000404");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат в пользу работающих инвалидов. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст4Гр05" Тогда
Результат.Вставить("Имя", "П000010000405");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат в пользу работающих инвалидов. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст4Гр06" Тогда
Результат.Вставить("Имя", "П000010000406");
Результат.Вставить("Представление", Нстр("ru='Сумма выплат в пользу работающих инвалидов. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст5" Тогда
Результат.Вставить("Имя", "П000010000503");
Результат.Вставить("Представление", Нстр("ru='Размер страхового тарифа в соответствии с классом профессионального риска (%)'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст6" Тогда
Результат.Вставить("Имя", "П000010000603");
Результат.Вставить("Представление", Нстр("ru='Скидка к страховому тарифу (%)'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст7" Тогда
Результат.Вставить("Имя", "П000010000703");
Результат.Вставить("Представление", Нстр("ru='Надбавка к страховому тарифу (%)'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст9" Тогда
Результат.Вставить("Имя", "П000010000903");
Результат.Вставить("Представление", Нстр("ru='Размер страхового тарифа с учетом скидки (надбавки) (%)'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр03" Тогда
Результат.Вставить("Имя", "П000010000203");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр04" Тогда
Результат.Вставить("Имя", "П000010000204");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр05" Тогда
Результат.Вставить("Имя", "П000010000205");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст2Гр06" Тогда
Результат.Вставить("Имя", "П000010000206");
Результат.Вставить("Представление", Нстр("ru='Суммы, не подлежащие обложению страховыми взносами. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр03" Тогда
Результат.Вставить("Имя", "П000010000303");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр04" Тогда
Результат.Вставить("Имя", "П000010000304");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр05" Тогда
Результат.Вставить("Имя", "П000010000305");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т1_Ст3Гр06" Тогда
Результат.Вставить("Имя", "П000010000306");
Результат.Вставить("Представление", Нстр("ru='Итого база для начисления страховых взносов. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр06" Тогда
Результат.Вставить("Имя", "П000110000106_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. Всего с начала расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр07" Тогда
Результат.Вставить("Имя", "П000110000107_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. В т.ч. инвалиды'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр08" Тогда
Результат.Вставить("Имя", "П000110000108_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 1 месяц. Всего'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр09" Тогда
Результат.Вставить("Имя", "П000110000109_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 1 месяц. В т.ч. инвалиды'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр10" Тогда
Результат.Вставить("Имя", "П000110000110_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 2 месяц. Всего'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр11" Тогда
Результат.Вставить("Имя", "П000110000111_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 2 месяц. В т.ч. инвалиды'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр12" Тогда
Результат.Вставить("Имя", "П000110000112_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 3 месяц. Всего'"));
ИначеЕсли УсловныйКодПоказателя = "Т11_Гр13" Тогда
Результат.Вставить("Имя", "П000110000113_%1");
Результат.Вставить("Представление", Нстр("ru='База для начисления страховых взносов. 3 месяц. В т.ч. инвалиды'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст20Гр01" Тогда
Результат.Вставить("Имя", "П000020002001");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов на начало отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст20Гр03" Тогда
Результат.Вставить("Имя", "П000020002003");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст24Гр01" Тогда
Результат.Вставить("Имя", "П000020002401");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов за последние три месяца отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст21Гр01" Тогда
Результат.Вставить("Имя", "П000020002101");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов. 1 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст22Гр01" Тогда
Результат.Вставить("Имя", "П000020002201");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов. 2 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст23Гр01" Тогда
Результат.Вставить("Имя", "П000020002301");
Результат.Вставить("Представление", Нстр("ru='Начислено к уплате страховых взносов. 3 месяц'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст80Гр03" Тогда
Результат.Вставить("Имя", "П000020008003");
Результат.Вставить("Представление", Нстр("ru='Всего (сумма строк 1+2+3+4+5+6+7)'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст10Гр03" Тогда
Результат.Вставить("Имя", "П000020001003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за плательщиком страховых взносов (страхователем) на начало расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст30Гр03" Тогда
Результат.Вставить("Имя", "П000020003003");
Результат.Вставить("Представление", Нстр("ru='Начислено взносов по результатам проверок'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст40Гр03" Тогда
Результат.Вставить("Имя", "П000020004003");
Результат.Вставить("Представление", Нстр("ru='Не принято к зачету расходов территориальным органом Фонда за прошлые расчетные периоды'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст50Гр03" Тогда
Результат.Вставить("Имя", "П000020005003");
Результат.Вставить("Представление", Нстр("ru='Начислено взносов страхователем за прошлые расчетные периоды'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст60Гр03" Тогда
Результат.Вставить("Имя", "П000020006003");
Результат.Вставить("Представление", Нстр("ru='Получено от территориального органа Фонда на банковский счет'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст70Гр03" Тогда
Результат.Вставить("Имя", "П000020007003");
Результат.Вставить("Представление", Нстр("ru='Возврат (зачет) сумм излишне уплаченных (взысканных) страховых взносов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст90Гр03" Тогда
Результат.Вставить("Имя", "П000020009003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст180Гр03" Тогда
Результат.Вставить("Имя", "П000020018003");
Результат.Вставить("Представление", Нстр("ru='Всего (сумма строк 12+15+16+17)'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст100Гр03" Тогда
Результат.Вставить("Имя", "П000020010003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода за счет превышения расходов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст110Гр03" Тогда
Результат.Вставить("Имя", "П000020011003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода за счет переплаты страховых взносов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст120Гр03" Тогда
Результат.Вставить("Имя", "П000020012003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на начало расчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст150Гр03" Тогда
Результат.Вставить("Имя", "П000020015003");
Результат.Вставить("Представление", Нстр("ru='Расходы по обязательному социальному страхованию'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст140Гр03" Тогда
Результат.Вставить("Имя", "П000020014003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на начало расчетного периода за счет переплаты страховых взносов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст160Гр03" Тогда
Результат.Вставить("Имя", "П000020016003");
Результат.Вставить("Представление", Нстр("ru='Уплачено страховых взносов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст130Гр03" Тогда
Результат.Вставить("Имя", "П000020013003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на начало расчетного периода за счет превышения расходов'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст150Гр01" Тогда
Результат.Вставить("Имя", "П000020015001");
Результат.Вставить("Представление", Нстр("ru='Расходы по обязательному социальному страхованию на начало отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст154Гр01" Тогда
Результат.Вставить("Имя", "П000020015401");
Результат.Вставить("Представление", Нстр("ru='Расходы по обязательному социальному страхованию за последние три месяца отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст1Гр04" Тогда
Результат.Вставить("Имя", "П000030001004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве, всего. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст160Гр01" Тогда
Результат.Вставить("Имя", "П000020016001");
Результат.Вставить("Представление", Нстр("ru='Уплачено страховых взносов на начало отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст164Гр01" Тогда
Результат.Вставить("Имя", "П000020016401");
Результат.Вставить("Представление", Нстр("ru='Уплачено страховых взносов в последние три месяца отчетного периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст170Гр03" Тогда
Результат.Вставить("Имя", "П000020017003");
Результат.Вставить("Представление", Нстр("ru='Списанная сумма задолженности страхователя'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст190Гр03" Тогда
Результат.Вставить("Имя", "П000020019003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за плательщиком страховых взносов (страхователем) на конец отчетного (расчетного) периода'"));
ИначеЕсли УсловныйКодПоказателя = "Т2_Ст200Гр03" Тогда
Результат.Вставить("Имя", "П000020020003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за плательщиком страховых взносов (страхователем) на конец отчетного (расчетного) периода. Недоимка'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст1Гр03" Тогда
Результат.Вставить("Имя", "П000030001003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве, всего. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст2Гр03" Тогда
Результат.Вставить("Имя", "П000030002003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве по внешнему совместительству'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст3Гр03" Тогда
Результат.Вставить("Имя", "П000030003003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве пострадавшим в другой организации'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст2Гр04" Тогда
Результат.Вставить("Имя", "П000030002004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве по внешнему совместительству'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст3Гр04" Тогда
Результат.Вставить("Имя", "П000030003004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с несчастными случаями на производстве пострадавшим в другой организации. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст4Гр03" Тогда
Результат.Вставить("Имя", "П000030004003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, всего. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст5Гр03" Тогда
Результат.Вставить("Имя", "П000030005003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, по внешнему совместительству. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст6Гр03" Тогда
Результат.Вставить("Имя", "П000030006003");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, пострадавшим в другой организации. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст4Гр04" Тогда
Результат.Вставить("Имя", "П000030004004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, всего. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст5Гр04" Тогда
Результат.Вставить("Имя", "П000030005004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, по внешнему совместительству. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст6Гр04" Тогда
Результат.Вставить("Имя", "П000030006004");
Результат.Вставить("Представление", Нстр("ru='Пособия по временной нетрудоспособности в связи с профессиональными заболеваниями, пострадавшим в другой организации. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст7Гр03" Тогда
Результат.Вставить("Имя", "П000030007003");
Результат.Вставить("Представление", Нстр("ru='Оплата отпуска для санаторно-курортного лечения. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст8Гр03" Тогда
Результат.Вставить("Имя", "П000030008003");
Результат.Вставить("Представление", Нстр("ru='Оплата отпуска для санаторно-курортного лечения застрахованным, пострадавшим в другой организации. Количество дней'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст7Гр04" Тогда
Результат.Вставить("Имя", "П000030007004");
Результат.Вставить("Представление", Нстр("ru='Оплата отпуска для санаторно-курортного лечения. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст8Гр04" Тогда
Результат.Вставить("Имя", "П000030008004");
Результат.Вставить("Представление", Нстр("ru='Оплата отпуска для санаторно-курортного лечения застрахованным, пострадавшим в другой организации. Сумма'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст9Гр04" Тогда
Результат.Вставить("Имя", "П000030009004");
Результат.Вставить("Представление", Нстр("ru='Финансирование предупредительных мер по сокращению производственного травматизма и профзаболеваний'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст10Гр04" Тогда
Результат.Вставить("Имя", "П000030010004");
Результат.Вставить("Представление", Нстр("ru='Всего расходов (сумма строк 1, 4, 7, 9)'"));
ИначеЕсли УсловныйКодПоказателя = "Т3_Ст11Гр04" Тогда
Результат.Вставить("Имя", "П000030011004");
Результат.Вставить("Представление", Нстр("ru='Начисленные и невыплаченные пособия'"));
ИначеЕсли УсловныйКодПоказателя = "Т4_Ст1Гр03" Тогда
Результат.Вставить("Имя", "П000040001003");
Результат.Вставить("Представление", Нстр("ru='Численность пострадавших человек по несчастным случаям, всего'"));
ИначеЕсли УсловныйКодПоказателя = "Т4_Ст2Гр03" Тогда
Результат.Вставить("Имя", "П000040002003");
Результат.Вставить("Представление", Нстр("ru='Численность пострадавших человек по несчастным случаям, со смертельным исходом'"));
ИначеЕсли УсловныйКодПоказателя = "Т4_Ст3Гр03" Тогда
Результат.Вставить("Имя", "П000040003003");
Результат.Вставить("Представление", Нстр("ru='Численность пострадавших человек по профессиональным заболеваниям'"));
ИначеЕсли УсловныйКодПоказателя = "Т4_Ст4Гр03" Тогда
Результат.Вставить("Имя", "П000040004003");
Результат.Вставить("Представление", Нстр("ru='Численность пострадавших человек. Всего пострадавших (сумма строк 1, 3)'"));
ИначеЕсли УсловныйКодПоказателя = "Т4_Ст5Гр03" Тогда
Результат.Вставить("Имя", "П000040005003");
Результат.Вставить("Представление", Нстр("ru='Численность пострадавших (застрахованных) по случаям, закончившимся только временной нетрудоспособностью'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст1Гр03" Тогда
Результат.Вставить("Имя", "П000050000103");
Результат.Вставить("Представление", Нстр("ru='Проведение специальной оценки условий труда. Общее количество рабочих мест'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст1Гр04" Тогда
Результат.Вставить("Имя", "П000050000104");
Результат.Вставить("Представление", Нстр("ru='Проведение специальной оценки условий труда. Количество рабочих мест, в отношении условий труда на которых проведена специальная оценка условий труда на начало года'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст1Гр05" Тогда
Результат.Вставить("Имя", "П000050000105");
Результат.Вставить("Представление", Нстр("ru='Проведение специальной оценки условий труда. Количество рабочих мест, в отношении условий труда на которых проведена специальная оценка условий труда на начало года. 3 класс'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст1Гр06" Тогда
Результат.Вставить("Имя", "П000050000106");
Результат.Вставить("Представление", Нстр("ru='Проведение специальной оценки условий труда. Количество рабочих мест, в отношении условий труда на которых проведена специальная оценка условий труда на начало года. 4 класс'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст2Гр07" Тогда
Результат.Вставить("Имя", "П000050000207");
Результат.Вставить("Представление", Нстр("ru='Проведение обязательных предварительных и периодических медицинских осмотров работников. Общее число работников, занятых на работах с вредными и (или) опасными производственными факторами'"));
ИначеЕсли УсловныйКодПоказателя = "Т5_Ст2Гр08" Тогда
Результат.Вставить("Имя", "П000050000208");
Результат.Вставить("Представление", Нстр("ru='Проведение обязательных предварительных и периодических медицинских осмотров работников. Количество работников, занятых на работах с вредными и (или) опасными производственными факторами'"));
ИначеЕсли УсловныйКодПоказателя = "Т7_Ст90Гр03ПНП" Тогда
Результат.Вставить("Имя", "П000070009003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода (2016 год)'"));
ИначеЕсли УсловныйКодПоказателя = "Т7_Ст100Гр03ПНП" Тогда
Результат.Вставить("Имя", "П000070010003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода за счет превышения расходов (2016 год)'"));
ИначеЕсли УсловныйКодПоказателя = "Т7_Ст110Гр03ПНП" Тогда
Результат.Вставить("Имя", "П000070011003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за территориальным органом Фонда на конец отчетного (расчетного) периода за счет переплаты страховых взносов (2016 год)'"));
ИначеЕсли УсловныйКодПоказателя = "Т7_Ст190Гр03ПНП" Тогда
Результат.Вставить("Имя", "П000070019003");
Результат.Вставить("Представление", Нстр("ru='Задолженность за плательщиком страховых взносов (страхователем) на конец отчетного (расчетного) периода (2016 год)'"));
КонецЕсли;
Возврат Результат;
КонецФункции
&НаСервере
Функция РасшифровкаВСтр(СтрокаДляРасшифровки)
Если ТипЗнч(СтрокаДляРасшифровки) = Тип("Строка") Тогда
Если Прав(СтрокаДляРасшифровки, 3) = " + " Тогда
Возврат Лев(СтрокаДляРасшифровки, СтрДлина(СтрокаДляРасшифровки) - 3);
ИначеЕсли Прав(СтрокаДляРасшифровки, 3) = " - " Тогда
Возврат Лев(СтрокаДляРасшифровки, СтрДлина(СтрокаДляРасшифровки) - 3);
ИначеЕсли Прав(СтрокаДляРасшифровки, 3) = " и " Тогда
Возврат Лев(СтрокаДляРасшифровки, СтрДлина(СтрокаДляРасшифровки) - 3);
Иначе
Возврат СтрокаДляРасшифровки;
КонецЕсли;
ИначеЕсли ТипЗнч(СтрокаДляРасшифровки) = Тип("Число") Тогда
Возврат СтрокаЧГ0(РегламентированнаяОтчетностьКлиентСервер.ОкруглитьЧислоПоФормату(ЭтаФорма, СтрокаДляРасшифровки));
Иначе
Возврат СтрокаДляРасшифровки;
КонецЕсли;
КонецФункции
&НаСервере
Процедура ВставитьЗначениеПоказателя(ИсточникДанных, Показатель)
Если ИсточникДанных.Свойство(Показатель.Имя) Тогда
ЗначениеПоказателя = ИсточникДанных[Показатель.Имя];
Иначе
ЗначениеПоказателя = 0;
КонецЕсли;
Если Показатель.Имя = "ЧислИнвалидов" ИЛИ Показатель.Имя = "ЧислВред" Тогда
ЗначениеПоказателя = СокрЛП(ЗначениеПоказателя);
ЗначениеПоказателя = ?(ЗначениеЗаполнено(ЗначениеПоказателя), Число(ЗначениеПоказателя), 0);
КонецЕсли;
Если Показатель.Свойство("ИзменяемаяРазмерность") И Показатель.ИзменяемаяРазмерность = Истина Тогда
ЗначениеПоказателя = РегламентированнаяОтчетностьКлиентСервер.ОкруглитьЧислоПоФормату(ЭтаФорма, ЗначениеПоказателя);
КонецЕсли;
Если Показатель.Свойство("Формат") И ЗначениеЗаполнено(Показатель.Формат) Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, Показатель.Формат);
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Строка") Тогда
ПредставлениеЗначения = ЗначениеПоказателя;
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Дата") Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, "ДЛФ=D");
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Число") Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, "ЧРД=,; ЧН=");
Иначе
ПредставлениеЗначения = Строка(ЗначениеПоказателя);
КонецЕсли;
Показатель.Вставить("Значение", ЗначениеПоказателя);
Показатель.Вставить("ЗначениеСтр", ПредставлениеЗначения);
КонецПроцедуры
&НаСервере
Процедура ВставитьЗначениеМногострочногоПоказателя(ИсточникДанных, Показатель, НомерСтроки)
НомерСтрокиСтр = СтрокаЧГ0(НомерСтроки);
ИмяПоказателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Показатель.Имя, НомерСтрокиСтр);
Если ИсточникДанных.Свойство(ИмяПоказателя) Тогда
ЗначениеПоказателя = ИсточникДанных[ИмяПоказателя];
Иначе
ЗначениеПоказателя = 0;
КонецЕсли;
Если Показатель.Свойство("ИзменяемаяРазмерность") И Показатель.ИзменяемаяРазмерность = Истина Тогда
ЗначениеПоказателя = РегламентированнаяОтчетностьКлиентСервер.ОкруглитьЧислоПоФормату(ЭтаФорма, ЗначениеПоказателя);
КонецЕсли;
Если Показатель.Свойство("Формат") И ЗначениеЗаполнено(Показатель.Формат) Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, Показатель.Формат);
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Строка") Тогда
ПредставлениеЗначения = ЗначениеПоказателя;
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Дата") Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, "ДЛФ=D");
ИначеЕсли ТипЗнч(ЗначениеПоказателя) = Тип("Число") Тогда
ПредставлениеЗначения = Формат(ЗначениеПоказателя, "ЧРД=,; ЧН=");
Иначе
ПредставлениеЗначения = Строка(ЗначениеПоказателя);
КонецЕсли;
Показатель.Вставить("Значение", ЗначениеПоказателя);
Показатель.Вставить("ЗначениеСтр", ПредставлениеЗначения);
Показатель.Вставить("НомерСтроки", НомерСтрокиСтр);
КонецПроцедуры
&НаСервере
Процедура ЗарегистрироватьФормулуДляРасшифровки(ОписаниеКС);
РегламентированнаяОтчетность.ЗарегистрироватьФормулуДляРасшифровки(СписокРасшифровкиФормулы, ОписаниеКС,
Неопределено, СчетчикФормулДляРасшифровок);
КонецПроцедуры
&НаСервере
Процедура ВнестиПоказательВРасшифровку(Показатель, ИмяСтраницы, НомерСтраницы = Неопределено)
ПредставлениеПоказателя = Показатель.Представление;
ЗначениеПоказателя = ?(ТипЗнч(Показатель.Значение) = Тип ("Дата"), Показатель.ЗначениеСтр, Показатель.Значение);
Если Показатель.Свойство("НомерСтроки") Тогда
ИмяПоказателя = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(Показатель.Имя, Показатель.НомерСтроки);
Иначе
ИмяПоказателя = Показатель.Имя;
КонецЕсли;
РегламентированнаяОтчетность.ЗарегистрироватьПоказательДляРасшифровки(
СписокРасшифровкиПоказателей,
ИмяПоказателя,
ПредставлениеПоказателя,
ЗначениеПоказателя,
"",
СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка,
ИмяСтраницы,
Неопределено,
НомерСтраницы,
СчетчикФормулДляРасшифровок);
КонецПроцедуры
&НаСервере
Процедура ВнестиПоказательДокументаВРасшифровку(СсылкаНаДокумент, Показатель, ИмяСтраницы, НомерСтраницы = Неопределено)
НомерСтраницыДляЗамены = ?(ЗначениеЗаполнено(НомерСтраницы), НомерСтраницы, "");
ПредставлениеПоказателя = СтрокаСНомеромСтраницы(Показатель.Представление, НомерСтраницыДляЗамены);
ЗначениеПоказателя = ?(ТипЗнч(Показатель.Значение) = Тип ("Дата"), Показатель.ЗначениеСтр, Показатель.Значение);
РегламентированнаяОтчетность.ЗарегистрироватьПоказательДляРасшифровки(
СписокРасшифровкиПоказателей,
Показатель.Имя,
ПредставлениеПоказателя,
ЗначениеПоказателя,
"",
СсылкаНаДокумент,
ИмяСтраницы,
Неопределено,
НомерСтраницы,
СчетчикФормулДляРасшифровок);
КонецПроцедуры
&НаСервере
Функция СтрокаСНомеромСтраницы (ИсходнаяСтрока, НомерСтраницы)
ТекстСтраница = Нстр("ru='страница №'");
Возврат СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(ИсходнаяСтрока, ", " + ТекстСтраница + " " + НомерСтраницы + ")");
КонецФункции
&НаСервере
Функция ПоказателиКС(ЛеваяЧасть, ПраваяЧасть, РазмерЛев = Ложь, РазмерПрав = Ложь)
ПоказателиКС = Новый Структура();
Если РазмерЛев Тогда
ЛеваяЧасть = РегламентированнаяОтчетностьКлиентСервер.ОкруглитьЧислоПоФормату(ЭтаФорма, ЛеваяЧасть);
КонецЕсли;
Если РазмерПрав Тогда
ПраваяЧасть = РегламентированнаяОтчетностьКлиентСервер.ОкруглитьЧислоПоФормату(ЭтаФорма, ПраваяЧасть);
КонецЕсли;
ПоказателиКС.Вставить("ЛеваяЧасть", ЛеваяЧасть);
ПоказателиКС.Вставить("ЛеваяЧастьСтр", Формат(ЛеваяЧасть, "ЧРД=,; ЧН="));
ПоказателиКС.Вставить("ПраваяЧасть", ПраваяЧасть);
ПоказателиКС.Вставить("ПраваяЧастьСтр", Формат(ПраваяЧасть, "ЧРД=,; ЧН="));
Возврат ПоказателиКС;
КонецФункции
&НаСервере
Процедура ДобавитьЭлементВСтруктуруОшибок(СтруктураОшибок, ТекстФормулы, ОписаниеКС, ОбщееЧислоОшибок, ОбщееЧислоБезОшибок, Расшифровка,
ЭтоОшибка, Описание = Неопределено, Нарушение = Неопределено, Коммент = Неопределено)
ТекстовоеПредставлениеФормулы = ?(ПустаяСтрока(ТекстФормулы), "", ТекстФормулы + ". ") + ОписаниеКС;
СтруктураОшибок.Вставить("Описание" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1'"), Описание));
СтруктураОшибок.Вставить("Нарушение" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1'"), Нарушение));
СтруктураОшибок.Вставить("Расшифровка" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1'"), Расшифровка));
СтруктураОшибок.Вставить("ЭтоОшибка" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), ЭтоОшибка);
СтруктураОшибок.Вставить("ТекстовоеПредставлениеФормулы" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='%1'"), ТекстовоеПредставлениеФормулы));
СтруктураОшибок.Вставить("Комментарий" + Формат(ОбщееЧислоОшибок + ОбщееЧислоБезОшибок, "ЧГ=0"), Коммент);
КонецПроцедуры
&НаСервере
Функция КССучетомОтклонения(ЛеваяЧасть, ПраваяЧасть, Отклонение)
Возврат (ЛеваяЧасть >= ПраваяЧасть - Отклонение И ЛеваяЧасть <= ПраваяЧасть + Отклонение);
КонецФункции
&НаСервере
Функция РасчетЗаКвартал(НомерКвартала = Неопределено)
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
Возврат НомерКвартала * 3 = Месяц(ОкончаниеПериодаОтчета);
КонецФункции
&НаСервере
Функция НомерКвартала()
ОкончаниеПериодаОтчета = СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета;
НомерКвартала = Месяц(ОкончаниеПериодаОтчета) / 3;
Если Цел(НомерКвартала) = НомерКвартала Тогда
Возврат НомерКвартала;
Иначе
Возврат 0;
КонецЕсли;
КонецФункции
#КонецОбласти
&НаКлиентеНаСервереБезКонтекста
Функция ИмяОтчета(ЭтаФормаИмя)
Форма_Имя = СтрЗаменить(ЭтаФормаИмя, "Внешний", "");
Возврат Сред(Лев(Форма_Имя, СтрНайти(Форма_Имя, ".Форма.") - 1), 7);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ИмяФормыОтчета(ЭтаФормаИмя)
Возврат Сред(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") + 7);
КонецФункции
#Область ОбработчикиСобытийФормы
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
РегламентированнаяОтчетностьКлиент.ВыполнитьЗадачу(
ЭтотОбъект,
Команда,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
#КонецОбласти
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийСледующемуНачалоВыбора(
ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если РегламентированнаяОтчетностьКлиент.ЭтоСобытиеЗавершениеОтправки(ИмяСобытия) Тогда
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Записать(ПараметрыЗаписи) Экспорт
СохранитьНаКлиенте();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
РегламентированнаяОтчетность.ВыполнитьЗадачу(ЭтотОбъект, Контекст, СтруктураРеквизитовФормы.мСохраненныйДок);
КонецПроцедуры
&НаСервере
Процедура УправлениеДоступностьюРеквизитов(БлокируемыеЭлементы, ТолькоПросмотр) Экспорт
РегламентированнаяОтчетность.УправлениеДоступностьюРеквизитов(ЭтотОбъект, БлокируемыеЭлементы, ТолькоПросмотр);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ИнициализироватьВыводСтатусовИВажныхСообщений_85()
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.УстановитьРазмещениеНаименованияЭтапаБРО_85(ЭтотОбъект);
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере() Экспорт
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДетальноеОписаниеСтатусаПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат = "ОбновитьОтправку" Тогда
ОбновитьОтправку(Неопределено);
ИначеЕсли Результат = "ГиперссылкаПротокол" Тогда
ГиперссылкаПротоколНажатие(Неопределено);
ИначеЕсли Результат = "ЭтапыОтправки" Тогда
ЭтапыОтправкиНажатие(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВывестиСтатусыИВыжныеСообщенияНаФорму() Экспорт
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНажатияКнопкиВВажномСообщении(Команда)
Если Команда.Имя = "ОтправитьНеотправленноеИзвещение" Тогда
ОтправитьНеотправленноеИзвещение(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиВВажномСообщении(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НРег(НавигационнаяСсылкаФорматированнойСтроки) = "критическиеошибки" Тогда
КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаЗакрытияВажногоСообщения(Команда)
МодульКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСервер");
МодульКлиентСервер.ЗакрытьВажноеСообщение(ЭтотОбъект, Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьДействиеИнформационногоСообщения(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
МодульОбщегоНазначенияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент");
МодульОбщегоНазначенияКлиент.ОбработатьДействиеИнформационногоСообщения(ЭтотОбъект, ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти