&НаСервере
Перем мОбъектОтчета;
#Область ПеременныеКС
&НаКлиенте
Перем ОбработкаКС Экспорт;
&НаСервере
Перем СписокРасшифровкиПоказателей;
&НаСервере
Перем СписокРасшифровкиформулы;
&НаСервере
Перем ДанныеКС;
&НаСервере
Перем Документирование;
&НаСервере
Перем ТаблицаОписаний;
#КонецОбласти
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьНазначениеДействияКомандФормыРеглОтчета(Команды);
КонецЕсли;
ТабличныйДокумент.Очистить();
ОбъектОтчета(ЭтаФорма.ИмяФормы).СформироватьСтруктуруРеквизитовФормы(
Параметры.мВыбраннаяФорма, СтруктураРеквизитовФормы);
СтруктураРеквизитовФормы.мЧтоОчищать = "Расчетную ведомость";
СтруктураРеквизитовФормы.мПоляПоискаПоказателяВТСП = "КодПоказателяПоСоставу, КодПоказателяПоФорме";
СоответствиеЕдиницыИзмеренияДелителю = Новый Структура;
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1", 1);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000", 1000);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000000", 1000000);
МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип("Булево"));
СтруктураРеквизитовФормы.мОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
СтруктураРеквизитовФормы.мОписаниеТиповЧислоЕ = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(16, 2));
КолИсхСтрокИдГруппы1 = 1;
КолИсхСтрокИдМСЧ_Таблица2_1 = 1;
КолИсхСтрокИдМСЧ_Таблица2_2 = 1;
КолИсхСтрокИдМСЧ_Таблица2_3 = 1;
КолИсхСтрокИдГруппы91 = 1;
КолКолонокИдГруппы1 = 15;
КолКолонокИдМСЧ_Таблица2_1 = 5;
КолКолонокИдМСЧ_Таблица2_2 = 5;
КолКолонокИдМСЧ_Таблица2_3 = 5;
КолКолонокИдГруппы91 = 16;
СтруктураДанныхТитульный = Новый Структура;
СтруктураДанныхТаблица1 = Новый Структура;
СтруктураДанныхТаблица1_1 = Новый Структура;
СтруктураДанныхТаблица2 = Новый Структура;
СтруктураДанныхТаблица3_4 = Новый Структура;
СтруктураДанныхТаблица5 = Новый Структура;
СтруктураДанныхТаблица91 = Новый Структура;
мСтруктураМногострочныхРазделов = Новый Структура;
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, СтруктураРеквизитовФормы.ИдГруппы1);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы91, СтруктураРеквизитовФормы.ИдГруппы91);
мСтруктураМногостраничныхРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, КолИсхСтрокИдГруппы1);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, КолИсхСтрокИдМСЧ_Таблица2_1);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, КолИсхСтрокИдМСЧ_Таблица2_2);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, КолИсхСтрокИдМСЧ_Таблица2_3);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы91, КолИсхСтрокИдГруппы91);
мСтруктураКолвоКолонокРазделов = Новый Структура;
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1, КолКолонокИдГруппы1);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1, КолКолонокИдМСЧ_Таблица2_1);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2, КолКолонокИдМСЧ_Таблица2_2);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3, КолКолонокИдМСЧ_Таблица2_3);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы91, КолКолонокИдГруппы91);
ЦветЗаполняетсяТолькоВручную = Новый Цвет(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;П000020001103;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020018003", "П000020012003;П000020014103;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020009003", "П000020018003;П000020008003;П000020001003;П000020001103;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020014103;П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;П000020001103;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020014103;П000020015003;П000020016003;П000020017003;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020015001;П000020015401;П000020015101;П000020015201;П000020015301;П000020016001;П000020016401;П000020016101;П000020016201;П000020016301;П000020013003;П000020014003");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020019003", "П000020008003;П000020018003;П000020001003;П000020001103;П000020002003;П000020003003;П000020004003;П000020005003;П000020006003;П000020007003;П000020002001;П000020002401;П000020002101;П000020002201;П000020002301;П000020012003;П000020014103;П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");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000910000107", "П000910000109;П000910000111;П000910000113");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000910000108", "П000910000110;П000910000112;П000910000114");
КонецПроцедуры
&НаСервере
Процедура Инициализация(БезОткрытияФормы = Ложь) Экспорт
СтруктураРеквизитовФормы.мБезОткрытияФормы = БезОткрытияФормы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ДобавитьПризнакПериодОтчетаВходитВПервыйКвартал(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы);
ЗаполнитьСтруктуруЗависимыхЯчеекДляАвторасчета();
ЗаполнитьНачальныеНастройки();
ФормироватьСтруктуруСвойствСтраниц();
СформироватьДеревоРазделовОтчетаНаСервере();
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
Если НЕ БезОткрытияФормы Тогда
СформироватьСпискиВыбора();
КонецЕсли;
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
ЗаполнитьПустыеСтруктурыДанных();
НачальнаяПодготовкаФормы();
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
ИзменитьВариантыЗаполненияПоказателейТаблица91(ЭтаФорма);
Если СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
РасчетВСтруктуре(ЭтаФорма, "Таблица1_1");
РасчетВСтруктуре(ЭтаФорма, "Таблица91");
КонецЕсли;
ОбъектОтчета.УстановитьРазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
СтруктураДанныхТаблица1);
УстановитьДоступностьОбластей();
РегламентированнаяОтчетность.ДобавитьКнопкуПрисоединенныеФайлы(ЭтаФорма);
РегламентированнаяОтчетностьКлиентСервер.ПриИнициализацииФормыРегламентированногоОтчета(ЭтаФорма, "ФСС");
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗначениеТаймера = ЗначениеТаймера();
ЗаполнитьАвтоНаСервере();
ЗаписатьЗамер(ЗначениеТаймера);
КонецЕсли;
РегламентированнаяОтчетность.ПриИнициализации(ЭтотОбъект,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ИзменитьВариантыЗаполненияПоказателейТаблица1_1(Форма)
ВариантыЗаполненияТаблица1_1 = Форма.ТаблицаВариантыЗаполненияТаблица1_1[0].ТаблицаВариантовЗаполнения;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьВариантыЗаполненияПоказателейТаблицы1_1Формы4ФСС(
ВариантыЗаполненияТаблица1_1,
Форма.СтруктураРеквизитовФормы);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ИзменитьВариантыЗаполненияПоказателейТаблица91(Форма)
ВариантыЗаполненияТаблица91 = Форма.ТаблицаВариантыЗаполненияТаблица91[0].ТаблицаВариантовЗаполнения;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьВариантыЗаполненияПоказателейТаблицы91Формы4ФСС(
ВариантыЗаполненияТаблица91,
Форма.СтруктураРеквизитовФормы);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачальныеНастройки() Экспорт
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ТаблицаСоставПоказателей = ДанныеФормыВЗначение(мТаблицаСоставПоказателей, Тип("ТаблицаЗначений"));
ОбъектОтчета.СформироватьВариантыЗаполнения(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
мСтруктураВариантыЗаполнения,
ТаблицаСоставПоказателей);
ЗначениеВДанныеФормы(ТаблицаСоставПоказателей, мТаблицаСоставПоказателей);
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ].Добавить();
ЗначениеВДанныеФормы(ВариантЗаполнения.Значение[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.ИмяСтраницы = "Таблица91";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдГруппы91;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
КонецПроцедуры
&НаСервере
Процедура СформироватьДеревоРазделовОтчетаНаСервере() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьДеревоРазделовОтчетаНаКлиенте() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура СформироватьДеревоРазделовОтчета(Форма)
Форма["РазделыОтчета"].ПолучитьЭлементы().Очистить();
Для Каждого ЭлементДереваСтраницОтчета Из Форма["мДеревоСтраницОтчета"].ПолучитьЭлементы() Цикл
Если ЭлементДереваСтраницОтчета.ПоказатьСтраницу = 1 Тогда
ЭлементРазделовОтчета = Форма["РазделыОтчета"].ПолучитьЭлементы().Добавить();
ЭлементРазделовОтчета.КолонкаРазделыОтчета = ЭлементДереваСтраницОтчета.Представление;
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементДереваСтраницОтчета.ИмяСтраницы;
ЭлементРазделовОтчета.ИндексКартинки = 1;
ЭлементРазделовОтчета.РазделМногостраничный = Ложь;
ЭлементРазделовОтчета.РазделМногострочный = РегламентированнаяОтчетностьКлиентСервер.СвойствоОпределено(
Форма, "мТаблицаМногострочныхРазделов");
НайденноеЗначение = Неопределено;
Если Форма["мСтруктураМногостраничныхРазделов"].Свойство(
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим, НайденноеЗначение) Тогда
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = Форма[НайденноеЗначение];
ЭлементРазделовОтчета.ИндексКартинки = 0;
ЭлементРазделовОтчета.РазделМногостраничный = Истина;
Для НомерСтраницы = 1 По НайденноеЗначение.Количество() Цикл
СтраницаРазделаОтчета = ЭлементРазделовОтчета.ПолучитьЭлементы().Добавить();
СтраницаРазделаОтчета.КолонкаРазделыОтчета = "Стр. " + НомерСтраницы;
СтраницаРазделаОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим;
СтраницаРазделаОтчета.КолонкаНомерСтраницыРазделаОтчета = НомерСтраницы;
СтраницаРазделаОтчета.ИндексКартинки = 1;
СтраницаРазделаОтчета.РазделМногостраничный = ЭлементРазделовОтчета.РазделМногостраничный;
СтраницаРазделаОтчета.РазделМногострочный = ЭлементРазделовОтчета.РазделМногострочный;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СформироватьСпискиВыбора()
МакетСоставаПоказателей = ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет("СпискиВыбора2017Кв3");
КоллекцияСписковВыбора = Новый Соответствие;
Для Каждого Область Из МакетСоставаПоказателей.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда
Если Область.Имя = "КодыПоОКВЭД" Тогда
НомСтроки = Область.Верх - 2;
Обл_ЗаголовокТаблицы = МакетСоставаПоказателей.Область(НомСтроки, 1);
ЗаголовокТаблицы = СокрЛП(Обл_ЗаголовокТаблицы.Текст);
Табл = Новый ТаблицаЗначений;
НомСтроки = Область.Верх - 1;
НомКолонки = 1;
Обл_НазваниеКолонки = МакетСоставаПоказателей.Область(НомСтроки, НомКолонки);
Пока Обл_НазваниеКолонки <> Неопределено И ЗначениеЗаполнено(Обл_НазваниеКолонки.Текст) Цикл
Табл.Колонки.Добавить("Колонка" + Формат(НомКолонки, "ЧГ="),, Обл_НазваниеКолонки.Текст, Обл_НазваниеКолонки.ШиринаКолонки);
НомКолонки = НомКолонки + 1;
Обл_НазваниеКолонки = МакетСоставаПоказателей.Область(НомСтроки, НомКолонки);
КонецЦикла;
ВерхОбласти = Область.Верх;
НизОбласти = Область.Низ;
КоличествоКолонок = НомКолонки - 1;
Для НомСтроки = ВерхОбласти По НизОбласти Цикл
НовСтрока = Табл.Добавить();
Для НомКолонки = 1 По КоличествоКолонок Цикл
НовСтрока[НомКолонки - 1] = СокрЛП(МакетСоставаПоказателей.Область(НомСтроки, НомКолонки).Текст);
КонецЦикла;
КонецЦикла;
Табл.Сортировать("Колонка1");
Если НЕ СтруктураРеквизитовФормы.Свойство("АдресаТаблицВыбораЗначений") Тогда
СтруктураРеквизитовФормы.Вставить("АдресаТаблицВыбораЗначений", Новый Структура);
КонецЕсли;
АдресаТаблицВыбораЗначений = СтруктураРеквизитовФормы.АдресаТаблицВыбораЗначений;
Если НЕ АдресаТаблицВыбораЗначений.Свойство(Область.Имя) Тогда
АдресаТаблицВыбораЗначений.Вставить(Область.Имя, Неопределено);
КонецЕсли;
ОписаниеТаблицыВыбора = Новый Массив;
ОписаниеТаблицыВыбора.Добавить(Табл);
ОписаниеТаблицыВыбора.Добавить(ЗаголовокТаблицы);
РегламентированнаяОтчетность.ПоместитьВКэш(ОписаниеТаблицыВыбора,
УникальныйИдентификатор, АдресаТаблицВыбораЗначений[Область.Имя]);
Иначе
ВерхОбласти = Область.Верх;
НизОбласти = Область.Низ;
ТаблСписка = Новый ТаблицаЗначений;
ТаблСписка.Колонки.Добавить(
"Код",,, МакетСоставаПоказателей.Область(ВерхОбласти, 1, ВерхОбласти, 1).ШиринаКолонки);
ТаблСписка.Колонки.Добавить(
"Название",,, МакетСоставаПоказателей.Область(ВерхОбласти, 2, ВерхОбласти, 2).ШиринаКолонки);
Для НомСтр = ВерхОбласти По НизОбласти Цикл
КодПоказателя = СокрП(МакетСоставаПоказателей.Область(НомСтр, 1).Текст);
Если КодПоказателя <> "###" Тогда
НовСтрока = ТаблСписка.Добавить();
НовСтрока.Код = КодПоказателя;
НовСтрока.Название = СокрП(МакетСоставаПоказателей.Область(НомСтр, 2).Текст);
КонецЕсли;
КонецЦикла;
КоллекцияСписковВыбора.Вставить(Область.Имя, ТаблСписка);
КонецЕсли;
КонецЕсли;
КонецЦикла;
СвойстваПоказателей.Очистить();
РегламентированнаяОтчетность.ДобавитьСтрокуОписанияВвода(СвойстваПоказателей, "БюджетнаяОрганизация", 1, ,
"Выбор признака страхователя, являющегося бюджетной организацией", КоллекцияСписковВыбора["БюджетнаяОрганизация"]);
РегламентированнаяОтчетность.ДобавитьСтрокуОписанияВвода(СвойстваПоказателей, "ПрПодп", 1, ,
"Выбор подписанта", КоллекцияСписковВыбора["Подписант"]);
РегламентированнаяОтчетность.ДобавитьСтрокуОписанияВвода(СвойстваПоказателей, "ПрекращениеДеятельности", 1, ,
"Прекращение деятельности", КоллекцияСписковВыбора["ПрекращениеДеятельности"]);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказатель(Элемент, Область, КодПоказателя, Знач ЭтоСумма, Знач ТекстВыбора, ТаблицаВыбора, СтандартнаяОбработка, КолонкаПоиска = "Код") Экспорт
Если ТаблицаВыбора = Неопределено ИЛИ СтруктураРеквизитовФормы.мАвтоВыборКодов Тогда
Возврат;
КонецЕсли;
СтандартнаяОбработка = Ложь;
Если Область.Имя = КодПоказателя Тогда
ИсходноеЗначение = ?(ТипЗнч(Область.Значение) = Тип("Строка"), СокрЛП(Область.Значение), Область.Значение);
Иначе
Разделитель = ?(Лев(Область.Имя, СтрДлина(КодПоказателя) + 1) = КодПоказателя + "_", "_", "");
ИндексОбласти = 1;
ИсходноеЗначение = "";
Пока ЭтаФорма[ТекущийЭлемент.Имя].Области.Найти(
КодПоказателя + Разделитель + Формат(ИндексОбласти, "ЧГ=")) <> Неопределено Цикл
ИсходноеЗначение = ИсходноеЗначение + Строка(
ЭтаФорма[ТекущийЭлемент.Имя].Области[КодПоказателя + Разделитель + Формат(ИндексОбласти, "ЧГ=")].Значение);
ИндексОбласти = ИндексОбласти + 1;
КонецЦикла;
ИсходноеЗначение = СокрЛП(ИсходноеЗначение);
КонецЕсли;
Если Область.Имя = "ПрПодп" Тогда
ПрПодписанта = ТабличныйДокумент.Области.ПрПодп.Значение;
КонецЕсли;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("Заголовок", ТекстВыбора);
ПараметрыФормы.Вставить("ТаблицаЗначений", ТаблицаВыбора);
ПараметрыФормы.Вставить("СтруктураДляПоиска", Новый Структура(КолонкаПоиска, ИсходноеЗначение));
ДополнительныеПараметры = Новый Структура("ИндексОбласти, КодПоказателя, КолонкаПоиска, Область, ПрПодписанта, Разделитель", ИндексОбласти, КодПоказателя, КолонкаПоиска, Область, ПрПодписанта, Разделитель);
ОписаниеОповещения = Новый ОписаниеОповещения("ВвестиПоказательЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОткрытьФорму("Обработка.ОбщиеОбъектыРеглОтчетности.Форма.ФормаВыбораЗначенияИзТаблицы", ПараметрыФормы, ЭтаФорма,,,, ОписаниеОповещения, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказательЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
ИндексОбласти = ДополнительныеПараметры.ИндексОбласти;
КодПоказателя = ДополнительныеПараметры.КодПоказателя;
КолонкаПоиска = ДополнительныеПараметры.КолонкаПоиска;
Область = ДополнительныеПараметры.Область;
ПрПодписанта = ДополнительныеПараметры.ПрПодписанта;
Разделитель = ДополнительныеПараметры.Разделитель;
ИмяРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Если Область.Имя = КодПоказателя
ИЛИ РегламентированнаяОтчетностьКлиентСервер.ПоказательВходитВМногострочнуюЧасть(
ЭтаФорма, КодПоказателя) > 0 Тогда
Область.Значение = РезультатВыбора[КолонкаПоиска];
Иначе
СтрокаРезультатВыбора = Строка(РезультатВыбора[КолонкаПоиска]);
Для Инд = СтрДлина(СтрокаРезультатВыбора) + 1 По ИндексОбласти - 1 Цикл
СтрокаРезультатВыбора = " " + РезультатВыбора[КолонкаПоиска];
КонецЦикла;
Для Инд = 1 По ИндексОбласти - 1 Цикл
ЭтаФорма[ТекущийЭлемент.Имя].Области[КодПоказателя + Разделитель + Формат(Инд, "ЧГ=")].Значение
= СокрЛП(Сред(РезультатВыбора[КолонкаПоиска], Инд, 1));
КонецЦикла;
КонецЕсли;
Если Область.Имя = "ПрПодп" Тогда
ПрПодписантаНов = ТабличныйДокумент.Области.ПрПодп.Значение;
СменилсяПрПодписанта = ?(ПрПодписанта = ПрПодписантаНов, Ложь, Истина);
Если СменилсяПрПодписанта Тогда
Если ПрПодписантаНов = "1" Тогда
ЗаполнитьСведенияОбОрганизации();
ИначеЕсли ПрПодписантаНов = "2" ИЛИ ПрПодписантаНов = "3" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Ложь;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветЖелтый;
ТабличныйДокумент.Области.ОргПодписантФамилия.Значение = "";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, ИмяРаздела);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказатели(РезультатВыбора, ДополнительныеПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Область = ДополнительныеПараметры.Область;
Область.Значение = РезультатВыбора.Колонка1;
РезультатВыбора.Колонка3 = ?(РезультатВыбора.Колонка3 = "", 0, Число(РезультатВыбора.Колонка3));
РезультатВыбора.Колонка4 = ?(РезультатВыбора.Колонка4 = "", 0, Число(РезультатВыбора.Колонка4));
Если СтрНачинаетсяС(Область.Имя, "П000110000104") Тогда
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000110000104", "П000110000114"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(Область.Имя, "П000910000102") Тогда
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000910000102", "П000910000103"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка3;
КонецЕсли;
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000910000102", "П000910000104"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма,
Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
КонецПроцедуры
&НаСервере
Процедура НачальнаяПодготовкаФормы()
Перем ИсходноеКоличествоСтрокГруппы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мДокументВосстановлен = Ложь;
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
СтруктураРеквизитовФормы.ФлагСохранения = Ложь;
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
СтруктураРеквизитовФормы.ВидДокумента = 0;
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
НачальныеОперацииСМногострочнымиБлоками();
ОбъектОтчета.СформироватьСтруктуруДокУпПред(СтруктураРеквизитовФормы.мВыбраннаяФорма, мСтруктураДокУпПред);
Если СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено Тогда
ВосстановитьСохраненныеДанные();
ДатаПодписи = ТекущаяДатаСеанса();
Иначе
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы Тогда
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = Перечисления.ПорядкиОкругленияОтчетности.Окр1;
СтруктураРеквизитовФормы.мДелитель = 1;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = 2;
КопироватьДанныеФормы(мДеревоСтраницОтчета, мДеревоВыбранныхСтраниц);
КонецЕсли;
Модифицированность = Истина;
Иначе
ВосстановитьСохраненныеДанные();
Если ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСкопированаФорма) Тогда
СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено;
ДатаПодписи = ТекущаяДатаСеанса();
Модифицированность = Истина;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы
И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
ЗаблокироватьДанныеДляРедактирования(СтруктураРеквизитовФормы.мСохраненныйДок, , ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
КонецЕсли;
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
НастройкиВидимости = РегламентированнаяОтчетность.НастройкиВидимостиЭлементовФормы(ЭтаФорма);
СтруктураРеквизитовФормы.Вставить("НастройкиВидимостиЭлементовФормы", НастройкиВидимости);
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуЗаполнить Тогда
Элементы.Заполнить.Видимость = Ложь;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуЗаполнить Тогда
Элементы.Заполнить.Видимость = СтруктураРеквизитовФормы.НастройкиВидимостиЭлементовФормы.ПостояннаяВидимость;
КонецЕсли;
Для каждого Элем Из ТаблицаВариантыЗаполненияТаблица91[0].ТаблицаВариантовЗаполнения Цикл
Если Элем.КодПоказателя = "П000910000109" И Формат(Элем.ВариантЗаполнения, "ЧГ=") = "3" Тогда
СтруктураРеквизитовФормы.ВариантЗаполненияП000910000107 = "3";
ИначеЕсли Элем.КодПоказателя = "П000910000110" И Формат(Элем.ВариантЗаполнения, "ЧГ=") = "3" Тогда
СтруктураРеквизитовФормы.ВариантЗаполненияП000910000108 = "3";
КонецЕсли;
КонецЦикла;
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуРасшифровать Тогда
Элементы.Расшифровать.Видимость = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюГруппаРасшифровать.Видимость = Ложь;
КонецЕсли;
ОбъектОтчета.ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено
Или СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация
ИЛИ СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗаполнитьДатуВЯчейкахНаСервере();
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, , Истина);
Иначе
РегламентированнаяОтчетность.ПолучитьЗначениеОКВЭД(ДатаПодписи, СтруктураРеквизитовФормы);
КонецЕсли;
Для Каждого СтрокаУровня1 Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
НазваниеСтраницы = СтрокаУровня1.ИмяСтраницы;
МногостраничностьВРазделе = СтрокаУровня1.МногостраничностьВРазделе;
Если (СтруктураРеквизитовФормы.мДокументВосстановлен) И (МногостраничностьВРазделе) Тогда
Продолжить;
КонецЕсли;
УстановитьЦветФонаЯчейкиНаСервере(,, НазваниеСтраницы);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьОбластей()
Если ТабличныйДокумент.Области.ПрПодп.Значение = "1" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Истина;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветБелый;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НачальныеОперацииСМногострочнымиБлоками()
Перем ИсходноеКоличествоСтрокГруппы;
Для Каждого ЭлементСтруктуры Из мСтруктураМногострочныхРазделов Цикл
ИмяГруппы = ЭлементСтруктуры.Ключ;
СтруктураГруппы = ЭтаФорма[ЭлементСтруктуры.Значение];
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
Для НСтр = 1 По ИсходноеКоличествоСтрокГруппы Цикл
СтруктураГруппы.Добавить();
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДатуВЯчейкахНаСервере() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДатуВЯчейкахНаКлиенте() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьДатуВЯчейках(Форма)
Форма.ТабличныйДокумент.Области.ДатаПодписи.Значение = Форма.ДатаПодписи;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОбОрганизации()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи,
Истина);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПустыеСтруктурыДанных()
СохрТабличныйДокумент = Новый ТабличныйДокумент;
СохрТабличныйДокумент.Вывести(ТабличныйДокумент);
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе
И (ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
ИначеЕсли Раздел.МногостраничностьВРазделе
И (ЭтаФорма[мСтруктураМногостраничныхРазделов[Раздел.ИмяСтраницы]][0].Данные.Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
КонецЕсли;
КонецЦикла;
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(СохрТабличныйДокумент);
КонецПроцедуры
&НаСервере
Процедура СохранитьДанныеРаздела(НаимРаздела, ОчищатьРазделЕслиЕстьМногострочность, ИзменятьАктивнуюСтраницу = Истина)
Если НаимРаздела = "Таблица1_1" ИЛИ НаимРаздела = "Таблица91" Тогда
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(НаимРаздела);
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
ИначеЕсли НаимРаздела = "Таблица2" Тогда
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200161");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200162");
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, "П0000200163");
Иначе
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СобратьДанныеТекущегоТаблПоляНаСервере(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиенте
Функция СобратьДанныеТекущегоТаблПоляНаКлиенте(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция СобратьДанныеТекущегоТаблПоля(Форма, ИмяТабличногоПоля) Экспорт
СтруктураДанныхПоля = Новый Структура;
Для Инд = 0 По Форма[ИмяТабличногоПоля].Области.Количество() - 1 Цикл
ТекущаяОбласть = Форма[ИмяТабличногоПоля].Области[Инд];
Если Не ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Продолжить;
КонецЕсли;
Если ТекущаяОбласть.СодержитЗначение <> Истина Тогда
Продолжить;
КонецЕсли;
ИмяПоказателя = ТекущаяОбласть.Имя;
ЗначениеПоказателя = ТекущаяОбласть.Значение;
СтруктураДанныхПоля.Вставить(ИмяПоказателя, ЗначениеПоказателя);
КонецЦикла;
Возврат СтруктураДанныхПоля;
КонецФункции
&НаКлиенте
Процедура ОчиститьТабличноеПолеНаКлиенте(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
Если ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2"
ИЛИ ВыбТабличноеПолеИмя = "Таблица91" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличноеПолеНаСервере(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры" , " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы" , " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего" , " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи" , "");
мСтруктураДокУпПред.Вставить("КемВыдан" , " ");
Если ВыбТабличноеПолеИмя = "Титульный" Тогда
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
КонецЕсли;
Если ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2"
ИЛИ ВыбТабличноеПолеИмя = "Таблица91" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя)
РегламентированнаяОтчетностьКлиентСервер.ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя);
КонецПроцедуры
&НаСервере
Процедура ДатаПодписиПриИзмененииНаСервере()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, Истина);
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ЗаполнитьДатуВЯчейкахНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ОбновитьНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНаСервере()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи);
СтруктураДанныхТаблица1.Вставить("П000010000503",
ОбъектОтчета.РазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы));
РасчетВСтруктуре(ЭтаФорма, "Таблица1");
КонецПроцедуры
&НаКлиенте
Процедура РазделыОтчетаПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущиеДанные = Неопределено
ИЛИ Элемент.ТекущаяСтрока = СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета Тогда
Возврат;
КонецЕсли;
КМенюТД = Элементы.ТабличныйДокумент.КонтекстноеМеню;
СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета = Элемент.ТекущаяСтрока;
Если СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере Тогда
Если Элемент.ТекущиеДанные.РазделМногостраничный Тогда
Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета =
?(Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = Неопределено
ИЛИ Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = 0, 1, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
Иначе
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Истина;
КонецЕсли;
Элементы.Обновить.Доступность = ?(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Титульный", Истина, Ложь);
Если Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица1_1"
ИЛИ Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица2"
ИЛИ Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица91" Тогда
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Истина;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Истина;
Иначе
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Ложь;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Ложь;
КонецЕсли;
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТабличныйДокумент.Область(1, 1);
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетСтраницыВТабличныйДокументНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Истина);
ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета);
СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекРаздела;
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + ИмяТекРаздела));
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьТипОтображенияРедактируемойЯчейкиТабличногоДокумента(ТабличныйДокумент);
КонецЕсли;
ТекТабличноеПоле = ЭтаФорма.ТабличныйДокумент;
Если ИмяТекРаздела = "Таблица1_1" ИЛИ ИмяТекРаздела = "Таблица91" Тогда
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяТекРаздела);
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
ИначеЕсли ИмяТекРаздела = "Таблица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;
РазделыРеглОтчета.Таблица91.Данные = СтруктураДанныхТаблица91;
РазделыРеглОтчета.Таблица1_1.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица1_1.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
РазделыРеглОтчета.Таблица91.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица91.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
Для Каждого ДанныеДопСтрок Из РазделыРеглОтчета.Таблица2.ДанныеДопСтрок Цикл
РазделыРеглОтчета.Таблица2.ДанныеДопСтрок.Вставить(ДанныеДопСтрок.Ключ,
ДанныеФормыВЗначение(ЭтаФорма[ДанныеДопСтрок.Ключ], Тип("ТаблицаЗначений")));
КонецЦикла;
СтруктураВариантыЗаполнения = Новый Структура;
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
МассивВариантовЗаполненияСтраниц = Новый Массив;
Для Каждого СтрокаТаблицыВариантовЗаполнения Из ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ] Цикл
МассивВариантовЗаполненияСтраниц.Добавить(ДанныеФормыВЗначение(
СтрокаТаблицыВариантовЗаполнения.ТаблицаВариантовЗаполнения, Тип("ТаблицаЗначений")));
КонецЦикла;
СтруктураВариантыЗаполнения.Вставить(ВариантЗаполнения.Ключ, МассивВариантовЗаполненияСтраниц);
КонецЦикла;
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("ИсточникОтчета", Метаданные.Отчеты[Сред(Лев(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""),
СтрНайти(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""), ".Форма.")
- 1), 7)].Имя);
ПараметрыЗаписи.Вставить("ИмяФормыОтчета", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыЗаписи.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыЗаписи.Вставить("ДатаНачала", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыЗаписи.Вставить("ДатаОкончания", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыЗаписи.Вставить("СохраняемыйРеглОтчет", СтруктураРеквизитовФормы.мСохраненныйДок);
ПараметрыЗаписи.Вставить("ДатаПодписи", ДатаПодписи);
ПараметрыЗаписи.Вставить("ЕдиницаИзмерения", СтруктураРеквизитовФормы.ЕдиницаИзмерения);
ПараметрыЗаписи.Вставить("ТочностьЕдиницыИзмерения", СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения);
ПараметрыЗаписи.Вставить("Комментарий", Комментарий);
ПараметрыЗаписи.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыЗаписи.Вставить("СтруктураВариантыЗаполнения", СтруктураВариантыЗаполнения);
ПараметрыЗаписи.Вставить("ДокументУпПред", мСтруктураДокУпПред);
ПараметрыЗаписи.Вставить("ВерсияФормы", СтруктураРеквизитовФормы.мВерсияФормы);
ПараметрыЗаписи.Вставить("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
ПараметрыЗаписи.Вставить("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
ПараметрыЗаписи.Вставить("ФлажокОтклАвтоРасчет", СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыЗаписи.Вставить("ФлПроверятьСоотношенияПриПечатиИВыгрузки",
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
ПараметрыЗаписи.Вставить("ДеревоСтраницОтчета", РеквизитФормыВЗначение("мДеревоСтраницОтчета"));
ПараметрыЗаписи.Вставить("Вариант", СтруктураРеквизитовФормы.мВариант);
ПараметрыЗаписи.Вставить("РазделыОтчета", РазделыРеглОтчета);
ПараметрыЗаписи.Вставить("НаименованиеОтчета", СтруктураРеквизитовФормы.НаименованиеОтчета);
РегламентированнаяОтчетность.ПередЗаписьюНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
Если ОбъектОтчета.ЗаписатьДокумент(СтруктураРеквизитовФормы.мВыбраннаяФорма, ПараметрыЗаписи) = Ложь Тогда
Если НЕ Автосохранение Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПараметрыЗаписи.Ошибки[0];
Сообщение.Сообщить();
КонецЕсли;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Возврат Ложь;
КонецЕсли;
РегламентированнаяОтчетность.ПослеЗаписиНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
РегламентированнаяОтчетность.СохранитьСтатусОтправкиРеглОтчета(ЭтаФорма);
Модифицированность = Ложь;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы
И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
ЗаблокироватьДанныеДляРедактирования(СтруктураРеквизитовФормы.мСохраненныйДок, , ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
Если ДанныеДляРазблокирования <> Неопределено Тогда
РазблокироватьДанныеДляРедактирования(ДанныеДляРазблокирования.Ключ, ДанныеДляРазблокирования.ИдФормы);
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ВосстановитьСохраненныеДанные()
Перем ДанныеМногострочныхРазделов;
Перем ДанныеМногостраничныхРазделов;
Перем ДанныеВариановАвтоЗаполнения;
Перем ПоказателиОтчета;
Перем ВерсияФормы;
Перем АвторасчетОтключен;
Перем ТаблицаМногостраничногоДокумента;
Если СтруктураРеквизитовФормы.Организация <> СтруктураРеквизитовФормы.мСохраненныйДок.Организация
И СтруктураРеквизитовФормы.Организация <> РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа("СправочникСсылка.Организации")
И СтруктураРеквизитовФормы.Организация <> Неопределено Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.Организация = СтруктураРеквизитовФормы.мСохраненныйДок.Организация;
КонецЕсли;
ДатаПодписи = СтруктураРеквизитовФормы.мСохраненныйДок.ДатаПодписи;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ЕдиницаИзмерения;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ТочностьЕдиницыИзмерения;
Комментарий = СтруктураРеквизитовФормы.мСохраненныйДок.Комментарий;
СписокСохранения = СтруктураРеквизитовФормы.мСохраненныйДок.ДанныеОтчета.Получить();
ДеревоНастройкиСтраниц = СтруктураРеквизитовФормы.мСохраненныйДок.ДеревоНастройкиСтраниц.Получить();
Если НЕ ДеревоНастройкиСтраниц = Неопределено Тогда
Счетчик = 0;
НайденРазделСКЕ_ИФ = Ложь;
Для Каждого СтрокаДерева Из ДеревоНастройкиСтраниц.Строки Цикл
ЭлементмДеревоСтраницОтчета = мДеревоСтраницОтчета.ПолучитьЭлементы().Получить(Счетчик);
Если СтрокаДерева.ИмяСтраницы = "Таблицы3_4" Тогда
СтрокаДерева.ИмяСтраницы = "Таблица3_4";
КонецЕсли;
Если СтрокаДерева.ИмяСтраницы = "Таблица91" Тогда
НайденРазделСКЕ_ИФ = Истина;
КонецЕсли;
Если СтрокаДерева.ИмяСтраницы = ЭлементмДеревоСтраницОтчета.ИмяСтраницы Тогда
Если НЕ СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление Тогда
СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Если НЕ НайденРазделСКЕ_ИФ Тогда
НовСтрокаДерева = ДеревоНастройкиСтраниц.Строки.Добавить();
НовСтрокаДерева.ИмяСтраницы = "Таблица91";
НовСтрокаДерева.Представление = "Самостоятельные классификационные единицы / источники финансирования";
НовСтрокаДерева.ОриентацияСтраницы = "Ландшафт";
НовСтрокаДерева.ВыводНаПечать = 0;
НовСтрокаДерева.ПоказатьСтраницу = 1;
КонецЕсли;
ЗначениеВРеквизитФормы(ДеревоНастройкиСтраниц.Скопировать(), "мДеревоСтраницОтчета");
КонецЕсли;
Если СписокСохранения.Свойство( "ДанныеМногострочныхРазделов", ДанныеМногострочныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногострочныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, ЭтаФорма[НайденноеЗначение])
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеМногостраничныхРазделов", ДанныеМногостраничныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногостраничныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногостраничныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = ЭтаФорма[НайденноеЗначение];
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, НайденноеЗначение);
Если НайденноеЗначение[0].Свойство("Данные") Тогда
Для Каждого СтрокаТаблЗнач Из НайденноеЗначение Цикл
Если ТипЗнч(СтрокаТаблЗнач.Данные) = Тип("СписокЗначений") Тогда
СтрокаТаблЗнач.Данные.Очистить();
СтрокаТаблЗнач.Данные.Добавить(ЭлементСтруктуры.Значение[НайденноеЗначение.Индекс(СтрокаТаблЗнач)].Данные);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если НайденноеЗначение[0].Свойство("ДанныеДопСтрок") Тогда
Ном = 0;
Для Каждого СтрокаТаблЗнач Из ЭлементСтруктуры.Значение Цикл
Если ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("Структура") Тогда
Для Каждого ЭлСтруктуры Из СтрокаТаблЗнач.ДанныеДопСтрок Цикл
ТаблЗнач = ЭлСтруктуры.Значение;
ЭлСтруктуры.Значение = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(ТаблЗнач, ЭлСтруктуры.Значение);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(ЭлСтруктуры.Значение);
КонецЦикла;
ИначеЕсли ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("ТаблицаЗначений") Тогда
СтрокаТаблЗначДанныеДопСтрок = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(СтрокаТаблЗнач.ДанныеДопСтрок, СтрокаТаблЗначДанныеДопСтрок);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(СтрокаТаблЗначДанныеДопСтрок, "ДанныеФормыКоллекцияТаблицаДопСтрокРаздела");
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеВариантовАвтоЗаполнения", ДанныеВариановАвтоЗаполнения) Тогда
Если НЕ ДанныеВариановАвтоЗаполнения = Неопределено Тогда
мСтруктураВариантыЗаполнения.Очистить();
Для Каждого ЭлементСтруктуры Из ДанныеВариановАвтоЗаполнения Цикл
НаименованиеРаздела = ЭлементСтруктуры.Ключ;
Если ЭлементСтруктуры.Ключ = "Таблицы3_4" Тогда
НаименованиеРаздела = "Таблица3_4";
КонецЕсли;
мСтруктураВариантыЗаполнения.Вставить(НаименованиеРаздела, ЭлементСтруктуры.Ключ);
ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Очистить();
Для Каждого ЭлементМассива Из ЭлементСтруктуры.Значение Цикл
ТаблВарЗаполнения = ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Добавить().ТаблицаВариантовЗаполнения;
ЗначениеВДанныеФормы(ЭлементМассива, ТаблВарЗаполнения);
КонецЦикла;
КонецЦикла;
Если НЕ мСтруктураВариантыЗаполнения.Свойство("Таблица91") Тогда
мСтруктураВариантыЗаполнения.Вставить("Таблица91", "Таблица91");
КонецЕсли;
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
СписокСохранения.Свойство("ФлПроверятьСоотношенияПриПечатиИВыгрузки", СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = ?(СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Неопределено, Ложь, СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СписокСохранения.Свойство("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
Если СтруктураРеквизитовФормы.мАвтоВыборКодов = Неопределено Тогда
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
КонецЕсли;
СписокСохранения.Свойство("АвторасчетОтключен", АвторасчетОтключен);
Если АвторасчетОтключен = Неопределено Тогда
СписокСохранения.Свойство("Автозаполнение", АвторасчетОтключен);
КонецЕсли;
Если НЕ АвторасчетОтключен = Неопределено Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = АвторасчетОтключен;
КонецЕсли;
СписокСохранения.Свойство("ДокументУпПред", мСтруктураДокУпПред);
Если мСтруктураДокУпПред = Неопределено Тогда
мСтруктураДокУпПред = Новый Структура;
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры", " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы", " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи", "");
мСтруктураДокУпПред.Вставить("КемВыдан", " ");
КонецЕсли;
Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
Если ВерсияФормы <> СтруктураРеквизитовФормы.мВерсияФормы Тогда
СтруктураРеквизитовФормы.ФлагСохранения = Истина;
ОбновитьПользовательскиеНастройки();
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство( "ПоказателиОтчета", ПоказателиОтчета );
СформироватьДеревоРазделовОтчетаНаСервере();
Префикс = "ПолеТабличногоДокумента";
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе Тогда
СтароеНаименованиеРаздела = Раздел.ИмяСтраницы;
Если СтароеНаименованиеРаздела = "Таблица3_4"
И НЕ ПоказателиОтчета.Свойство(Префикс + СтароеНаименованиеРаздела) Тогда
СтароеНаименованиеРаздела = "Таблицы3_4";
КонецЕсли;
Если Раздел.ИмяСтраницы = "Таблица91" И НЕ ПоказателиОтчета.Свойство(Префикс + Раздел.ИмяСтраницы) Тогда
Продолжить;
КонецЕсли;
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] = ПоказателиОтчета[Префикс + СтароеНаименованиеРаздела];
Для Каждого ЭлементСтруктуры Из ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] Цикл
Ключ = ПреобразованноеИмяПоказателя(ЭлементСтруктуры.Ключ);
Если НЕ ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Свойство(Ключ) Тогда
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Вставить(Ключ, ЭлементСтруктуры.Значение);
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Удалить(ЭлементСтруктуры.Ключ);
ЭтаФорма[Лев(Ключ, 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);
СохранитьОтчет = Истина;
КонецЕсли;
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица91, П0009100001) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица91, П0009100001);
СохранитьОтчет = Истина;
КонецЕсли;
МассивДанныхДопСтрок = Новый Массив;
МассивДанныхДопСтрок.Добавить(П0000200161);
МассивДанныхДопСтрок.Добавить(П0000200162);
МассивДанныхДопСтрок.Добавить(П0000200163);
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица2, МассивДанныхДопСтрок) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица2, МассивДанныхДопСтрок);
СохранитьОтчет = Истина;
КонецЕсли;
Если СохранитьОтчет Тогда
Сохранить( , , СтруктураРеквизитовФормы.ВидДокумента * НомерКорректировки, , "Титульный");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
ИдГрупп.Вставить("ИдГруппы91", СтруктураРеквизитовФормы.ИдГруппы91);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиенте
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаКлиенте(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
ИдГрупп.Вставить("ИдГруппы91", СтруктураРеквизитовФормы.ИдГруппы91);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста = Неопределено, ТекущаяСтраница = Неопределено, ИдГрупп, ТекущаяОбласть = Неопределено)
Перем ИмяГруппы;
Если ИмяЛиста = Неопределено Тогда
ИмяТекущейСтраницыПанели = ТекущаяСтраница.Имя;
Иначе
ИмяТекущейСтраницыПанели = ИмяЛиста;
КонецЕсли;
Если ИмяТекущейСтраницыПанели = "Таблица2" Тогда
Если ТекущаяОбласть = "П0000200161" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_1;
ИначеЕсли ТекущаяОбласть = "П0000200162" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_2;
ИначеЕсли ТекущаяОбласть = "П0000200163" Тогда
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_3;
Иначе
ИмяГруппы = ИдГрупп.ИдМСЧ_Таблица2_1;
КонецЕсли;
ИначеЕсли ИмяТекущейСтраницыПанели = "Таблица1_1" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы1;
ИначеЕсли ИмяТекущейСтраницыПанели = "Таблица91" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы91;
КонецЕсли;
Возврат ИмяГруппы;
КонецФункции
&НаСервере
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаСервере(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
ИдГрупп.Вставить("ИдГруппы91", СтруктураРеквизитовФормы.ИдГруппы91);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиенте
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаКлиенте(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы1", СтруктураРеквизитовФормы.ИдГруппы1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_1", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_2", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2);
ИдГрупп.Вставить("ИдМСЧ_Таблица2_3", СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3);
ИдГрупп.Вставить("ИдГруппы91", СтруктураРеквизитовФормы.ИдГруппы91);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп) Экспорт
Перем ТекТабличноеПоле;
Если ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_1
ИЛИ ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_2
ИЛИ ИдГруппы = ИдГрупп.ИдМСЧ_Таблица2_3 Тогда
ТекТабличноеПоле = "Таблица2";
ИначеЕсли ИдГруппы = ИдГрупп.ИдГруппы1 Тогда
ТекТабличноеПоле = "Таблица1_1";
ИначеЕсли ИдГруппы = ИдГрупп.ИдГруппы91 Тогда
ТекТабличноеПоле = "Таблица91";
КонецЕсли;
Возврат ТекТабличноеПоле;
КонецФункции
&НаСервере
Процедура ОбновитьСтруктуруМногострочногоРазделаНаСервере(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСтруктуруМногострочногоРазделаНаКлиенте(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьСтруктуруМногострочногоРаздела(Форма, ИмяГруппы)
Перем СтруктураГруппы;
Форма.мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = Форма[СтруктураГруппы];
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = Форма[ТекТабличноеПолеИмя];
Для НСтр = 1 По СтруктураГруппы.Количество() Цикл
ТекСтрокаТаблицы = СтруктураГруппы[НСтр - 1];
НСтрСтр = Формат(НСтр, "ЧГ=");
НачНомер = 1;
Для НомерГрафы = НачНомер По Форма.мСтруктураКолвоКолонокРазделов[ИмяГруппы] Цикл
ИмяКолонки = ИмяГруппы + Формат(НомерГрафы, "ЧЦ=2; ЧВН=");
Если СтруктураГруппы[0].Свойство(ИмяКолонки) Тогда
ИмяЯчейки = ИмяКолонки + "_" + НСтрСтр;
ОбластьЯчейки = ТекТабличноеПоле.Области[ИмяЯчейки];
Если ОбластьЯчейки.СодержитЗначение = Истина Тогда
ЗначениеЯчейки = ОбластьЯчейки.Значение;
Иначе
ЗначениеЯчейки = ОбластьЯчейки.Текст;
КонецЕсли;
ТекСтрокаТаблицы[ИмяКолонки] = ЗначениеЯчейки;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ОбновитьПользовательскиеНастройки()
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='Изменилась версия формы отчета.%1Выполняется обновление пользовательских настроек.'"), Символы.ПС);
Сообщение.Сообщить();
ЕстьИзмененияВариантыЗаполнения = ОбновитьВариантыЗаполнения();
ЕстьИзмененияНастройкаСтраниц = ОбновитьНастройкиСтраниц();
Если ЕстьИзмененияВариантыЗаполнения ИЛИ ЕстьИзмененияНастройкаСтраниц Тогда
Модифицированность = Истина;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Обновление пользовательских настроек успешно завершено.'");
Сообщение.Сообщить();
Иначе
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Изменения в структуре пользовательских настроек не обнаружены.'");
Сообщение.Сообщить();
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОбновитьВариантыЗаполнения()
Перем МассивВариантовЗаполненияСтраниц;
ЕстьИзменения = Ложь;
МакетСоставаПоказателей = ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(СтруктураРеквизитовФормы.мСоставПоказателей);
ОписаниеТиповСтрока15 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(15));
ОписаниеТиповСтрока100 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(100));
ОписаниеТиповСтрока50 = Новый ОписаниеТипов("Строка", , Новый КвалификаторыСтроки(50));
ОписаниеТиповЧисло1 = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(1));
ОписаниеТиповЧисло16_2 = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(16, 2));
Для Инд = 0 По МакетСоставаПоказателей.Области.Количество() - 1 Цикл
ТекОбласть = МакетСоставаПоказателей.Области[Инд];
ИмяСтраницы = ТекОбласть.Имя;
ТаблицаВариантыЗаполнения = Новый ТаблицаЗначений;
ТаблицаВариантыЗаполнения.Колонки.Добавить("КодПоказателя", ОписаниеТиповСтрока15);
ТаблицаВариантыЗаполнения.Колонки.Добавить("ВариантЗаполнения", ОписаниеТиповЧисло1);
ТаблицаВариантыЗаполнения.Колонки.Добавить("ЗначениеАвто", ОписаниеТиповЧисло16_2);
ТаблицаВариантыЗаполнения.Колонки.Добавить("Дельта", ОписаниеТиповЧисло16_2);
ТаблицаВариантыЗаполнения.Колонки.Добавить("Комментарий", ОписаниеТиповСтрока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.Значение
+ Форма.ТабличныйДокумент.Области.П000020001103.Значение
+ Форма.ТабличныйДокумент.Области.П000020002003.Значение
+ Форма.ТабличныйДокумент.Области.П000020003003.Значение
+ Форма.ТабличныйДокумент.Области.П000020004003.Значение
+ Форма.ТабличныйДокумент.Области.П000020005003.Значение
+ Форма.ТабличныйДокумент.Области.П000020006003.Значение
+ Форма.ТабличныйДокумент.Области.П000020007003.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020018003, ОбластьИмя) > 0 Тогда
Форма.ТабличныйДокумент.Области.П000020018003.Значение = Форма.ТабличныйДокумент.Области.П000020012003.Значение
+ Форма.ТабличныйДокумент.Области.П000020014103.Значение
+ Форма.ТабличныйДокумент.Области.П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.Значение;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица91" Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000910000107, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы91, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Форма.ТабличныйДокумент.Области["П000910000107_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000910000109_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000111_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000113_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000910000108, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы91, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Форма.ТабличныйДокумент.Области["П000910000108_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000910000110_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000112_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000114_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "" Тогда
РасчетВСтруктуре(Форма, "Таблица1");
РасчетВСтруктуре(Форма, "Таблица1_1");
РасчетВСтруктуре(Форма, "Таблица2");
РасчетВСтруктуре(Форма, "Таблица3_4");
РасчетВСтруктуре(Форма, "Таблица91");
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РасчетВСтруктуре(Форма, ИмяТекущегоРаздела)
Перем ТаблицаБлока;
Если Форма.СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Возврат;
КонецЕсли;
Если ИмяТекущегоРаздела = "Таблица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.Значение
+ Форма.ТабличныйДокумент.Области.П000020001103.Значение
+ Форма.ТабличныйДокумент.Области.П000020002003.Значение
+ Форма.ТабличныйДокумент.Области.П000020003003.Значение
+ Форма.ТабличныйДокумент.Области.П000020004003.Значение
+ Форма.ТабличныйДокумент.Области.П000020005003.Значение
+ Форма.ТабличныйДокумент.Области.П000020006003.Значение
+ Форма.ТабличныйДокумент.Области.П000020007003.Значение;
Форма.ТабличныйДокумент.Области.П000020008003.Значение = СтруктураДанныхРаздела.П000020008003;
СтруктураДанныхРаздела.П000020018003 = Форма.ТабличныйДокумент.Области.П000020012003.Значение
+ Форма.ТабличныйДокумент.Области.П000020014103.Значение
+ Форма.ТабличныйДокумент.Области.П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
+ СтруктураДанныхРаздела.П000020001103
+ СтруктураДанныхРаздела.П000020002003
+ СтруктураДанныхРаздела.П000020003003
+ СтруктураДанныхРаздела.П000020004003
+ СтруктураДанныхРаздела.П000020005003
+ СтруктураДанныхРаздела.П000020006003
+ СтруктураДанныхРаздела.П000020007003;
СтруктураДанныхРаздела.П000020018003 = СтруктураДанныхРаздела.П000020012003
+ СтруктураДанныхРаздела.П000020014103
+ СтруктураДанныхРаздела.П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;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица91" Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы91, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
Форма.ТабличныйДокумент.Области["П000910000107_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000910000109_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000111_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000113_" + Постфикс].Значение;
Форма.ТабличныйДокумент.Области["П000910000108_" + Постфикс].Значение
= Форма.ТабличныйДокумент.Области["П000910000110_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000112_" + Постфикс].Значение
+ Форма.ТабличныйДокумент.Области["П000910000114_" + Постфикс].Значение;
Иначе
СтрБлока = ТаблицаБлока[Ном - 1];
СтрБлока["П000910000107"]
= СтрБлока["П000910000109"] + СтрБлока["П000910000111"] + СтрБлока["П000910000113"];
СтруктураДанныхРаздела["П000910000107_" + Постфикс] = СтрБлока["П000910000107"];
СтрБлока["П000910000108"]
= СтрБлока["П000910000110"] + СтрБлока["П000910000112"] + СтрБлока["П000910000114"];
СтруктураДанныхРаздела["П000910000108_" + Постфикс] = СтрБлока["П000910000108"];
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура СкорректироватьМакетТаблица2(ИмяГруппы, СтруктураГруппыКоличество) Экспорт
Если ИмяГруппы = СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1 Тогда
ИмяПоследнейЯчейкиМСЧ = ИмяГруппы + "01_" + СтрокаЧГ0(СтруктураГруппыКоличество);
ПоследняяЯчейкаМСЧ = ТабличныйДокумент.Области[ИмяПоследнейЯчейкиМСЧ];
ВерхСтроки5 = 19;
ОбъединяемаяОбласть = ТабличныйДокумент.Область(ВерхСтроки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 = 17;
НизСтроки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.Очистить();
СтруктураДанныхТаблица91.Очистить();
Для Каждого мнгРаздел Из мСтруктураМногострочныхРазделов Цикл
ЭтаФорма[мнгРаздел.Ключ].Очистить();
КонецЦикла;
НачальныеОперацииСМногострочнымиБлоками();
ЗаполнитьПустыеСтруктурыДанных();
Если НЕ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ОчиститьТабличноеПолеНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
РегламентированнаяОтчетностьКлиентСервер.ОчиститьВариантыЗаполнения(ЭтаФорма);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
ИзменитьВариантыЗаполненияПоказателейТаблица91(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницу(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОчиститьТекущуюСтраницуЗавершение", ЭтотОбъект);
РегламентированнаяОтчетностьКлиент.МеханизмыОчисткиРегламентированныхОтчетов(
ЭтаФорма, "ОчиститьТекущийЭкземплярМногостраничногоРаздела"
+ Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим,
ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницуЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ЗначениеКорректировки = ТабличныйДокумент.Области.НомерКорректировки.Значение;
Если НЕ ЗначениеЗаполнено(ЗначениеКорректировки) Тогда
ТабличныйДокумент.Области.НомерКорректировки.Значение = "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(ЭтаФорма);
ИзменитьВариантыЗаполненияПоказателейТаблица91(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица91" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
Иначе
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПерерасчетВсехРассчитываемыхПоказателейЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = Истина;
Возврат;
КонецЕсли;
РасчетНаСервере();
#Если ВебКлиент Тогда
ИзменитьТаблицуВариантовЗаполненияНаСервере();
#Иначе
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
#КонецЕсли
Показатели = ТаблицаВариантыЗаполненияТитульный[0].ТаблицаВариантовЗаполнения.НайтиСтроки(
Новый Структура("ВариантЗаполнения", 4));
Для Каждого Показатель Из Показатели Цикл
Показатель.ВариантЗаполнения = 0;
КонецЦикла;
ИзменитьВариантыЗаполненияПоказателейТаблица1_1(ЭтаФорма);
ИзменитьВариантыЗаполненияПоказателейТаблица91(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица91" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ПослеОткрытияФормыВыбораСтраниц(ДополнительныеПараметры)
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
РегламентированнаяОтчетностьКлиент.ПоказатьСтраницыОтчетаНаКлиенте(ЭтаФорма);
Если НЕ флЗначенияИдентичны Тогда
СформироватьДеревоРазделовОтчетаНаКлиенте();
Если НЕ ТекущийРазделОтчетаСокрНаим = Неопределено Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
РазделыОтчета.ПолучитьЭлементы(), "КолонкаРазделыОтчетаСокрНаим", ТекущийРазделОтчетаСокрНаим);
Если НЕ НайденнаяСтрока = Неопределено И НЕ НомерСтраницыРазделаОтчета = Неопределено
И НайденнаяСтрока.ПолучитьЭлементы().Количество() > 0 Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
НайденнаяСтрока.ПолучитьЭлементы(), "КолонкаНомерСтраницыРазделаОтчета", НомерСтраницыРазделаОтчета);
КонецЕсли;
Если НЕ НайденнаяСтрока = Неопределено Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = НайденнаяСтрока.ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьТаблицуВариантовЗаполненияНаСервере()
ИмяТекущегоРаздела = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланк(Команда)
Отказ = Ложь;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Команда", Команда);
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьБланкЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередПечатьюРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланкЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Команда = ДополнительныеПараметры.Команда;
Печать(Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура АктивизироватьЯчейку(Ячейка) Экспорт
РегламентированнаяОтчетностьКлиент.АктивизироватьЯчейку(ЭтаФорма, Ячейка);
КонецПроцедуры
&НаКлиенте
Процедура Печать(ВидПечати, НеИзФормыОтчета = Ложь) Экспорт
ТекстСообщения = "";
Если Год(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета) = 2021 Тогда
ЗаполненаТабл2Стр15 = Ложь;
ИменаПроверяемыхПоказателей = Новый Массив;
ИменаПроверяемыхПоказателей.Добавить("П000020015001");
ИменаПроверяемыхПоказателей.Добавить("П000020015401");
ИменаПроверяемыхПоказателей.Добавить("П000020015101");
ИменаПроверяемыхПоказателей.Добавить("П000020015201");
ИменаПроверяемыхПоказателей.Добавить("П000020015301");
ИменаПроверяемыхПоказателей.Добавить("П000020015003");
Для каждого ИмяПоказателя Из ИменаПроверяемыхПоказателей Цикл
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица2" Тогда
Обл = ТабличныйДокумент.Области.Найти(ИмяПоказателя);
Если Обл <> Неопределено И ЗначениеЗаполнено(Обл.Значение) Тогда
ЗаполненаТабл2Стр15 = Истина;
Прервать;
КонецЕсли;
Иначе
ЗначениеПоказателя = Неопределено;
Если СтруктураДанныхТаблица2.Свойство(ИмяПоказателя, ЗначениеПоказателя)
И ЗначениеЗаполнено(ЗначениеПоказателя) Тогда
ЗаполненаТабл2Стр15 = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
ЗаполненаТабл3 = Ложь;
ИменаПроверяемыхПоказателей.Очистить();
ИменаПроверяемыхПоказателей.Добавить("П000030001003");
ИменаПроверяемыхПоказателей.Добавить("П000030001004");
ИменаПроверяемыхПоказателей.Добавить("П000030002003");
ИменаПроверяемыхПоказателей.Добавить("П000030002004");
ИменаПроверяемыхПоказателей.Добавить("П000030003003");
ИменаПроверяемыхПоказателей.Добавить("П000030003004");
ИменаПроверяемыхПоказателей.Добавить("П000030004003");
ИменаПроверяемыхПоказателей.Добавить("П000030004004");
ИменаПроверяемыхПоказателей.Добавить("П000030005003");
ИменаПроверяемыхПоказателей.Добавить("П000030005004");
ИменаПроверяемыхПоказателей.Добавить("П000030006003");
ИменаПроверяемыхПоказателей.Добавить("П000030006004");
ИменаПроверяемыхПоказателей.Добавить("П000030007003");
ИменаПроверяемыхПоказателей.Добавить("П000030007004");
ИменаПроверяемыхПоказателей.Добавить("П000030008003");
ИменаПроверяемыхПоказателей.Добавить("П000030008004");
ИменаПроверяемыхПоказателей.Добавить("П000030009004");
ИменаПроверяемыхПоказателей.Добавить("П000030010004");
ИменаПроверяемыхПоказателей.Добавить("П000030011004");
Для каждого ИмяПоказателя Из ИменаПроверяемыхПоказателей Цикл
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица3_4" Тогда
Обл = ТабличныйДокумент.Области.Найти(ИмяПоказателя);
Если Обл <> Неопределено И ЗначениеЗаполнено(Обл.Значение) Тогда
ЗаполненаТабл3 = Истина;
Прервать;
КонецЕсли;
Иначе
ЗначениеПоказателя = Неопределено;
Если СтруктураДанныхТаблица3_4.Свойство(ИмяПоказателя, ЗначениеПоказателя)
И ЗначениеЗаполнено(ЗначениеПоказателя) Тогда
ЗаполненаТабл3 = Истина;
Прервать;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Если ЗаполненаТабл2Стр15 И ЗаполненаТабл3 Тогда
ТекстСообщения
= "В 2021 году показатели строки 15 в таблице 2 не заполняются, таблица 3 не заполняется и не представляется "
+ "(информация опубликована на сайте ФСС РФ: http://fss.ru/ru/news/567885/586264.shtml)";
ИначеЕсли ЗаполненаТабл2Стр15 Тогда
ТекстСообщения
= "В 2021 году показатели строки 15 в таблице 2 не заполняются (информация опубликована на сайте ФСС РФ: "
+ "http://fss.ru/ru/news/567885/586264.shtml)";
ИначеЕсли ЗаполненаТабл3 Тогда
ТекстСообщения
= "В 2021 году таблица 3 не заполняется и не представляется (информация опубликована на сайте ФСС РФ: "
+ "http://fss.ru/ru/news/567885/586264.shtml)";
КонецЕсли;
КонецЕсли;
Если ЗначениеЗаполнено(ТекстСообщения) Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='%1. Вывод на печать прерван'"), ТекстСообщения);
Сообщение.Сообщить();
Возврат;
КонецЕсли;
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1. Формируется печатная форма...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Печать);
Если СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Истина Тогда
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС, Истина);
КонецЕсли;
Если НЕ ПечатьНаСервере(ВидПечати) Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ОткрытьФормуПредварительногоПросмотра(
ЭтаФорма, ВидПечати, , СтруктураРеквизитовФормы.СписокПечатаемыхЛистов);
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
КонецПроцедуры
&НаСервере
Функция ПечатьНаСервере(ВидПечати)
Если НЕ РегламентированнаяОтчетность.ПринтерДоступен() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед формированием печатных форм необходимо определить в системе принтер и задать его в качестве используемого по умолчанию.'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если ТипЗнч(мДеревоВыбранныхСтраниц) <> Тип("ДанныеФормыДерево") Тогда
Возврат Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мПечатныеФормы.Очистить();
СтруктураРеквизитовФормы.мРежимПечати = Истина;
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Ложь);
ДанныеРазделов = Новый Структура;
ДанныеРазделов.Вставить("Титульный", ЭтаФорма["СтруктураДанныхТитульный"]);
ДанныеРазделов.Вставить("Таблица1", ЭтаФорма["СтруктураДанныхТаблица1"]);
ДанныеРазделов.Вставить("Таблица1_1", ЭтаФорма["СтруктураДанныхТаблица1_1"]);
ДанныеРазделов.Вставить("Таблица2", ЭтаФорма["СтруктураДанныхТаблица2"]);
ДанныеРазделов.Вставить("Таблица3_4", ЭтаФорма["СтруктураДанныхТаблица3_4"]);
ДанныеРазделов.Вставить("Таблица5", ЭтаФорма["СтруктураДанныхТаблица5"]);
ДанныеРазделов.Вставить("Таблица91", ЭтаФорма["СтруктураДанныхТаблица91"]);
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы1,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы1], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_1], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_2], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдМСЧ_Таблица2_3], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы91,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы91], Тип("ТаблицаЗначений")));
ПараметрыПечати = Новый Структура;
ПараметрыПечати.Вставить("ВыбраннаяФорма", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыПечати.Вставить("ДанныеРазделов", ДанныеРазделов);
ПараметрыПечати.Вставить("ВидПечати", ВидПечати);
ПараметрыПечати.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыПечати.Вставить("ДеревоВыбранныхСтраниц", ДанныеФормыВЗначение(мДеревоВыбранныхСтраниц,
Тип("ДеревоЗначений")));
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПечатныйБланк(ПараметрыПечати);
КопироватьДанныеФормы(мДеревоВыбранныхСтраниц, мДеревоСтраницОтчета);
Возврат Истина;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица1_1(Форма)
ПрефиксПоказателейРаздела = "П" + "00011";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица1_1 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица3_4(Форма)
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица3_4" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Если ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица3_4 Цикл
Если ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица91(Форма)
ПрефиксПоказателейРаздела = "П00091";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица91" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица1_1 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПоказательЗаполнен(ОбластьПоказателя)
Если ОбластьПоказателя.СодержитЗначение Тогда
ЗначениеОбласти = ОбластьПоказателя.Значение;
ТипЗначенияОбласти = ТипЗнч(ЗначениеОбласти);
Если ТипЗначенияОбласти = Тип("Число") Тогда
Возврат (ЗначениеОбласти <> 0);
ИначеЕсли ТипЗначенияОбласти = Тип("Строка") Тогда
Возврат (НЕ ПустаяСтрока(ЗначениеОбласти));
Иначе
Возврат ЗначениеЗаполнено(ЗначениеОбласти);
КонецЕсли;
Иначе
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиенте
Процедура ПриОткрытии(Отказ)
Заголовок = ЗаголовокРегламентированногоОтчета(
СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета, СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ОргСтр = " (" + СтруктураРеквизитовФормы.Организация + ")";
Если СтрНайти(Заголовок, ОргСтр) = 0 Тогда
Заголовок = Заголовок + ОргСтр;
КонецЕсли;
Заголовок = Заголовок + ?(СтрНайти(ЭтаФорма.ИмяФормы, "Внешний") > 0, " - внешний отчет", "");
ПодключитьОбработчикОжидания("ВыполнитьПроверкуПередОткрытием", 0.1, Истина);
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
Если РазделыОтчета.ПолучитьЭлементы().Количество() > 0 Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = РазделыОтчета.ПолучитьЭлементы()[0].ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыполнитьПроверкуПередОткрытием()
ОписаниеОповещения = Новый ОписаниеОповещения("ПриОткрытииЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередОткрытиемФормыРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПриОткрытииЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Модифицированность = Ложь;
Закрыть();
Возврат;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПередЗакрытием(Отказ, ЗавершениеРаботы, ТекстПредупреждения, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.ПередЗакрытиемРегламентированногоОтчета(ЭтаФорма, Отказ, СтандартнаяОбработка, ЗавершениеРаботы, ТекстПредупреждения);
КонецПроцедуры
&НаКлиенте
Процедура ПриЗакрытии(ЗавершениеРаботы)
Если ЗавершениеРаботы Тогда
Возврат;
КонецЕсли;
ПриЗакрытииНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПриЗакрытииНаСервере()
РегламентированнаяОтчетность.ПриЗакрытииРегламентированногоОтчета(ЭтаФорма);
КонецПроцедуры
#Область ВыгрузкаВЭлектронномВиде
&НаКлиенте
Процедура Выгрузить(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ВыгрузитьЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ВыгрузитьОтчет();
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьОтчет() Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения("ВыгрузитьОтчетЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВыгрузитьОтчетЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФормаВыгрузкиРеглОтчета = ПолучитьФорму("Документ.ВыгрузкаРегламентированныхОтчетов.Форма.ФормаДокумента", , ЭтаФорма);
СпДокОсн = Новый СписокЗначений;
СпДокОсн.Добавить(СтруктураРеквизитовФормы.мСохраненныйДок);
ФормаВыгрузкиРеглОтчета.СформироватьИЗаписать(СпДокОсн);
КонецПроцедуры
&НаКлиенте
Функция УниверсальнаяВыгрузка(ТекстВыгрузки = Неопределено, ПроверятьБлокировки = Истина) Экспорт
Перем ПараметрыВыгрузки;
Если Модифицированность Тогда
ТекстЗаголовка = ЗаголовокРегламентированногоОтчета(СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета, СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ОргСтр = " (" + СтруктураРеквизитовФормы.Организация + ")";
Если СтрНайти(ТекстЗаголовка, ОргСтр) = 0 Тогда
ТекстЗаголовка = ТекстЗаголовка + ОргСтр;
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = "Отчет """ + ТекстЗаголовка + """ не сохранен.";
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если Открыта() Тогда
Если СтруктураРеквизитовФормы.ЕдиницаИзмерения <> ПорядкиОкругленияОтчетности.ПеречислениеПорядкиОкругленияОтчетностиОкр1 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед выгрузкой необходимо установить единицу измерения ""в рублях"".'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения <> 2 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Перед выгрузкой необходимо установить точность ""2"".'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Истина Тогда
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС, Истина);
КонецЕсли;
КонецЕсли;
Если НЕ УниверсальнаяВыгрузкаНаСервере(ТекстВыгрузки, ПараметрыВыгрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Функция УниверсальнаяВыгрузкаНаСервере(ТекстВыгрузки, ПараметрыВыгрузки)
ПараметрыРеглОтчета = Новый Структура;
ПараметрыРеглОтчета.Вставить("СохраненныйОтчет", СтруктураРеквизитовФормы.мСохраненныйДок);
ПараметрыРеглОтчета.Вставить("ИсточникОтчета", СтруктураРеквизитовФормы.мСохраненныйДок.ИсточникОтчета);
ПараметрыРеглОтчета.Вставить("ВыбраннаяФорма", СтруктураРеквизитовФормы.мСохраненныйДок.ВыбраннаяФорма);
ПараметрыРеглОтчета.Вставить("РезультатВыгрузки", РегламентированнаяОтчетность.НовыйРезультатВыгрузкиРеглОтчета());
ПараметрыРеглОтчета.РезультатВыгрузки.ТаблицаСообщений = ЭтаФорма.ТаблицаСообщений;
РезультатВыгрузки = ОбъектОтчета(ЭтаФорма.ИмяФормы).УниверсальнаяВыгрузка(ПараметрыРеглОтчета);
Если РезультатВыгрузки.РеглОтчетВыгружен Тогда
ФайлВыгрузки = ПолучитьИзВременногоХранилища(РезультатВыгрузки.АдресФайлаВыгрузки);
ИмяВременногоФайла = ПолучитьИмяВременногоФайла("xml");
ФайлВыгрузки.Записать(ИмяВременногоФайла);
ЧтениеТекста = Новый ЧтениеТекста(ИмяВременногоФайла, РезультатВыгрузки.КодировкаФайлаВыгрузки);
ТекстВыгрузки = ЧтениеТекста.Прочитать();
ЧтениеТекста.Закрыть();
ЧтениеТекста = Неопределено;
УдалитьФайлы(ИмяВременногоФайла);
КонецЕсли;
Возврат РезультатВыгрузки.РеглОтчетВыгружен;
КонецФункции
&НаСервере
Процедура СформироватьСтруктуруПоказателей()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.СформироватьСтруктуруПоказателей(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
СтруктураРеквизитовФормы,
мСтруктураДокУпПред);
КонецПроцедуры
&НаСервере
Функция СформироватьСтруктуруПараметров()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.СформироватьСтруктуруПараметров(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
СтруктураРеквизитовФормы);
КонецФункции
&НаСервере
Функция ИзвлечьСтруктуруXML()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ИзвлечьСтруктуруXML(СтруктураРеквизитовФормы.мВыбраннаяФорма);
КонецФункции
&НаСервере
Функция ВыгрузкаВозможна(ПараметрыВыгрузки, ДеревоВыгрузки)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ВыгрузкаВозможна(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
ПараметрыВыгрузки,
ДеревоВыгрузки,
ЭтаФорма,
СтруктураРеквизитовФормы);
КонецФункции
&НаСервере
Процедура ЗаполнитьДанными(ДеревоВыгрузки, ПараметрыВыгрузки)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ЗаполнитьДанными(СтруктураРеквизитовФормы.мВыбраннаяФорма,
мДанныеОтчета,
ПараметрыВыгрузки,
ДеревоВыгрузки);
КонецПроцедуры
&НаСервере
Функция ПроверитьДанные(Узел)
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Возврат ОбъектОтчета.ПроверитьДанные(СтруктураРеквизитовФормы.мВыбраннаяФорма, Узел, Этаформа);
КонецФункции
&НаСервере
Функция ПроверитьПоказатели() Экспорт
СформироватьСтруктуруПоказателей();
ПараметрыВыгрузки = СформироватьСтруктуруПараметров();
ДеревоВыгрузки = ИзвлечьСтруктуруXML();
ВыгрузкаВозможна = Истина;
Если НЕ ВыгрузкаВозможна(ПараметрыВыгрузки, ДеревоВыгрузки) Тогда
ВыгрузкаВозможна = Ложь;
КонецЕсли;
Если НЕ ВыгрузкаВозможна Тогда
Возврат Ложь;
КонецЕсли;
ЗаполнитьДанными(ДеревоВыгрузки, ПараметрыВыгрузки);
Если НЕ ПроверитьДанные(ДеревоВыгрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаКлиенте
Процедура ПроверитьВыгрузку(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВыгрузкуЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ПроверитьВыгрузкуОтчета();
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуОтчета()
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВыгрузкуОтчетаЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВыгрузкуОтчетаЗавершение(Результат, ДополнительныеПараметры) Экспорт
ФормаВыгрузкиРеглОтчета = ПолучитьФорму("Документ.ВыгрузкаРегламентированныхОтчетов.Форма.ФормаДокумента", , ЭтаФорма);
СпДокОсн = Новый СписокЗначений;
СпДокОсн.Добавить(СтруктураРеквизитовФормы.мСохраненныйДок);
ФормаВыгрузкиРеглОтчета.Проверить(СпДокОсн);
КонецПроцедуры
#КонецОбласти
#Область ЗагрузкаИзФайла
&НаКлиенте
Процедура ЗагрузитьИзФайла(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьИзФайлаЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередЗагрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ЗагрузитьИзФайлаОтчет();
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаОтчет() Экспорт
ОписаниеОповещения = Новый ОписаниеОповещения("ЗагрузитьИзФайлаОтчетЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(,ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ЗагрузитьИзФайлаОтчетЗавершение(Результат, ДополнительныеПараметры) Экспорт
РегламентированнаяОтчетностьЗагрузкаКлиент.ЗагрузитьИзФайлаОтчет(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция ЗагрузкаОтчетаИзФайла(ДанныеДляЗагрузки) Экспорт
Если Модифицированность Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='Отчет ""%1"" не сохранен.'"), ЭтотОбъект.Заголовок);
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если НЕ ЗагрузкаОтчетаИзФайлаНаСервере(ДанныеДляЗагрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Функция ЗагрузкаОтчетаИзФайлаНаСервере(ДанныеДляЗагрузки)
СформироватьСтруктуруПоказателей();
ПараметрыОтчета = СформироватьСтруктуруПараметров();
ДеревоДляЗагрузки = ИзвлечьСтруктуруXML();
Если НЕ РегламентированнаяОтчетностьЗагрузка.ЗагрузкаОтчетаИзФайла(
ЭтотОбъект, ПараметрыОтчета, ДанныеДляЗагрузки, ДеревоДляЗагрузки) Тогда
Возврат Ложь;
КонецЕсли;
Возврат Истина;
КонецФункции
#КонецОбласти
#Область СравнениеОтчетов
&НаКлиенте
Процедура СравнитьОтчеты(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("СравнитьОтчетыЗавершение", ЭтотОбъект);
Если Модифицированность Тогда
СохранитьНаКлиенте(, ОписаниеОповещения);
Иначе
ВыполнитьОбработкуОповещения(ОписаниеОповещения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СравнитьОтчетыЗавершение(Результат, ДополнительныеПараметры) Экспорт
РегламентированнаяОтчетностьСравнениеКлиент.СравнитьОтчеты(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Функция СравнениеОтчетов(ДанныеДляСравнения) Экспорт
Если Модифицированность Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='Отчет ""%1"" не сохранен.'"), ЭтотОбъект.Заголовок);
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Возврат СравнениеОтчетовНаСервере(ДанныеДляСравнения);
КонецФункции
&НаСервере
Функция СравнениеОтчетовНаСервере(ДанныеДляСравнения)
СформироватьСтруктуруПоказателей();
ПараметрыОтчета = СформироватьСтруктуруПараметров();
ДеревоДляСравнения = ИзвлечьСтруктуруXML();
Результат = РегламентированнаяОтчетностьСравнение.СравнениеОтчетов(
ЭтотОбъект, ПараметрыОтчета, ДанныеДляСравнения, ДеревоДляСравнения);
Возврат Результат;
КонецФункции
#КонецОбласти
&НаКлиенте
Функция ДобавитьРеквизит(Текст, ДобСтрока, Префикс)
Если ЗначениеЗаполнено(ДобСтрока) Тогда
Текст = Текст + Префикс + ДобСтрока;
КонецЕсли;
Возврат Текст;
КонецФункции
&НаКлиенте
Процедура ТабличныйДокументВыбор(Элемент, Область, СтандартнаяОбработка)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
ОбластьИмя = Область.Имя;
Если СтрЧислоВхождений(Область.Имя, "ДобавитьСтроку") > 0 Тогда
СтандартнаяОбработка = Ложь;
ДобавитьСтроку();
ИначеЕсли СтрЧислоВхождений(Область.Имя, "УдалитьСтроку") > 0 И Область.Гиперссылка Тогда
СтандартнаяОбработка = Ложь;
УдалитьСтроку();
КонецЕсли;
Если РегламентированнаяОтчетностьКлиент.ВыбраннаяОбластьРегламентированногоОтчетаНеВерна(ЭтаФорма, Область, СтандартнаяОбработка) Тогда
Возврат;
КонецЕсли;
Если СтрНайти(ОбластьИмя, "ДокУпПред") > 0 Тогда
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("СтруктураДокумента", мСтруктураДокУпПред);
ФормаВводаДокументПредставителя = ПолучитьФорму("Отчет.РегламентированныйОтчет4ФСС.Форма.ФормаВводаДокументПредставителя", ПараметрыФормы);
ФормаВводаДокументПредставителя.ОписаниеОповещенияОЗакрытии = Новый ОписаниеОповещения("ОткрытьФормуВводаДокументаПредставителяЗавершение", ЭтотОбъект);
ФормаВводаДокументПредставителя.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ФормаВводаДокументПредставителя.Открыть();
ИначеЕсли ОбластьИмя = "П000010000001" ИЛИ ОбластьИмя = "П000010000002" Тогда
СтандартнаяОбработка = Ложь;
Область.Значение = ?(СокрЛП(Область.Значение) = "", "Х", "");
Модифицированность = Истина;
ИначеЕсли НЕ СтруктураРеквизитовФормы.мАвтоВыборКодов
И (СтрНачинаетсяС(ОбластьИмя, "П000110000104") ИЛИ СтрНачинаетсяС(ОбластьИмя, "П000910000102")) Тогда
СтандартнаяОбработка = Ложь;
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОписаниеТаблицы", СтруктураРеквизитовФормы.АдресаТаблицВыбораЗначений["КодыПоОКВЭД"]);
ПараметрыФормы.Вставить("СтруктураДляПоиска", Новый Структура("Колонка1", СокрЛП(Область.Значение)));
Оп = Новый ОписаниеОповещения("ВвестиПоказатели", ЭтотОбъект, Новый Структура("Область", Область));
ОткрытьФорму("ОбщаяФорма.ФормаВыбораЗначенийИзТаблицыБРО", ПараметрыФормы,
ЭтаФорма,,,, Оп, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Иначе
ПараметрВводаПоля = СвойстваПоказателей.НайтиСтроки(Новый Структура("Показатель", ОбластьИмя));
Если ПараметрВводаПоля.Количество() = 0 Тогда
ПараметрВводаПоля = Неопределено;
Для Каждого Стр из СвойстваПоказателей Цикл
Если Лев(Область.Имя, СтрДлина(Стр.Показатель)) = Стр.Показатель Тогда
ПараметрВводаПоля = Стр;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ПараметрВводаПоля = ПараметрВводаПоля[0];
КонецЕсли;
Если ПараметрВводаПоля <> Неопределено И ПараметрВводаПоля.ТаблицаЗначений.Количество() > 0 Тогда
ВвестиПоказатель(Элемент, Область, ПараметрВводаПоля.Показатель, Ложь, ПараметрВводаПоля.ТекстПриВыборе, ПараметрВводаПоля.ТаблицаЗначений, СтандартнаяОбработка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриАктивизации(Элемент)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Если ТабличныйДокумент.ТекущаяОбласть = Неопределено Тогда
Возврат;
КонецЕсли;
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Ложь;
Если СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200161") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200162") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200163") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0001100001") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0009100001") > 0 Тогда
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Истина;
ПозицияЗнакаПодчеркивания = СтрНайти(ТабличныйДокумент.ТекущаяОбласть.Имя, "_");
Если НЕ ПозицияЗнакаПодчеркивания = Неопределено Тогда
КодОбласти = Лев(ТабличныйДокумент.ТекущаяОбласть.Имя, ПозицияЗнакаПодчеркивания);
Если НЕ ТабличныйДокумент.Области.Найти(КодОбласти + "2") = Неопределено Тогда
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВводаДокументаПредставителяЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
мСтруктураДокУпПред = Результат;
Текст = "";
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НаименованиеУдостоверяющего, "");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРимскиеЦифры, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРусскиеБуквы, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НомерУдостоверяющего, " № ");
Текст = ДобавитьРеквизит(Текст, Формат(мСтруктураДокУпПред.ДатаВыдачи,"ДФ=dd.MM.yyyy"), " от ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.КемВыдан, " выдан: ");
ТабличныйДокумент.Области.ДокУпПред.Значение = Текст;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриИзмененииСодержимогоОбласти(Элемент, Область)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Модифицированность = Истина;
ИмяРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
ИмяОбласти = Область.Имя;
ПозицияПодстроки = СтрНайти(ИмяОбласти, "_");
Если ПозицияПодстроки > 0 Тогда
ИмяОбласти = Лев(ИмяОбласти, ПозицияПодстроки - 1);
КонецЕсли;
Если СтрНайти(ИмяОбласти, "НомДопРасчета") > 0 Тогда
ЭтоОбластьПериода = (ИмяОбласти = "НомДопРасчета");
Если ЭтоОбластьПериода Тогда
КодПериода = Формат(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета, "ДФ=ММ");
Если КодПериода = "03" ИЛИ КодПериода = "06" ИЛИ КодПериода = "09" ИЛИ КодПериода = "12" Тогда
Если ПустаяСтрока(ТабличныйДокумент.Области.НомДопРасчета.Значение) Тогда
ТабличныйДокумент.Области.Период.Значение = КодПериода;
Иначе
ТабличныйДокумент.Области.Период.Значение = "";
ТабличныйДокумент.Области.НомДопРасчета.Значение =
РегламентированнаяОтчетностьКлиентСервер.ДополнитьСтроку(СокрЛП(ТабличныйДокумент.Области.НомДопРасчета.Значение), 2, "0", 0);
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Если ИмяОбласти = "КодПодчиненности" Тогда
Если СтрДлина(СокрЛП(Область.Значение)) <> 5 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru = 'Введенное значение кода подчиненности должно состоять из 5 символов.'");
Сообщение.Сообщить();
Область.Значение = "";
КонецЕсли;
КонецЕсли;
Если ИмяОбласти = "НомерКорректировки" Тогда
Если НЕ ЗначениеЗаполнено(Область.Значение) Тогда
Область.Значение = "0";
КонецЕсли;
ОтобразитьНомерКорректировки(ЭтаФорма, Область.Значение);
РегламентированнаяОтчетностьКлиентСервер.УстановитьЗначениеОКВЭД(ДатаПодписи,
СтруктураРеквизитовФормы,
ТабличныйДокумент.Области.ОКВЭД.Значение);
ИначеЕсли ИмяОбласти = "ДатаПодписи" Тогда
ДатаПодписи = ТабличныйДокумент.Области.ДатаПодписи.Значение;
ДатаПодписиПриИзмененииНаСервере();
Модифицированность = Истина;
КонецЕсли;
Если Год(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета) = 2021 Тогда
ИменаПроверяемыхПоказателей = Новый Массив;
ИменаПроверяемыхПоказателей.Добавить("П000020015001");
ИменаПроверяемыхПоказателей.Добавить("П000020015401");
ИменаПроверяемыхПоказателей.Добавить("П000020015101");
ИменаПроверяемыхПоказателей.Добавить("П000020015201");
ИменаПроверяемыхПоказателей.Добавить("П000020015301");
ИменаПроверяемыхПоказателей.Добавить("П000020015003");
Если ИменаПроверяемыхПоказателей.Найти(ИмяОбласти) <> Неопределено И ЗначениеЗаполнено(Область.Значение) Тогда
ТекстСообщения
= "В 2021 году показатели строки 15 в таблице 2 не заполняются (информация опубликована на сайте ФСС РФ: "
+ "http://fss.ru/ru/news/567885/586264.shtml)";
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru = '%1. Значение очищено'"), ТекстСообщения);
Сообщение.Сообщить();
Область.Значение = 0;
КонецЕсли;
ИменаПроверяемыхПоказателей.Очистить();
ИменаПроверяемыхПоказателей.Добавить("П000030001003");
ИменаПроверяемыхПоказателей.Добавить("П000030001004");
ИменаПроверяемыхПоказателей.Добавить("П000030002003");
ИменаПроверяемыхПоказателей.Добавить("П000030002004");
ИменаПроверяемыхПоказателей.Добавить("П000030003003");
ИменаПроверяемыхПоказателей.Добавить("П000030003004");
ИменаПроверяемыхПоказателей.Добавить("П000030004003");
ИменаПроверяемыхПоказателей.Добавить("П000030004004");
ИменаПроверяемыхПоказателей.Добавить("П000030005003");
ИменаПроверяемыхПоказателей.Добавить("П000030005004");
ИменаПроверяемыхПоказателей.Добавить("П000030006003");
ИменаПроверяемыхПоказателей.Добавить("П000030006004");
ИменаПроверяемыхПоказателей.Добавить("П000030007003");
ИменаПроверяемыхПоказателей.Добавить("П000030007004");
ИменаПроверяемыхПоказателей.Добавить("П000030008003");
ИменаПроверяемыхПоказателей.Добавить("П000030008004");
ИменаПроверяемыхПоказателей.Добавить("П000030009004");
ИменаПроверяемыхПоказателей.Добавить("П000030010004");
ИменаПроверяемыхПоказателей.Добавить("П000030011004");
Если ИменаПроверяемыхПоказателей.Найти(ИмяОбласти) <> Неопределено И ЗначениеЗаполнено(Область.Значение) Тогда
ТекстСообщения
= "В 2021 году таблица 3 не заполняется и не представляется (информация опубликована на сайте ФСС РФ: "
+ "http://fss.ru/ru/news/567885/586264.shtml)";
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru = '%1. Значение очищено'"), ТекстСообщения);
Сообщение.Сообщить();
Область.Значение = 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);
Контейнер.Вставить("Таблица91", СтруктураДанныхТаблица91);
Контейнер.Вставить("Таблица91_ДанныеДопСтрок", П0009100001);
ЭтаФормаИмя = ЭтаФорма.ИмяФормы;
Если СтрЧислоВхождений(ЭтаФормаИмя, "ВнешнийОтчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "ВнешнийОтчет.", "");
ИначеЕсли СтрЧислоВхождений(ЭтаФормаИмя, "Отчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "Отчет.", "");
КонецЕсли;
ЭтаФормаИмя = Лев(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") - 1);
РегламентированнаяОтчетностьПереопределяемый.ЗаполнитьОтчет(ЭтаФормаИмя, ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ПараметрыОтчета, Контейнер);
ЗаполнитьПустыеСтруктурыДанных();
Если П0001100001.Количество() = 0 Тогда
П0001100001.Добавить();
КонецЕсли;
Если П0000200161.Количество() = 0 Тогда
П0000200161.Добавить();
КонецЕсли;
Если П0000200162.Количество() = 0 Тогда
П0000200162.Добавить();
КонецЕсли;
Если П0000200163.Количество() = 0 Тогда
П0000200163.Добавить();
КонецЕсли;
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСтруктурыДанныхРазделовЗначениямиИзДопСтрок(
СтруктураРеквизитовФормы.мВыбраннаяФорма, Контейнер);
ВывестиМакетВТаблДокНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере();
Для Каждого Страница Из мДеревоСтраницОтчета.ПолучитьЭлементы() Цикл
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, Страница.ИмяСтраницы);
КонецЦикла;
СтруктураРеквизитовФормы.Вставить("СообщенияПослеАвтозаполнения", ПараметрыОтчета.СообщенияПослеАвтозаполнения);
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиСообщенияПослеАвтозаполнения()
Если ТипЗнч(СтруктураРеквизитовФормы.СообщенияПослеАвтозаполнения) = Тип("Массив") Тогда
ОчиститьСообщения();
Для каждого ТекстСообщения Из СтруктураРеквизитовФормы.СообщенияПослеАвтозаполнения Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='%1'"), ТекстСообщения);
Сообщение.Сообщить();
КонецЦикла;
КонецЕсли;
СтруктураРеквизитовФормы.Вставить("СообщенияПослеАвтозаполнения", Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Расшифровать(Команда)
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыОтчета.Вставить("ЗначениеТекущегоПоказателя", Элементы.ТабличныйДокумент.ТекущаяОбласть.Текст);
ИДИменПоказателей = Новый Массив();
ИДИменПоказателей.Добавить(Элементы.ТабличныйДокумент.ТекущаяОбласть.Имя);
РегламентированнаяОтчетностьКлиент.ОткрытьРасшифровкуОтчета(
ИмяОтчета(ЭтаФорма.ИмяФормы),
ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ИДИменПоказателей, ПараметрыОтчета);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РазделЗаполнен(Форма, ИмяСтраницы)
Если ИмяСтраницы = "Таблица1_1" Тогда
Возврат ЗаполненаТаблица1_1(Форма);
ИначеЕсли ИмяСтраницы = "Таблица3_4" Тогда
Возврат ЗаполненаТаблица3_4(Форма);
ИначеЕсли ИмяСтраницы = "Таблица91" Тогда
Возврат ЗаполненаТаблица91(Форма);
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ВключитьПечатьЗаполненногоНеобязательногоРаздела(Форма, ИмяРаздела)
ОбязательныеРазделы = Новый Массив;
ОбязательныеРазделы.Добавить("Титульный");
ОбязательныеРазделы.Добавить("Таблица1");
ОбязательныеРазделы.Добавить("Таблица2");
ОбязательныеРазделы.Добавить("Таблица5");
Если ОбязательныеРазделы.Найти(ИмяРаздела) <> Неопределено Тогда
Возврат;
КонецЕсли;
НастройкиСтраницыРаздела = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
Форма.мДеревоВыбранныхСтраниц.ПолучитьЭлементы(), "ИмяСтраницы", ИмяРаздела);
Если НастройкиСтраницыРаздела = Неопределено Тогда
Возврат;
КонецЕсли;
ВРазделеОтключенаПечать = (НастройкиСтраницыРаздела.ВыводНаПечать = 0);
Если ВРазделеОтключенаПечать И РазделЗаполнен(Форма, ИмяРаздела) Тогда
НастройкиСтраницыРаздела.ВыводНаПечать = 1;
КонецЕсли;
КопироватьДанныеФормы(Форма.мДеревоВыбранныхСтраниц, Форма.мДеревоСтраницОтчета);
КонецПроцедуры
&НаСервере
Функция ПреобразованноеИмяПоказателя(ИсходноеИмя)
СписокПреобразования = "П000020016101,П000020016104,П000020016105,
|П000020016201,П000020016204,П000020016205,
|П000020016301,П000020016304,П000020016305";
Если СтрНайти(СписокПреобразования, ИсходноеИмя) <> 0 Тогда
Результат = ИсходноеИмя + "_1";
Иначе
Результат = ИсходноеИмя;
КонецЕсли;
Возврат Результат;
КонецФункции
&НаКлиенте
Функция НачатьЗамерВремени()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент").ЗамерВремени(КлючеваяОперация, , Истина);
КонецЕсли;
КонецФункции
&НаСервереБезКонтекста
Функция ЗначениеТаймера()
ВыполнятьЗамерыПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительностиВызовСервераПовтИсп").ВыполнятьЗамерыПроизводительности();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности")
И ВыполнятьЗамерыПроизводительности Тогда
Возврат ОценкаПроизводительности.НачатьЗамерВремени();
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаписатьЗамер(ВремяНачала)
Если ВремяНачала <> Неопределено И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности").ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернете(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВИнтернетеЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернетеЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПроверитьВИнтернете(ЭтаФорма, "ФСС");
КонецПроцедуры
#Область ПанельОтправкиВКонтролирующиеОрганы
&НаКлиенте
Процедура ОбновитьОтправку(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОбновитьОтправкуИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПротоколНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьПротоколИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьНеотправленноеИзвещение(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОтправитьНеотправленноеИзвещениеИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ЭтапыОтправкиНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьСостояниеОтправкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьКритическиеОшибкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаНаименованиеЭтапаНажатие(Элемент)
ПараметрыИзменения = Новый Структура;
ПараметрыИзменения.Вставить("Форма", ЭтаФорма);
ПараметрыИзменения.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыИзменения.Вставить("КонтролирующийОрган",
ПредопределенноеЗначение("Перечисление.ТипыКонтролирующихОрганов.ФСС"));
РегламентированнаяОтчетностьКлиент.ИзменитьСтатусОтправки(ПараметрыИзменения);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрган(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередОтправкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ОтправитьВКонтролирующийОрганЗавершение", ЭтотОбъект);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрганЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПриНажатииНаКнопкуОтправкиВКонтролирующийОрган(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаСервере
Функция ОбъектОтчета(ЭтаФормаИмя) Экспорт
Если мОбъектОтчета = Неопределено Тогда
мОбъектОтчета = РегламентированнаяОтчетностьВызовСервера.ОбъектОтчета(ЭтаФормаИмя);
КонецЕсли;
Возврат мОбъектОтчета;
КонецФункции
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", ЭтаФорма);
Оповещение = Новый ОписаниеОповещения("ПослеСохраненияФормыЗавершение", ЭтотОбъект, ДополнительныеПараметры);
СохранитьНаКлиенте(, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСохраненияФормыЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДополнительныеПараметры.Форма.Закрыть();
КонецПроцедуры
&НаСервере
Процедура РазрешитьРедактированиеРеквизитовОбъекта() Экспорт
РегламентированнаяОтчетность.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
РегламентированнаяОтчетностьКлиент.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьПрисоединенныеФайлы(Команда)
РегламентированнаяОтчетностьКлиент.СохранитьОтчетИОткрытьФормуПрисоединенныеФайлы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийПриИзменении(Элемент)
Модифицированность = Истина;
КонецПроцедуры
#Область МеханизмПроверкиКонтрольныхСоотношений
#Область КС_Управление
&НаКлиенте
Процедура Проверить(Команда)
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС);
КонецПроцедуры
&НаСервере
Функция ПроверитьКонтрольныеСоотношенияВОтчете() Экспорт
Документирование = Ложь;
СтруктураРеквизитовФормы.ТекстДляЗаголовочнойЧасти =
РегламентированнаяОтчетностьКлиентСервер.ПредставлениеДокументаРеглОтч(СтруктураРеквизитовФормы.мСохраненныйДок);
СтруктураРезультата = Новый Структура;
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок", 0);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок", 0);
СтруктураРезультата.Вставить("СтруктураОшибок", Новый Структура);
СтруктураРезультата.Вставить("ДопСведенияВОписаниеКС" , Истина);
СписокРасшифровкиПоказателей = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиПоказателей();
СписокРасшифровкиформулы = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиформулы();
СчетчикФормулДляРасшифровок = 0;
ДанныеКС = Новый Структура;
СформироватьСтруктуруДанныхКС();
СформироватьСлужебныеДанные();
СформироватьДанныеПРП();
ПроверитьКС_1_01(СтруктураРезультата);
ПроверитьКС_1_02(СтруктураРезультата);
ПроверитьКС_1_03(СтруктураРезультата);
ПроверитьКС_1_04(СтруктураРезультата);
ПроверитьКС_2_01(СтруктураРезультата);
ПроверитьКС_2_02(СтруктураРезультата);
ПроверитьКС_2_03(СтруктураРезультата);
ПроверитьКС_2_04а(СтруктураРезультата);
ПроверитьКС_2_04б(СтруктураРезультата);
ПроверитьКС_2_05(СтруктураРезультата);
ПроверитьКС_2_06(СтруктураРезультата);
ПроверитьКС_2_07(СтруктураРезультата);
ПроверитьКС_2_08(СтруктураРезультата);
ПроверитьКС_2_09(СтруктураРезультата);
ПроверитьКС_2_10а(СтруктураРезультата);
ПроверитьКС_2_10б(СтруктураРезультата);
ПроверитьКС_2_11(СтруктураРезультата);
ПроверитьКС_2_12(СтруктураРезультата);
ПроверитьКС_2_13а(СтруктураРезультата);
ПроверитьКС_2_13б(СтруктураРезультата);
ПроверитьКС_2_14(СтруктураРезультата);
ПроверитьКС_2_15(СтруктураРезультата);
ПроверитьКС_2_16(СтруктураРезультата);
ПроверитьКС_2_17(СтруктураРезультата);
ПроверитьКС_2_18(СтруктураРезультата);
ПроверитьКС_2_19а(СтруктураРезультата);
ПроверитьКС_2_19б(СтруктураРезультата);
ПроверитьКС_2_20(СтруктураРезультата);
ПроверитьКС_2_21(СтруктураРезультата);
ПроверитьКС_2_22(СтруктураРезультата);
ПроверитьКС_2_23(СтруктураРезультата);
ПроверитьКС_2_24(СтруктураРезультата);
ПроверитьКС_2_25(СтруктураРезультата);
ПроверитьКС_3_01а(СтруктураРезультата);
ПроверитьКС_3_01б(СтруктураРезультата);
ПроверитьКС_3_02а(СтруктураРезультата);
ПроверитьКС_3_02б(СтруктураРезультата);
ПроверитьКС_3_03а(СтруктураРезультата);
ПроверитьКС_3_03б(СтруктураРезультата);
ПроверитьКС_4_01(СтруктураРезультата);
ПроверитьКС_4_02(СтруктураРезультата);
ПроверитьКС_4_03(СтруктураРезультата);
ПроверитьКС_4_04(СтруктураРезультата);
ПроверитьКС_4_05(СтруктураРезультата);
ПроверитьКС_4_06(СтруктураРезультата);
ПроверитьКС_5_01а(СтруктураРезультата);
ПроверитьКС_5_01б(СтруктураРезультата);
ПроверитьКС_5_02а(СтруктураРезультата);
ПроверитьКС_5_02б(СтруктураРезультата);
ПроверитьКС_5_03(СтруктураРезультата);
ПроверитьКС_5_04а_1(СтруктураРезультата);
ПроверитьКС_5_04а_2(СтруктураРезультата);
ПроверитьКС_5_04б_1(СтруктураРезультата);
ПроверитьКС_5_04б_2(СтруктураРезультата);
ПроверитьКС_5_04в_1(СтруктураРезультата);
ПроверитьКС_5_04в_2(СтруктураРезультата);
ПроверитьКС_5_04г_1(СтруктураРезультата);
ПроверитьКС_5_04г_2(СтруктураРезультата);
ПроверитьКС_5_04д_1(СтруктураРезультата);
ПроверитьКС_5_04д_2(СтруктураРезультата);
ПроверитьКС_5_05а(СтруктураРезультата);
ПроверитьКС_5_05б(СтруктураРезультата);
ПроверитьКС_5_05в(СтруктураРезультата);
ПроверитьКС_5_05г(СтруктураРезультата);
ПроверитьКС_5_05д(СтруктураРезультата);
ПроверитьКС_5_06(СтруктураРезультата);
ПроверитьКС_5_07а(СтруктураРезультата);
ПроверитьКС_5_07б(СтруктураРезультата);
ПроверитьКС_5_08(СтруктураРезультата);
ПроверитьКС_5_09(СтруктураРезультата);
ПроверитьКС_5_10(СтруктураРезультата);
ПроверитьКС_5_11а(СтруктураРезультата);
ПроверитьКС_5_11б(СтруктураРезультата);
ПроверитьКС_5_12(СтруктураРезультата);
ПроверитьКС_5_13а(СтруктураРезультата);
ПроверитьКС_5_13б(СтруктураРезультата);
ПроверитьКС_5_14а(СтруктураРезультата);
ПроверитьКС_5_14б(СтруктураРезультата);
ПроверитьКС_5_15а(СтруктураРезультата);
ПроверитьКС_5_15б(СтруктураРезультата);
ПроверитьКС_5_16(СтруктураРезультата);
ПроверитьКС_5_17(СтруктураРезультата);
ПроверитьКС_5_18а(СтруктураРезультата);
ПроверитьКС_5_18б(СтруктураРезультата);
ПроверитьКС_5_19(СтруктураРезультата);
ПроверитьКС_5_20(СтруктураРезультата);
ПроверитьКС_5_21а(СтруктураРезультата);
ПроверитьКС_5_21б(СтруктураРезультата);
ПроверитьКС_5_22(СтруктураРезультата);
ПроверитьКС_5_23(СтруктураРезультата);
ПроверитьКС_6_01(СтруктураРезультата);
ПроверитьКС_6_02(СтруктураРезультата);
ПроверитьКС_6_03(СтруктураРезультата);
ПроверитьКС_6_04(СтруктураРезультата);
ПроверитьКС_6_05(СтруктураРезультата);
ПроверитьКС_6_06(СтруктураРезультата);
ПроверитьКС_6_07(СтруктураРезультата);
ПроверитьКС_6_08(СтруктураРезультата);
ПроверитьКС_7_01(СтруктураРезультата);
ПроверитьКС_7_02(СтруктураРезультата);
ПроверитьКС_7_03(СтруктураРезультата);
ПроверитьКС_8_01(СтруктураРезультата);
ПроверитьКС_8_02(СтруктураРезультата);
ПроверитьКС_8_03(СтруктураРезультата);
ПроверитьКС_8_04(СтруктураРезультата);
ПроверитьКС_8_05(СтруктураРезультата);
Если СписокРасшифровкиформулы.Количество() = 0 Тогда
Возврат СтруктураРезультата;
КонецЕсли;
ПоместитьВКэш(СписокРасшифровкиформулы , УникальныйИдентификатор,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресФормул);
ПоместитьВКэш(СписокРасшифровкиПоказателей, УникальныйИдентификатор,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресПоказателей);
СтруктураРезультата.Вставить("СписокРасшифровкиформулы" ,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресФормул);
СтруктураРезультата.Вставить("СписокРасшифровкиПоказателей" ,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресПоказателей);
Возврат СтруктураРезультата;
КонецФункции
#КонецОбласти
#Область КС_Проверки
#Область КС_Проверки_ТитульногоЛиста
&НаСервере
Процедура ПроверитьКС_1_01(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Титульного листа (КС 1.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, код ОКВЭД на Титульном листе должен быть заполнен, '") +
НСтр("ru='если Раздел СКЕ отсутствует, код ОКВЭД на Титульном листе не обязателен к заполнению'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='Значение %1 заполнено'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение ОКВЭД'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И НЕ ЗначениеЗаполнено(Показатели.Р00С001.Значение);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р00С001.ЗначениеСтр);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_02(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Титульного листа (КС 1.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, код ОКВЭД на Титульном листе должен быть равен одному из '") +
НСтр("ru='значений кода ОКВЭД Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение ОКВЭД'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
ИменаПоказателей.Вставить("Р91Г002" , "П000910000102_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г002, ДанныеКС.Р91, Счетчик);
КонецЦикла;
ИндексВ_СКЕ = Показатели.Р91Г002.МассивСтрок.Найти(Показатели.Р00С001.Значение);
ЗначениеВ_СКЕ = ?(ИндексВ_СКЕ = Неопределено, "<...>", Показатели.Р91Г002.МассивСтрок[ИндексВ_СКЕ]);
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И ИндексВ_СКЕ = Неопределено;
Настройки.Расшифровка = СтрЗаменить(Настройки.ШаблонРасшифровки , "%1", Показатели.Р00С001.ЗначениеСтр);
Настройки.Расшифровка = СтрЗаменить(Настройки.Расшифровка , "%2", ЗначениеСтр(ЗначениеВ_СКЕ));
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_03(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Титульного листа (КС 1.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работающих инвалидов на Титульном листе > 0, если гр.3 стр.4 Таблицы 1 > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работающих инвалидов'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
ИменаПоказателей.Вставить("Р01П034" , "П000010000403");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П034, ДанныеКС.Р01);
Настройки.ЭтоОшибка = Показатели.Р01П034.Значение > 0 И НЕ Показатели.Р00С002.Значение > 0;
Настройки.Расшифровка = СтрЗаменить(Настройки.ШаблонРасшифровки , "%1", Показатели.Р00С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_04(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Титульного листа (КС 1.4)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников, занятых на вредных работах на Титульном листе > 0, если гр.7 '") +
НСтр("ru='стр.2 Таблицы 5 > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение численности работников, занятых на вредных работах'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С003" , "ЧислВред");
ИменаПоказателей.Вставить("Р05П027" , "П000050000207");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С003, ДанныеКС.Р00);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р05П027, ДанныеКС.Р05);
Настройки.ЭтоОшибка = Показатели.Р05П027.Значение > 0 И НЕ Показатели.Р00С003.Значение > 0;
Настройки.Расшифровка = СтрЗаменить(Настройки.ШаблонРасшифровки , "%1", Показатели.Р00С003.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_1
&НаСервере
Процедура ПроверитьКС_2_01(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Стр.9 Таблицы 1 = стр.5 Таблицы 1 х (1 - стр.6 Таблицы 1 / 100 + стр.7 Таблицы 1 / 100), '") +
НСтр("ru='полученное значение округляется до двух десятичных знаков после запятой'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 х (1 - %3 / 100 + %4 / 100) Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение страхового тарифа с учетом скидки (надбавки)'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01С009" , "П000010000903");
ИменаПоказателей.Вставить("Р01С005" , "П000010000503");
ИменаПоказателей.Вставить("Р01С006" , "П000010000603");
ИменаПоказателей.Вставить("Р01С007" , "П000010000703");
СформироватьПоказатели(Показатели, ИменаПоказателей);
Показатели.Р01С009.Округление = Истина;
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = Окр(Показатели.Р01С005.Значение *
(1 - Показатели.Р01С006.Значение / 100 + Показатели.Р01С007.Значение / 100), 2);
Настройки.ЭтоОшибка = НЕ Показатели.Р01С009.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01С009.Значение,
Показатели.Р01С005.Значение, Показатели.Р01С006.Значение, Показатели.Р01С007.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_02(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Стр.5 Таблицы 1 больше 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01С005" , "П000010000503");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РазделЗаполнен = ТаблицаЗаполнена(ДанныеКС.Р01);
Настройки.ЭтоОшибка = РазделЗаполнен И НЕ Показатели.Р01С005.Значение > 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01С005.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_03(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 1 больше или равна 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "103");
ПроверитьКС_2_18_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_04а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.4а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.4а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 1 равна сумме гр.4, 5, 6, стр.1 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "103");
Настройки.Вставить("ПостфиксПоказателя2", "104");
Настройки.Вставить("ПостфиксПоказателя3", "105");
Настройки.Вставить("ПостфиксПоказателя4", "106");
ПроверитьКС_2_19а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_04б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.4б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.4б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 1 равна сумме гр.4, 5, 6, стр.1 Таблицы 1 + гр.3 стр.1 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "103");
Настройки.Вставить("ПостфиксПоказателя2", "104");
Настройки.Вставить("ПостфиксПоказателя3", "105");
Настройки.Вставить("ПостфиксПоказателя4", "106");
ПроверитьКС_2_19б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_05(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.5)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 1 равна сумме стр.2, 3 по гр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "103");
Настройки.Вставить("ПостфиксПоказателя2", "203");
Настройки.Вставить("ПостфиксПоказателя3", "303");
ПроверитьКС_2_08_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_06(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.6)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.1 Таблицы 1 равна сумме стр.2, 3 по гр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, за 1 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "104");
Настройки.Вставить("ПостфиксПоказателя2", "204");
Настройки.Вставить("ПостфиксПоказателя3", "304");
ПроверитьКС_2_08_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_07(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.7'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.7)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.5 стр.1 Таблицы 1 равна сумме стр.2, 3 по гр.5 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, за 2 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "105");
Настройки.Вставить("ПостфиксПоказателя2", "205");
Настройки.Вставить("ПостфиксПоказателя3", "305");
ПроверитьКС_2_08_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_08(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.8'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.8)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.6 стр.1 Таблицы 1 равна сумме стр.2, 3 по гр.6 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат, за 3 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "106");
Настройки.Вставить("ПостфиксПоказателя2", "206");
Настройки.Вставить("ПостфиксПоказателя3", "306");
ПроверитьКС_2_08_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_08_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р01П023" , "П000010000" + Настройки.ПостфиксПоказателя2);
ИменаПоказателей.Вставить("Р01П033" , "П000010000" + Настройки.ПостфиксПоказателя3);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П023.Значение, Показатели.Р01П033.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_09(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.9'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.9)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.2 Таблицы 1 больше или равна 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм, не подлежащих налогообложению, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "203");
ПроверитьКС_2_18_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_10а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.10а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.10а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.2 Таблицы 1 равна сумме гр.4, 5, 6, стр.2 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм, не подлежащих налогообложению, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "203");
Настройки.Вставить("ПостфиксПоказателя2", "204");
Настройки.Вставить("ПостфиксПоказателя3", "205");
Настройки.Вставить("ПостфиксПоказателя4", "206");
ПроверитьКС_2_19а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_10б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.10б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.10б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.2 Таблицы 1 равна сумме гр.4, 5, 6, стр.2 Таблицы 1 + гр.3 стр.2 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм, не подлежащих налогообложению, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "203");
Настройки.Вставить("ПостфиксПоказателя2", "204");
Настройки.Вставить("ПостфиксПоказателя3", "205");
Настройки.Вставить("ПостфиксПоказателя4", "206");
ПроверитьКС_2_19б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_11(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.11'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.11)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.3 стр.2 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.15 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм, не подлежащих налогообложению, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000203");
Настройки.Вставить("ИмяПоказателя2" , "П000910000115_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_12(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.12'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.12)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.3 Таблицы 1 больше или равна 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "303");
ПроверитьКС_2_18_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_13а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.13а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.13а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.3 Таблицы 1 равна сумме гр.4, 5, 6, стр.3 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "303");
Настройки.Вставить("ПостфиксПоказателя2", "304");
Настройки.Вставить("ПостфиксПоказателя3", "305");
Настройки.Вставить("ПостфиксПоказателя4", "306");
ПроверитьКС_2_19а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_13б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.13б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.13б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.3 Таблицы 1 равна сумме гр.4, 5, 6, стр.3 Таблицы 1 + гр.3 стр.3 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "303");
Настройки.Вставить("ПостфиксПоказателя2", "304");
Настройки.Вставить("ПостфиксПоказателя3", "305");
Настройки.Вставить("ПостфиксПоказателя4", "306");
ПроверитьКС_2_19б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_14(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.14'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.14)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.3 стр.3 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.7 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000303");
Настройки.Вставить("ИмяПоказателя2" , "П000910000107_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_15(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.15'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.15)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.4 стр.3 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.9 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 1 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000304");
Настройки.Вставить("ИмяПоказателя2" , "П000910000109_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_16(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.16'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.16)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.5 стр.3 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.11 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 2 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000305");
Настройки.Вставить("ИмяПоказателя2" , "П000910000111_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_17(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.17'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.17)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.6 стр.3 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.13 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 3 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000306");
Настройки.Вставить("ИмяПоказателя2" , "П000910000113_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_18(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.18'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.18)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 1 больше или равна 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат в пользу инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "403");
ПроверитьКС_2_18_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_18_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
Настройки.ЭтоОшибка = НЕ Показатели.Р01П013.Значение >= 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.19а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.19а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 1 равна сумме гр.4, 5, 6, стр.4 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат в пользу инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "403");
Настройки.Вставить("ПостфиксПоказателя2", "404");
Настройки.Вставить("ПостфиксПоказателя3", "405");
Настройки.Вставить("ПостфиксПоказателя4", "406");
ПроверитьКС_2_19а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19а_код(Настройки)
Перем Показатели;
Если НЕ ДанныеКС.КвОтчета = 1 Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р01П014" , "П000010000" + Настройки.ПостфиксПоказателя2);
ИменаПоказателей.Вставить("Р01П015" , "П000010000" + Настройки.ПостфиксПоказателя3);
ИменаПоказателей.Вставить("Р01П016" , "П000010000" + Настройки.ПостфиксПоказателя4);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П014.Значение, Показатели.Р01П015.Значение, Показатели.Р01П016.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.19б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.19б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 1 равна сумме гр.4, 5, 6, стр.4 Таблицы 1 + гр.3 стр.4 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат в пользу инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "403");
Настройки.Вставить("ПостфиксПоказателя2", "404");
Настройки.Вставить("ПостфиксПоказателя3", "405");
Настройки.Вставить("ПостфиксПоказателя4", "406");
ПроверитьКС_2_19б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19б_код(Настройки)
Перем Показатели;
Если НЕ ДанныеКС.КвОтчета > 1 ИЛИ ДанныеКС.ОтчетПРП = Неопределено Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р01П014" , "П000010000" + Настройки.ПостфиксПоказателя2);
ИменаПоказателей.Вставить("Р01П015" , "П000010000" + Настройки.ПостфиксПоказателя3);
ИменаПоказателей.Вставить("Р01П016" , "П000010000" + Настройки.ПостфиксПоказателя4);
ИменаПоказателей.Вставить("Р01П013О" , "П000010000" + Настройки.ПостфиксПоказателя1);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П013 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П014 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П015 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П016 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П013О, ДанныеКС.П01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П014.Значение, Показатели.Р01П015.Значение, Показатели.Р01П016.Значение,
Показатели.Р01П013О.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_20(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.20'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.20)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 1 меньше или равна гр.3 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат в пользу инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П043" , "П000010000403");
ИменаПоказателей.Вставить("Р01П033" , "П000010000303");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
Настройки.ЭтоОшибка = НЕ Показатели.Р01П043.Значение <= Показатели.Р01П033.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П043.Значение,
Показатели.Р01П033.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_21(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.21'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.21)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 1 равна 0, если численность работающих инвалидов на Титульном листе = 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение сумм выплат в пользу инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П034" , "П000010000403");
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П034, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С002.Значение = 0 И НЕ Показатели.Р01П034.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П034.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_22(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.22'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.22)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.3 стр.4 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.8 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы выплат в пользу работающих инвалидов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000403");
Настройки.Вставить("ИмяПоказателя2" , "П000910000108_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_23(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.23'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.23)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.4 стр.4 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.10 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы выплат в пользу работающих инвалидов, за 1 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000404");
Настройки.Вставить("ИмяПоказателя2" , "П000910000110_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_24(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.24'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.24)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.5 стр.4 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.12 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы выплат в пользу работающих инвалидов, за 2 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000405");
Настройки.Вставить("ИмяПоказателя2" , "П000910000112_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_25(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.25'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1 (КС 2.25)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, значение гр.6 стр.4 Таблицы 1 = сумме значений '") +
НСтр("ru='по гр.14 Раздела СКЕ'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы выплат в пользу работающих инвалидов, за 3 месяц отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1" , "П000010000406");
Настройки.Вставить("ИмяПоказателя2" , "П000910000114_");
ПроверитьКС_2_25_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_25_код(Настройки)
Перем Показатели;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П001" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р91Г001" , Настройки.ИмяПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г001, ДанныеКС.Р91, Счетчик);
КонецЦикла;
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И НЕ Показатели.Р01П001.Значение = Показатели.Р91Г001.Итог;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П001.Значение, Показатели.Р91Г001.Итог);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Раздела_СКЕ
&НаСервере
Процедура ПроверитьКС_3_01а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.1а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.1а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ равен коду ОКВЭД на Титульном листе и признак '") +
НСтр("ru='""Частичное финансирование из бюджета"" в Таблице 1 не установлен, значение страхового '") +
НСтр("ru='тарифа в гр.4 Раздела СКЕ равно стр.5 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("КС_1а", Истина);
ПроверитьКС_3_01_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_01б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.1б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.1б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ равен коду ОКВЭД на Титульном листе и признак '") +
НСтр("ru='""Частичное финансирование из бюджета"" в Таблице 1 установлен, значение страхового '") +
НСтр("ru='тарифа в гр.4 Раздела СКЕ равно стр.5 Таблицы 1 или 0,2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 или 0,2'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("КС_1а", Ложь);
ПроверитьКС_3_01_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_01_код(Настройки)
Перем Показатели;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р91Г002" , "П000910000102_");
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
ИменаПоказателей.Вставить("Р01С001" , "П000010000001");
ИменаПоказателей.Вставить("Р91Г004" , "П000910000104_");
ИменаПоказателей.Вставить("Р01С005" , "П000010000503");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗаполнитьПоказатель(Показатели.Р01С001, ДанныеКС.Р01);
ЗаполнитьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
ЗаполнитьПоказатель(Показатели.Р01С005, ДанныеКС.Р01);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г002, ДанныеКС.Р91, Счетчик);
РасшифроватьПоказатель(Показатели.Р00С001);
РасшифроватьПоказатель(Показатели.Р01С001);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г004, ДанныеКС.Р91, Счетчик);
РасшифроватьПоказатель(Показатели.Р01С005);
Если Настройки.КС_1а Тогда
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И НЕ ДанныеКС.ЧастичноеФин И Показатели.Р91Г002.Значение
= Показатели.Р00С001.Значение И НЕ Показатели.Р91Г004.Значение = Показатели.Р01С005.Значение;
Иначе
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И ДанныеКС.ЧастичноеФин И Показатели.Р91Г002.Значение
= Показатели.Р00С001.Значение И НЕ (Показатели.Р91Г004.Значение = Показатели.Р01С005.Значение
ИЛИ Показатели.Р91Г004.Значение = 0.2);
КонецЕсли;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р91Г004.Значение,
Показатели.Р01С005.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_02а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.2а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.2а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ равен коду ОКВЭД на Титульном листе, значение '") +
НСтр("ru='скидки к страховому тарифу в гр.5 Раздела СКЕ равно стр.6 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение скидки к страховому тарифу'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000910000105_");
Настройки.Вставить("ИмяПоказателя2", "П000010000603");
ПроверитьКС_3_03а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_02б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.2б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.2б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ не равен коду ОКВЭД на Титульном листе, значение '") +
НСтр("ru='скидки к страховому тарифу в гр.5 Раздела СКЕ равно 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение скидки к страховому тарифу'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000910000105_");
ПроверитьКС_3_03б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_03а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.3а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.3а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ равен коду ОКВЭД на Титульном листе, значение '") +
НСтр("ru='надбавки к страховому тарифу в гр.6 Раздела СКЕ равно стр.7 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение надбавки к страховому тарифу'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000910000106_");
Настройки.Вставить("ИмяПоказателя2", "П000010000703");
ПроверитьКС_3_03а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_03а_код(Настройки)
Перем Показатели;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р91Г002" , "П000910000102_");
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
ИменаПоказателей.Вставить("Р91Г005" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р01С006" , Настройки.ИмяПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗаполнитьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
ЗаполнитьПоказатель(Показатели.Р01С006, ДанныеКС.Р01);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г002, ДанныеКС.Р91, Счетчик);
РасшифроватьПоказатель(Показатели.Р00С001);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г005, ДанныеКС.Р91, Счетчик);
РасшифроватьПоказатель(Показатели.Р01С006);
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И Показатели.Р91Г002.Значение = Показатели.Р00С001.Значение
И НЕ Показатели.Р91Г005.Значение = Показатели.Р01С006.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р91Г005.Значение,
Показатели.Р01С006.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_03б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.3б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Раздел СКЕ'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Раздела СКЕ (КС 3.3б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если код ОКВЭД в гр.2 Раздела СКЕ не равен коду ОКВЭД на Титульном листе, значение '") +
НСтр("ru='надбавки к страховому тарифу в гр.6 Раздела СКЕ равно 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение надбавки к страховому тарифу'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000910000106_");
ПроверитьКС_3_03б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_03б_код(Настройки)
Перем Показатели;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р91Г002" , "П000910000102_");
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
ИменаПоказателей.Вставить("Р91Г005" , Настройки.ИмяПоказателя1);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗаполнитьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г002, ДанныеКС.Р91, Счетчик);
РасшифроватьПоказатель(Показатели.Р00С001);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р91Г005, ДанныеКС.Р91, Счетчик);
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И НЕ Показатели.Р91Г002.Значение = Показатели.Р00С001.Значение
И НЕ Показатели.Р91Г005.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р91Г005.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_11
&НаСервере
Процедура ПроверитьКС_4_01(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма всех строк по гр.6 Таблицы 1.1 меньше или равна гр.3 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "106_");
Настройки.Вставить("ПостфиксПоказателя2", "303");
ПроверитьКС_4_06_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_02(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.6 Таблицы 1.1 больше или равна гр.7 Таблицы 1.1 по каждой строке'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "106_");
Настройки.Вставить("ПостфиксПоказателя2", "107_");
ПроверитьКС_4_05_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_03(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.8 Таблицы 1.1 больше или равна гр.9 Таблицы 1.1 по каждой строке'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 1 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "108_");
Настройки.Вставить("ПостфиксПоказателя2", "109_");
ПроверитьКС_4_05_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_04(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.4)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.10 Таблицы 1.1 больше или равна гр.11 Таблицы 1.1 по каждой строке'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "110_");
Настройки.Вставить("ПостфиксПоказателя2", "111_");
ПроверитьКС_4_05_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_05(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.5)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.12 Таблицы 1.1 больше или равна гр.13 Таблицы 1.1 по каждой строке'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов, за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "112_");
Настройки.Вставить("ПостфиксПоказателя2", "113_");
ПроверитьКС_4_05_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_05_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11Г006" , "П000110000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р11Г007" , "П000110000" + Настройки.ПостфиксПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р11, Счетчик);
Настройки.ЭтоОшибка = НЕ Показатели.Р11Г006.Значение >= Показатели.Р11Г007.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р11Г006.Значение,
Показатели.Р11Г007.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_06(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 1.1 (КС 4.6)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма всех строк по гр.7 Таблицы 1.1 меньше или равна гр.3 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение базы для начисления страховых взносов по инвалидам, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "107_");
Настройки.Вставить("ПостфиксПоказателя2", "403");
ПроверитьКС_4_06_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_06_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11Г006" , "П000110000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р01П033" , "П000010000" + Настройки.ПостфиксПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11Г006, ДанныеКС.Р11, Счетчик);
КонецЦикла;
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П033, ДанныеКС.Р01);
Настройки.ЭтоОшибка = НЕ Показатели.Р11Г006.Итог <= Показатели.Р01П033.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р11Г006.Итог, Показатели.Р01П033.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_2
&НаСервере
Процедура ПроверитьКС_5_01а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.1а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал, расчет прп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.1а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 2 равна гр.3 стр.19 Таблицы 2 ""Задолженность за страхователем"" за '") +
НСтр("ru='предыдущий расчетный период, если расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение задолженности за страхователем на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020001003");
Настройки.Вставить("ИмяПоказателя2", "П000020019003");
ПроверитьКС_5_14а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_01б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.1б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.1б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 2 равна гр.3 стр.1 Таблицы 2 ""Задолженность за страхователем"" за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение задолженности за страхователем на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020001003");
Настройки.Вставить("ИмяПоказателя2", "П000020001003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_02а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.2а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.2а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.2 Таблицы 2 ""На начало отчетного периода"" равна 0, если '") +
НСтр("ru='расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы начисленных страховых взносов на начало отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002001");
ПроверитьКС_5_18а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_02б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.2б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.2б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.2 Таблицы 2 ""На начало отчетного периода"" равна гр.3 стр.2 Таблицы 2 '") +
НСтр("ru='за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы начисленных страховых взносов на начало отчетного периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002001");
Настройки.Вставить("ИмяПоказателя2", "П000020002003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_03(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.2 Таблицы 2 равна гр.1 стр.2 Таблицы 2 ""На начало отчетного периода"" '") +
НСтр("ru='+ сумма показателя ""За последние три месяца отчетного периода""'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002003");
Настройки.Вставить("ИмяПоказателя2", "П000020002001");
Настройки.Вставить("ИмяПоказателя3", "П000020002401");
ПроверитьКС_5_19_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04а_1(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4а.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4а.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.1 стр.2 Таблицы 2 за 2 месяц равна (гр.5 стр. 3 Таблицы 1 - гр.5 стр. 4 '") +
НСтр("ru='Таблицы 1 + 0,6 х гр.5 стр.4 Таблицы 1) х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (%2 - %3 + 0,6 х %3) х %4 / 100 Итог [%5] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002201");
Настройки.Вставить("ИмяПоказателя2", "П000010000305");
Настройки.Вставить("ИмяПоказателя3", "П000010000405");
ПроверитьКС_5_04а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04а_2(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4а.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4а.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.1 стр.2 Таблицы 2 за 3 месяц равна (гр.6 стр. 3 Таблицы 1 - гр.6 стр. 4 '") +
НСтр("ru='Таблицы 1 + 0,6 х гр.6 стр.4 Таблицы 1) х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (%2 - %3 + 0,6 х %3) х %4 / 100 Итог [%5] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002301");
Настройки.Вставить("ИмяПоказателя2", "П000010000306");
Настройки.Вставить("ИмяПоказателя3", "П000010000406");
ПроверитьКС_5_04а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04а_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П022" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р01П033" , Настройки.ИмяПоказателя2);
ИменаПоказателей.Вставить("Р01П043" , Настройки.ИмяПоказателя3);
ИменаПоказателей.Вставить("Р01П093" , "П000010000903");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П022, ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П033, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П043, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П093, ДанныеКС.Р01);
УсловиеВыполнено = НЕ ДанныеКС.СКЕ_Заполнен И НЕ ДанныеКС.Р11_Заполнен И НЕ ДанныеКС.Льгота60;
РасчетнаяСумма = Окр((Показатели.Р01П033.Значение - Показатели.Р01П043.Значение + 0.6 * Показатели.Р01П043.Значение)
* Показатели.Р01П093.Значение / 100, 2);
Настройки.ЭтоОшибка = УсловиеВыполнено И
НЕ (Показатели.Р02П022.Значение <= РасчетнаяСумма + 1 И Показатели.Р02П022.Значение >= РасчетнаяСумма - 1);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П022.Значение,
Показатели.Р01П033.Значение, Показатели.Р01П043.Значение, Показатели.Р01П093.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04б_1(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4б.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4б.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.1 стр.2 Таблицы 2 за 2 месяц равна (0,6 х гр.5 стр. 3 Таблицы 1) '") +
НСтр("ru='х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (0,6 х %2) х %3 / 100 Итог [%4] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002201");
Настройки.Вставить("ИмяПоказателя2", "П000010000305");
ПроверитьКС_5_04б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04б_2(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4б.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4б.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.1 стр.2 Таблицы 2 за 3 месяц равна (0,6 х гр.6 стр. 3 Таблицы 1) '") +
НСтр("ru='х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (0,6 х %2) х %3 / 100 Итог [%4] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002301");
Настройки.Вставить("ИмяПоказателя2", "П000010000306");
ПроверитьКС_5_04б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04б_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П022" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р01П033" , Настройки.ИмяПоказателя2);
ИменаПоказателей.Вставить("Р01П093" , "П000010000903");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П022, ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П033, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П093, ДанныеКС.Р01);
УсловиеВыполнено = НЕ ДанныеКС.СКЕ_Заполнен И НЕ ДанныеКС.Р11_Заполнен И ДанныеКС.Льгота60;
РасчетнаяСумма = Окр((0.6 * Показатели.Р01П033.Значение) * Показатели.Р01П093.Значение / 100, 2);
Настройки.ЭтоОшибка = УсловиеВыполнено И
НЕ (Показатели.Р02П022.Значение <= РасчетнаяСумма + 1 И Показатели.Р02П022.Значение >= РасчетнаяСумма - 1);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П022.Значение,
Показатели.Р01П033.Значение, Показатели.Р01П093.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04в_1(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4в.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4в.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, гр.1 стр.2 Таблицы 2 за 2 месяц равна сумме начислений по всем '") +
НСтр("ru='СКЕ за 2 месяц ± 1 руб. Расчет начислений проводится в зависимости от установленного признака '") +
НСтр("ru='""Установлена льгота 60%"" в Таблице 1 аналогично КС 5.4а.1 или 5.4б.1. Для каждой СКЕ '") +
НСтр("ru='учитывается свой страховой тариф. Скидка или надбавка учитываются только для той СКЕ, чей '") +
НСтр("ru='код ОКВЭД в гр.2 Раздела СКЕ совпадает с кодом ОКВЭД на Титульном листе'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаНачислений", "11");
Настройки.Вставить("ГрафаИнвалиды" , "12");
Настройки.Вставить("ГрафаПериод" , "2201");
ПроверитьКС_5_04в_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04в_2(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4в.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4в.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, гр.1 стр.2 Таблицы 2 за 3 месяц равна сумме начислений по всем '") +
НСтр("ru='СКЕ за 3 месяц ± 1 руб. Расчет начислений проводится в зависимости от установленного признака '") +
НСтр("ru='""Установлена льгота 60%"" в Таблице 1 аналогично КС 5.4а.2 или 5.4б.2. Для каждой СКЕ '") +
НСтр("ru='учитывается свой страховой тариф. Скидка или надбавка учитываются только для той СКЕ, чей '") +
НСтр("ru='код ОКВЭД в гр.2 Раздела СКЕ совпадает с кодом ОКВЭД на Титульном листе'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаНачислений", "13");
Настройки.Вставить("ГрафаИнвалиды" , "14");
Настройки.Вставить("ГрафаПериод" , "2301");
ПроверитьКС_5_04в_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04в_код(Настройки)
Перем Показатели;
Если ДанныеКС.СКЕ_Нет Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р91Г002" , "П000910000102_");
ИменаПоказателей.Вставить("Р00С001" , "ОКВЭД");
ИменаПоказателей.Вставить("Р01С002" , "П000010000002");
ИменаПоказателей.Вставить("Р02П022" , "П00002000" + Настройки.ГрафаПериод);
ИменаПоказателей.Вставить("Р91Г004" , "П000910000104_");
ИменаПоказателей.Вставить("Р91Г005" , "П000910000105_");
ИменаПоказателей.Вставить("Р91Г006" , "П000910000106_");
ИменаПоказателей.Вставить("Р91Г011" , "П0009100001" + Настройки.ГрафаНачислений + "_");
ИменаПоказателей.Вставить("Р91Г012" , "П0009100001" + Настройки.ГрафаИнвалиды + "_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ВсегоНачислений = 0;
Расшифровка1 = НСтр("ru='Расчет по СКЕ %1 (ОКВЭД %2): (%3 - %4 + 0,6 х %4) х %5 / 100'");
Расшифровка2 = НСтр("ru='Расчет по СКЕ %1 (ОКВЭД %2): (0,6 х %3) х %4 / 100'");
ЗаполнитьПоказатель(Показатели.Р00С001, ДанныеКС.Р00);
ЗаполнитьПоказатель(Показатели.Р01С002, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П022, ДанныеКС.Р02);
Для Счетчик = 1 По ДанныеКС.КолСтрок91 Цикл
ЗаполнитьПоказатель(Показатели.Р91Г002, ДанныеКС.Р91, Счетчик);
ЗаполнитьПоказатель(Показатели.Р91Г004, ДанныеКС.Р91, Счетчик);
ЗаполнитьПоказатель(Показатели.Р91Г005, ДанныеКС.Р91, Счетчик);
ЗаполнитьПоказатель(Показатели.Р91Г006, ДанныеКС.Р91, Счетчик);
ЗаполнитьПоказатель(Показатели.Р91Г011, ДанныеКС.Р91, Счетчик);
ЗаполнитьПоказатель(Показатели.Р91Г012, ДанныеКС.Р91, Счетчик);
УчитыватьСкидку = Показатели.Р00С001.Значение = Показатели.Р91Г002.Значение;
Если УчитыватьСкидку Тогда
Тариф = Показатели.Р91Г004.Значение * (1 - Показатели.Р91Г005.Значение / 100 + Показатели.Р91Г006.Значение / 100);
Тариф = Окр(Тариф, 2);
Иначе
Тариф = Показатели.Р91Г004.Значение;
КонецЕсли;
Если ДанныеКС.Льгота60 Тогда
СуммаНачисления = Окр(Показатели.Р91Г011.Значение * 0.6 * Тариф / 100, 2);
РасшифровкаНачисления = СтрШаблон(Расшифровка2, Счетчик, Показатели.Р91Г002.Значение, Показатели.Р91Г011.Значение,
Тариф);
Иначе
СуммаНачисления = Окр((Показатели.Р91Г011.Значение - Показатели.Р91Г012.Значение
+ 0.6 * Показатели.Р91Г012.Значение) * Тариф / 100, 2);
РасшифровкаНачисления = СтрШаблон(Расшифровка1, Счетчик, Показатели.Р91Г002.Значение, Показатели.Р91Г011.Значение,
Показатели.Р91Г012.Значение, Тариф);
КонецЕсли;
НоваяСтрока = СписокРасшифровкиПоказателей.Добавить();
НоваяСтрока.Номер = СчетчикФормулДляРасшифровок;
НоваяСтрока.ПредставлениеПоказателя = РасшифровкаНачисления;
НоваяСтрока.СсылкаНаДокументРО = Неопределено;
НоваяСтрока.ЗначениеПоказателя = СуммаНачисления;
ВсегоНачислений = ВсегоНачислений + СуммаНачисления;
КонецЦикла;
Настройки.ЭтоОшибка = ДанныеКС.СКЕ_Заполнен И
НЕ (Показатели.Р02П022.Значение <= ВсегоНачислений + 1 И Показатели.Р02П022.Значение >= ВсегоНачислений - 1);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П022.Значение, ВсегоНачислений);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04г_1(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4г.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4г.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.1 стр.2 Таблицы 2 за 2 месяц равна ((гр.5 стр. 3 Таблицы 1 - гр.5 стр. 4 Таблицы 1 '") +
НСтр("ru='- сумма строк по графе 10 Таблицы 1.1 + сумма строк по графе 11 Таблицы 1.1 + 0,6 х (гр.5 стр. 4 '") +
НСтр("ru='Таблицы 1 - сумма строк по графе 11 Таблицы 1.1)) х стр. 9 Таблицы 1 / 100) + сумма начислений '") +
НСтр("ru='Таблицы 1 за соответствующий месяц (рассчитывается аналогично КС 5.4а.1) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" ,
НСтр("ru='%1 = ((%2 - %3 - %4 + %5 + 0,6 х (%3 - %5)) х %6 / 100) + %7 Итог [%8] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002201");
Настройки.Вставить("ИмяПоказателя2", "П000010000305");
Настройки.Вставить("ИмяПоказателя3", "П000010000405");
Настройки.Вставить("ИмяПоказателя4", "П000110000110_");
Настройки.Вставить("ИмяПоказателя5", "П000110000111_");
ПроверитьКС_5_04г_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04г_2(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4г.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4г.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.1 стр.2 Таблицы 2 за 3 месяц равна ((гр.6 стр. 3 Таблицы 1 - гр.6 стр. 4 Таблицы 1 '") +
НСтр("ru='- сумма строк по графе 12 Таблицы 1.1 + сумма строк по графе 13 Таблицы 1.1 + 0,6 х (гр.6 стр. 4 '") +
НСтр("ru='Таблицы 1 - сумма строк по графе 13 Таблицы 1.1)) х стр. 9 Таблицы 1 / 100) + сумма начислений '") +
НСтр("ru='Таблицы 1 за соответствующий месяц (рассчитывается аналогично КС 5.4а.2) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" ,
НСтр("ru='%1 = ((%2 - %3 - %4 + %5 + 0,6 х (%3 - %5)) х %6 / 100) + %7 Итог [%8] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002301");
Настройки.Вставить("ИмяПоказателя2", "П000010000306");
Настройки.Вставить("ИмяПоказателя3", "П000010000406");
Настройки.Вставить("ИмяПоказателя4", "П000110000112_");
Настройки.Вставить("ИмяПоказателя5", "П000110000113_");
ПроверитьКС_5_04г_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04г_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П022" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р01П033" , Настройки.ИмяПоказателя2);
ИменаПоказателей.Вставить("Р01П043" , Настройки.ИмяПоказателя3);
ИменаПоказателей.Вставить("Р11Г010" , Настройки.ИмяПоказателя4);
ИменаПоказателей.Вставить("Р11Г011" , Настройки.ИмяПоказателя5);
ИменаПоказателей.Вставить("Р11Г015" , "П000110000115_");
ИменаПоказателей.Вставить("Р01П093" , "П000010000903");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ШаблонРасшифровки = НСтр("ru='Расчет начислений строке %1 Таблицы 1.1: (%2 - %3 + 0,6 х %3) х %4 / 100'");
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П022, ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П033, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П043, ДанныеКС.Р01);
СуммаБазы = 0;
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11Г010, ДанныеКС.Р11, Счетчик);
СуммаБазы = СуммаБазы + Показатели.Р11Г010.Значение;
КонецЦикла;
СуммаИнвалиды = 0;
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11Г011, ДанныеКС.Р11, Счетчик);
СуммаИнвалиды = СуммаИнвалиды + Показатели.Р11Г011.Значение;
КонецЦикла;
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П093, ДанныеКС.Р01);
ВсегоНачислений = 0;
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьПоказатель(Показатели.Р11Г010, ДанныеКС.Р11, Счетчик);
ЗаполнитьПоказатель(Показатели.Р11Г011, ДанныеКС.Р11, Счетчик);
ЗаполнитьПоказатель(Показатели.Р11Г015, ДанныеКС.Р11, Счетчик);
СуммаНачисления = Окр((Показатели.Р11Г010.Значение - Показатели.Р11Г011.Значение
+ 0.6 * Показатели.Р11Г011.Значение) * Показатели.Р11Г015.Значение / 100, 2);
ВсегоНачислений = ВсегоНачислений + СуммаНачисления;
НоваяСтрока = СписокРасшифровкиПоказателей.Добавить();
НоваяСтрока.Номер= СчетчикФормулДляРасшифровок;
НоваяСтрока.ПредставлениеПоказателя = СтрШаблон(ШаблонРасшифровки, Счетчик, Показатели.Р11Г010.Значение,
Показатели.Р11Г011.Значение, Показатели.Р11Г015.Значение);
НоваяСтрока.ЗначениеПоказателя = СуммаНачисления;
НоваяСтрока.СсылкаНаДокументРО = Неопределено;
КонецЦикла;
УсловиеВыполнено = НЕ ДанныеКС.СКЕ_Заполнен И ДанныеКС.Р11_Заполнен И НЕ ДанныеКС.Льгота60;
РасчетнаяСумма = Окр((Показатели.Р01П033.Значение - Показатели.Р01П043.Значение - СуммаБазы + СуммаИнвалиды
+ 0.6 * (Показатели.Р01П043.Значение - СуммаИнвалиды)) * Показатели.Р01П093.Значение / 100 + ВсегоНачислений, 2);
Настройки.ЭтоОшибка = УсловиеВыполнено И
НЕ (Показатели.Р02П022.Значение <= РасчетнаяСумма + 1 И Показатели.Р02П022.Значение >= РасчетнаяСумма - 1);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П022.Значение,
Показатели.Р01П033.Значение, Показатели.Р01П043.Значение, СуммаБазы, СуммаИнвалиды, Показатели.Р01П093.Значение,
ВсегоНачислений, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04д_1(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4д.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4д.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.1 стр.2 Таблицы 2 за 2 месяц равна ((0,6 х (гр.5 стр. 3 Таблицы 1 - сумма строк по '") +
НСтр("ru='графе 10 Таблицы 1.1)) х стр. 9 Таблицы 1 / 100) + сумма начислений Таблицы 1 за соответствующий '") +
НСтр("ru='месяц (рассчитывается аналогично КС 5.4б.1) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = ((0,6 х (%2 - %3)) х %4 / 100) + %5 Итог [%6] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 2 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002201");
Настройки.Вставить("ИмяПоказателя2", "П000010000305");
Настройки.Вставить("ИмяПоказателя3", "П000110000110_");
ПроверитьКС_5_04д_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04д_2(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.4д.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.4д.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.1 стр.2 Таблицы 2 за 3 месяц равна ((0,6 х (гр.6 стр. 3 Таблицы 1 - сумма строк по '") +
НСтр("ru='графе 12 Таблицы 1.1)) х стр. 9 Таблицы 1 / 100) + сумма начислений Таблицы 1 за соответствующий '") +
НСтр("ru='месяц (рассчитывается аналогично КС 5.4б.2) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = ((0,6 х (%2 - %3)) х %4 / 100) + %5 Итог [%6] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов за 3 месяц'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002301");
Настройки.Вставить("ИмяПоказателя2", "П000010000306");
Настройки.Вставить("ИмяПоказателя3", "П000110000112_");
ПроверитьКС_5_04д_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_04д_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П022" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р01П033" , Настройки.ИмяПоказателя2);
ИменаПоказателей.Вставить("Р11Г010" , Настройки.ИмяПоказателя3);
ИменаПоказателей.Вставить("Р11Г015" , "П000110000115_");
ИменаПоказателей.Вставить("Р01П093" , "П000010000903");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ШаблонРасшифровки = НСтр("ru='Расчет начислений строке %1 Таблицы 1.1: 0,6 х %2 х %3 / 100'");
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П022, ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П033, ДанныеКС.Р01);
СуммаБазы = 0;
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11Г010, ДанныеКС.Р11, Счетчик);
СуммаБазы = СуммаБазы + Показатели.Р11Г010.Значение;
КонецЦикла;
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П093, ДанныеКС.Р01);
ВсегоНачислений = 0;
Для Счетчик = 1 По ДанныеКС.КолСтрок11 Цикл
ЗаполнитьПоказатель(Показатели.Р11Г010, ДанныеКС.Р11, Счетчик);
ЗаполнитьПоказатель(Показатели.Р11Г015, ДанныеКС.Р11, Счетчик);
СуммаНачисления = Окр(0.6 * Показатели.Р11Г010.Значение * Показатели.Р11Г015.Значение / 100, 2);
ВсегоНачислений = ВсегоНачислений + СуммаНачисления;
НоваяСтрока = СписокРасшифровкиПоказателей.Добавить();
НоваяСтрока.Номер= СчетчикФормулДляРасшифровок;
НоваяСтрока.ПредставлениеПоказателя = СтрШаблон(ШаблонРасшифровки, Счетчик, Показатели.Р11Г010.Значение,
Показатели.Р11Г015.Значение);
НоваяСтрока.ЗначениеПоказателя = СуммаНачисления;
НоваяСтрока.СсылкаНаДокументРО = Неопределено;
КонецЦикла;
УсловиеВыполнено = НЕ ДанныеКС.СКЕ_Заполнен И ДанныеКС.Р11_Заполнен И ДанныеКС.Льгота60;
РасчетнаяСумма = Окр(0.6 * (Показатели.Р01П033.Значение - СуммаБазы) * Показатели.Р01П093.Значение / 100
+ ВсегоНачислений, 2);
Настройки.ЭтоОшибка = УсловиеВыполнено И
НЕ (Показатели.Р02П022.Значение <= РасчетнаяСумма + 1 И Показатели.Р02П022.Значение >= РасчетнаяСумма - 1);
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П022.Значение,
Показатели.Р01П033.Значение, СуммаБазы, Показатели.Р01П093.Значение, ВсегоНачислений, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_05а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.5а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.5а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.3 стр.2 Таблицы 2 равна (гр.3 стр. 3 Таблицы 1 - гр.3 стр. 4 '") +
НСтр("ru='Таблицы 1 + 0,6 х гр.3 стр.4 Таблицы 1) х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (%2 - %3 + 0,6 х %3) х %4 / 100 Итог [%5] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002003");
Настройки.Вставить("ИмяПоказателя2", "П000010000303");
Настройки.Вставить("ИмяПоказателя3", "П000010000403");
ПроверитьКС_5_04а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_05б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.5б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.5б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ и Таблица 1.1 отсутствуют и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.3 стр.2 Таблицы 2 равна (0,6 х гр.3 стр. 3 Таблицы 1) '") +
НСтр("ru='х стр.9 Таблицы 1 / 100 ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = (0,6 х %2) х %3 / 100 Итог [%4] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002003");
Настройки.Вставить("ИмяПоказателя2", "П000010000303");
ПроверитьКС_5_04б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_05в(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.5в'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.5в)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ присутствует, гр.3 стр.2 Таблицы 2 равна сумме начислений по всем СКЕ с '") +
НСтр("ru='начала года ± 1 руб. Расчет начислений проводится в зависимости от установленного признака '") +
НСтр("ru='""Установлена льгота 60%"" в Таблице 1 аналогично КС 5.5а или 5.5б. Для каждой СКЕ '") +
НСтр("ru='учитывается свой страховой тариф. Скидка или надбавка учитываются только для той СКЕ, чей '") +
НСтр("ru='код ОКВЭД в гр.2 Раздела СКЕ совпадает с кодом ОКВЭД на Титульном листе'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаНачислений", "07");
Настройки.Вставить("ГрафаИнвалиды" , "08");
Настройки.Вставить("ГрафаПериод" , "2003");
ПроверитьКС_5_04в_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_05г(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.5г'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.5г)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='не установлен, гр.3 стр.2 Таблицы 2 равна ((гр.3 стр. 3 Таблицы 1 - гр.3 стр. 4 Таблицы 1 - сумма '") +
НСтр("ru='строк по гр.6 Таблицы 1.1 + сумма строк по гр.7 Таблицы 1.1 + 0,6 х (гр.3 стр.4 Таблицы 1 - сумма '") +
НСтр("ru='строк по гр.7 Таблицы 1.1)) х стр.9 Таблицы 1 / 100) + сумма начислений Таблицы 1.1 по всем '") +
НСтр("ru='строкам (рассчитывается аналогично КС 5.5а) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" ,
НСтр("ru='%1 = ((%2 - %3 - %4 + %5 + 0,6 х (%3 - %5)) х %6 / 100) + %7 Итог [%8] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002003");
Настройки.Вставить("ИмяПоказателя2", "П000010000303");
Настройки.Вставить("ИмяПоказателя3", "П000010000403");
Настройки.Вставить("ИмяПоказателя4", "П000110000106_");
Настройки.Вставить("ИмяПоказателя5", "П000110000107_");
ПроверитьКС_5_04г_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_05д(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.5д'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.5д)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Раздел СКЕ отсутствует, Таблица 1.1 заполнена и признак ""Установлена льгота 60%"" в Таблице 1 '") +
НСтр("ru='установлен, гр.3 стр.2 Таблицы 2 равна (0,6 х (гр.3 стр.3 Таблицы 1 - сумма строк по гр.6 '") +
НСтр("ru='Таблицы 1.1)) х стр.9 Таблицы 1 / 100) + сумма начислений Таблицы 1.1 по всем строкам (рассчитывается '") +
НСтр("ru='аналогично КС 5.5б) ± 1 руб'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = ((0,6 х (%2 - %3)) х %4 / 100) + %5 Итог [%6] ± 1 руб.'"));
Заголовки.Вставить("ОписаниеОшибки"
, НСтр("ru='Ошибочное значение начисленных страховых взносов, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020002003");
Настройки.Вставить("ИмяПоказателя2", "П000010000303");
Настройки.Вставить("ИмяПоказателя3", "П000110000106_");
ПроверитьКС_5_04д_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_06(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.6)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.8 Таблицы 2 равна сумме строк 1 - 7 по гр.3 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы взносов всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020008003");
ИменаПоказателей.Вставить("Р02П002" , "П000020001003");
ИменаПоказателей.Вставить("Р02П003" , "П000020001103");
ИменаПоказателей.Вставить("Р02П004" , "П000020002003");
ИменаПоказателей.Вставить("Р02П005" , "П000020003003");
ИменаПоказателей.Вставить("Р02П006" , "П000020004003");
ИменаПоказателей.Вставить("Р02П007" , "П000020005003");
ИменаПоказателей.Вставить("Р02П008" , "П000020006003");
ИменаПоказателей.Вставить("Р02П009" , "П000020007003");
Настройки.Вставить("ИменаПоказателей", ИменаПоказателей);
ПроверитьКС_5_20_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_07а(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.7а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.7а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.9 Таблицы 2 равна гр.3 стр.18 Таблицы 2 - гр.3 стр.8 Таблицы 2, если '") +
НСтр("ru='гр.3 стр.18 Таблицы 2 > гр.3 стр.8 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020009003");
ИменаПоказателей.Вставить("Р02П002" , "П000020018003");
ИменаПоказателей.Вставить("Р02П003" , "П000020008003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
УсловиеВыполнено = Показатели.Р02П002.Значение > Показатели.Р02П003.Значение;
РасчетнаяСумма = Показатели.Р02П002.Значение - Показатели.Р02П003.Значение;
Настройки.ЭтоОшибка = УсловиеВыполнено И НЕ Показатели.Р02П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение, Макс(0, РасчетнаяСумма));
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_07б(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.7б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.7б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.9 Таблицы 2 равна 0, если гр.3 стр.18 Таблицы 2 <= гр.3 стр.8 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020009003");
ИменаПоказателей.Вставить("Р02П002" , "П000020018003");
ИменаПоказателей.Вставить("Р02П003" , "П000020008003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
УсловиеВыполнено = Показатели.Р02П002.Значение <= Показатели.Р02П003.Значение;
Настройки.ЭтоОшибка = УсловиеВыполнено И НЕ Показатели.Р02П001.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_08(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.8'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.8)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.9 Таблицы 2 равна сумме строк 10, 11 по гр.3 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020009003");
Настройки.Вставить("ИмяПоказателя2", "П000020010003");
Настройки.Вставить("ИмяПоказателя3", "П000020011003");
ПроверитьКС_5_19_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_09(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.9'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.9)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.10 Таблицы 2 равна 0, если строки 13, 14.1 и 15 по гр.3 Таблицы 2 равны 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020010003");
ИменаПоказателей.Вставить("Р02П002" , "П000020013003");
ИменаПоказателей.Вставить("Р02П003" , "П000020014103");
ИменаПоказателей.Вставить("Р02П004" , "П000020015003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р02П001.Значение;
Настройки.ЭтоОшибка = РасчетнаяСумма = 0 И НЕ Показатели.Р02П001.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_10(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.10'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.10)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.11 Таблицы 2 равна 0, если строки 14 и 16 по гр.3 Таблицы 2 равны 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020011003");
ИменаПоказателей.Вставить("Р02П002" , "П000020014003");
ИменаПоказателей.Вставить("Р02П003" , "П000020016003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р02П001.Значение;
Настройки.ЭтоОшибка = РасчетнаяСумма = 0 И НЕ Показатели.Р02П001.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_11а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.11а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал, расчет прп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.11а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.12 Таблицы 2 равна гр.3 стр.9 Таблицы 2 за предыдущий расчетный период, '") +
НСтр("ru='если расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020012003");
Настройки.Вставить("ИмяПоказателя2", "П000020009003");
ПроверитьКС_5_14а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_11б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.11б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.11б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.12 Таблицы 2 равна гр.3 стр.12 Таблицы 2 за предыдущий отчетный период, '") +
НСтр("ru='если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020012003");
Настройки.Вставить("ИмяПоказателя2", "П000020012003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_12(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.12'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.12)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.12 Таблицы 2 равна сумме строк 13, 14 по гр.3 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020012003");
Настройки.Вставить("ИмяПоказателя2", "П000020013003");
Настройки.Вставить("ИмяПоказателя3", "П000020014003");
ПроверитьКС_5_19_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_13а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.13а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал, расчет прп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.13а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.13 Таблицы 2 равна гр.3 стр.10 Таблицы 2 за предыдущий расчетный период, '") +
НСтр("ru='если расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020013003");
Настройки.Вставить("ИмяПоказателя2", "П000020010003");
ПроверитьКС_5_14а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_13б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.13б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.13б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.13 Таблицы 2 равна гр.3 стр.13 Таблицы 2 за предыдущий отчетный период, '") +
НСтр("ru='если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020013003");
Настройки.Вставить("ИмяПоказателя2", "П000020013003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_14а(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.14а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал, расчет прп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.14а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.14 Таблицы 2 равна гр.3 стр.11 Таблицы 2 за предыдущий расчетный период, '") +
НСтр("ru='если расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020014003");
Настройки.Вставить("ИмяПоказателя2", "П000020011003");
ПроверитьКС_5_14а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_14а_код(Настройки)
Перем Показатели;
Если НЕ ДанныеКС.КвОтчета = 1 ИЛИ ДанныеКС.ОтчетПРП = Неопределено Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р02П002Р" , Настройки.ИмяПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001 , ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П002Р, ДанныеКС.П02);
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = Показатели.Р02П002Р.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение,
Показатели.Р02П002Р.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_14б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.14б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.14б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.14 Таблицы 2 равна гр.3 стр.14 Таблицы 2 за предыдущий отчетный период, '") +
НСтр("ru='если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы задолженности территориального органа на начало периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020014003");
Настройки.Вставить("ИмяПоказателя2", "П000020014003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_14б_код(Настройки)
Перем Показатели;
Если НЕ ДанныеКС.КвОтчета > 1 ИЛИ ДанныеКС.ОтчетПРП = Неопределено Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р02П001О" , Настройки.ИмяПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001 , ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001О, ДанныеКС.П02);
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = Показатели.Р02П001О.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение,
Показатели.Р02П001О.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_15а(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.15а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.15а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.15 Таблицы 2 ""На начало отчетного периода"" равна 0, если '") +
НСтр("ru='расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов на социальное страхование'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020015001");
ПроверитьКС_5_18а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_15б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.15б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.15б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.15 Таблицы 2 ""На начало отчетного периода"" равна гр.3 стр.15 Таблицы 2 '") +
НСтр("ru='за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов на социальное страхование'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020015001");
Настройки.Вставить("ИмяПоказателя2", "П000020015003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_16(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.16'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.16)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.15 Таблицы 2 равна гр.1 стр.15 Таблицы 2 ""На начало отчетного периода"" '") +
НСтр("ru='+ сумма показателя ""За последние три месяца отчетного периода""'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов на социальное страхование'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020015003");
Настройки.Вставить("ИмяПоказателя2", "П000020015001");
Настройки.Вставить("ИмяПоказателя3", "П000020015401");
ПроверитьКС_5_19_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_17(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.17'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.17)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.15 Таблицы 2 равна гр.4 стр.10 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов на социальное страхование'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020015003");
ИменаПоказателей.Вставить("Р03П002" , "П000030010004");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001, ДанныеКС.Р02);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р03П002, ДанныеКС.Р34);
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = Показатели.Р03П002.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение,
Показатели.Р03П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_18а(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.18а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 1 квартал'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.18а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.16 Таблицы 2 ""На начало отчетного периода"" равна 0, если '") +
НСтр("ru='расчет за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы уплаченных страховых взносов'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020016001");
ПроверитьКС_5_18а_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_18а_код(Настройки)
Перем Показатели;
Если НЕ ДанныеКС.КвОтчета = 1 Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , Настройки.ИмяПоказателя1);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001 , ДанныеКС.Р02);
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_18б(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.18б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru='Расчет за 2, 3, 4 квартал, расчет поп найден'"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.18б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.1 стр.16 Таблицы 2 ""На начало отчетного периода"" равна гр.3 стр.16 Таблицы 2 '") +
НСтр("ru='за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы уплаченных страховых взносов'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020016001");
Настройки.Вставить("ИмяПоказателя2", "П000020016003");
ПроверитьКС_5_14б_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_19(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.19'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.19)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.16 Таблицы 2 равна гр.1 стр.16 Таблицы 2 ""На начало отчетного периода"" '") +
НСтр("ru='+ сумма показателя ""За последние три месяца отчетного периода""'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы уплаченных страховых взносов'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ИмяПоказателя1", "П000020016003");
Настройки.Вставить("ИмяПоказателя2", "П000020016001");
Настройки.Вставить("ИмяПоказателя3", "П000020016401");
ПроверитьКС_5_19_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_19_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , Настройки.ИмяПоказателя1);
ИменаПоказателей.Вставить("Р02П002" , Настройки.ИмяПоказателя2);
ИменаПоказателей.Вставить("Р02П003" , Настройки.ИмяПоказателя3);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
РасчетнаяСумма = Показатели.Р02П002.Значение + Показатели.Р02П003.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение,
Показатели.Р02П002.Значение, Показатели.Р02П003.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_20(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.20'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.20)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.18 Таблицы 2 равна сумме строк 12, 14.1, 15, 16, 17 по гр.3 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020018003");
ИменаПоказателей.Вставить("Р02П002" , "П000020012003");
ИменаПоказателей.Вставить("Р02П003" , "П000020014103");
ИменаПоказателей.Вставить("Р02П004" , "П000020015003");
ИменаПоказателей.Вставить("Р02П005" , "П000020016003");
ИменаПоказателей.Вставить("Р02П006" , "П000020017003");
Настройки.Вставить("ИменаПоказателей", ИменаПоказателей);
ПроверитьКС_5_20_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_20_код(Настройки)
Перем Показатели;
СформироватьПоказатели(Показатели, Настройки.ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р02П001.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_21а(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.21а'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.21а)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.19 Таблицы 2 равна гр.3 стр.8 Таблицы 2 - гр.3 стр.18 Таблицы 2, если '") +
НСтр("ru='гр.3 стр.8 Таблицы 2 > гр.3 стр.18 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение задолженности за страхователем на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020019003");
ИменаПоказателей.Вставить("Р02П002" , "П000020008003");
ИменаПоказателей.Вставить("Р02П003" , "П000020018003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
УсловиеВыполнено = Показатели.Р02П002.Значение > Показатели.Р02П003.Значение;
РасчетнаяСумма = Показатели.Р02П002.Значение - Показатели.Р02П003.Значение;
Настройки.ЭтоОшибка = УсловиеВыполнено И НЕ Показатели.Р02П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение, Макс(0, РасчетнаяСумма));
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_21б(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.21б'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.21б)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.19 Таблицы 2 равна 0, если гр.3 стр.8 Таблицы 2 <= гр.3 стр.18 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение задолженности за страхователем на конец периода'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020019003");
ИменаПоказателей.Вставить("Р02П002" , "П000020008003");
ИменаПоказателей.Вставить("Р02П003" , "П000020018003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
УсловиеВыполнено = Показатели.Р02П002.Значение <= Показатели.Р02П003.Значение;
Настройки.ЭтоОшибка = УсловиеВыполнено И НЕ Показатели.Р02П001.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_22(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.22'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.22)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.20 Таблицы 2 меньше или равна гр.3 стр.19 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение недоимки'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020020003");
ИменаПоказателей.Вставить("Р02П002" , "П000020019003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
Настройки.ЭтоОшибка = НЕ Показатели.Р02П001.Значение <= Показатели.Р02П002.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02П001.Значение,
Показатели.Р02П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_23(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.23'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 2 (КС 5.23)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма строк 8 и 9 по гр.3 Таблицы 2 равна сумме строк 18 и 19 по гр.3 Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение недоимки'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02П001" , "П000020008003");
ИменаПоказателей.Вставить("Р02П002" , "П000020009003");
ИменаПоказателей.Вставить("Р02П003" , "П000020018003");
ИменаПоказателей.Вставить("Р02П004" , "П000020019003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02);
РасчетнаяСумма1 = Показатели.Р02П001.Значение + Показатели.Р02П002.Значение;
РасчетнаяСумма2 = Показатели.Р02П003.Значение + Показатели.Р02П004.Значение;
Настройки.ЭтоОшибка = НЕ РасчетнаяСумма1 = РасчетнаяСумма2;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, РасчетнаяСумма1, РасчетнаяСумма2);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_3
&НаСервере
Процедура ПроверитьКС_6_01(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 3 больше или равна сумме строк 2 и 3 по гр.3 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение количества дней пособий в связи с несчастными случаями'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "03");
ПроверитьКС_6_02_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_02(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.1 Таблицы 3 больше или равна сумме строк 2 и 3 по гр.4 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы пособий в связи с несчастными случаями'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "04");
ПроверитьКС_6_02_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_02_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03П013" , "П0000300010" + Настройки.Графа);
ИменаПоказателей.Вставить("Р03П023" , "П0000300020" + Настройки.Графа);
ИменаПоказателей.Вставить("Р03П033" , "П0000300030" + Настройки.Графа);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
РасчетнаяСумма = (Показатели.Р03П023.Значение + Показатели.Р03П033.Значение);
Настройки.ЭтоОшибка = НЕ Показатели.Р03П013.Значение >= РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р03П013.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_03(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 3 больше или равна сумме строк 5 и 6 по гр.3 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение количества дней пособий в связи с профзаболеваниями'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "03");
ПроверитьКС_6_04_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_04(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.4)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.4 Таблицы 3 больше или равна сумме строк 5 и 6 по гр.4 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы пособий в связи с профзаболеваниями'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "04");
ПроверитьКС_6_04_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_04_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03П043" , "П0000300040" + Настройки.Графа);
ИменаПоказателей.Вставить("Р03П053" , "П0000300050" + Настройки.Графа);
ИменаПоказателей.Вставить("Р03П063" , "П0000300060" + Настройки.Графа);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
РасчетнаяСумма = (Показатели.Р03П053.Значение + Показатели.Р03П063.Значение);
Настройки.ЭтоОшибка = НЕ Показатели.Р03П043.Значение >= РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р03П043.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_05(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.5)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.7 Таблицы 3 больше или равна гр.3 стр.8 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение количества дней отпуска санаторно-курортного лечения'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "03");
ПроверитьКС_6_06_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_06(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.6)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.7 Таблицы 3 больше или равна гр.4 стр.8 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы оплаты отпуска санаторно-курортного лечения'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("Графа", "04");
ПроверитьКС_6_06_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_06_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03П073" , "П0000300070" + Настройки.Графа);
ИменаПоказателей.Вставить("Р03П083" , "П0000300080" + Настройки.Графа);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
Настройки.ЭтоОшибка = НЕ Показатели.Р03П073.Значение >= Показатели.Р03П083.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р03П073.Значение,
Показатели.Р03П083.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_07(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.7'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.7)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.10 Таблицы 3 равна сумме строк 1, 4, 7, 9 по гр.4 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы расходов на социальное страхование, всего'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03П104" , "П000030010004");
ИменаПоказателей.Вставить("Р03П014" , "П000030001004");
ИменаПоказателей.Вставить("Р03П044" , "П000030004004");
ИменаПоказателей.Вставить("Р03П074" , "П000030007004");
ИменаПоказателей.Вставить("Р03П093" , "П000030009004");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р03П104.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р03П104.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р03П104.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_08(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.8'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 3 (КС 6.8)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.11 Таблицы 3 меньше или равна гр.4 стр.10 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение суммы невыплаченных пособий'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03П114" , "П000030011004");
ИменаПоказателей.Вставить("Р03П104" , "П000030010004");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
Настройки.ЭтоОшибка = НЕ Показатели.Р03П114.Значение <= Показатели.Р03П104.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р03П114.Значение,
Показатели.Р03П104.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_4
&НаСервере
Процедура ПроверитьКС_7_01(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='7.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 4 (КС 7.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.2 Таблицы 4 меньше или равна гр.3 стр.1 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество пострадавших'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "2003");
Настройки.Вставить("ПостфиксПоказателя2", "1003");
ПроверитьКС_7_03_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_7_02(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='7.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 4 (КС 7.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.4 Таблицы 4 равна сумме строк 1 и 3 по гр.3 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество пострадавших'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П043" , "П000040004003");
ИменаПоказателей.Вставить("Р04П013" , "П000040001003");
ИменаПоказателей.Вставить("Р04П033" , "П000040003003");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р04П043.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р04П043.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р04П043.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_7_03(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='7.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 4 (КС 7.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.5 Таблицы 4 меньше или равна гр.3 стр.4 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество пострадавших'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "5003");
Настройки.Вставить("ПостфиксПоказателя2", "4003");
ПроверитьКС_7_03_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_7_03_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П023" , "П00004000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р04П013" , "П00004000" + Настройки.ПостфиксПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р34);
Настройки.ЭтоОшибка = НЕ Показатели.Р04П023.Значение <= Показатели.Р04П013.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р04П023.Значение,
Показатели.Р04П013.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_5
&НаСервере
Процедура ПроверитьКС_8_01(СтруктураРезультата)
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='8.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 5'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 5 (КС 8.1)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.3 стр.1 Таблицы 5 больше или равна гр.4 стр.1 Таблицы 5'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество рабочих мест'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "103");
Настройки.Вставить("ПостфиксПоказателя2", "104");
ПроверитьКС_8_03_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_8_02(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='8.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 5'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 5 (КС 8.2)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.4 стр.1 Таблицы 5 больше или равна суммы граф 5 и 6 стр.1 Таблицы 5'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество рабочих мест'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р05П014" , "П000050000104");
ИменаПоказателей.Вставить("Р05П015" , "П000050000105");
ИменаПоказателей.Вставить("Р05П016" , "П000050000106");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р05);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р05П014.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р05П014.Значение >= РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р05П014.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_8_03(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='8.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 5'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 5 (КС 8.3)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.7 стр.2 Таблицы 5 больше или равна гр.8 стр.2 Таблицы 5'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество работников'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "207");
Настройки.Вставить("ПостфиксПоказателя2", "208");
ПроверитьКС_8_03_код(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_8_03_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р05П013" , "П000050000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р05П014" , "П000050000" + Настройки.ПостфиксПоказателя2);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р05);
Настройки.ЭтоОшибка = НЕ Показатели.Р05П013.Значение >= Показатели.Р05П014.Значение;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р05П013.Значение,
Показатели.Р05П014.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_8_04(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='8.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 5'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 5 (КС 8.4)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.7 стр.2 Таблицы 5 равна 0, если Численность работников, занятых на вредных работах на '") +
НСтр("ru='Титульном листе равна 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество работников'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р05П027" , "П000050000207");
ИменаПоказателей.Вставить("Р00С003" , "ЧислВред");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р05П027, ДанныеКС.Р05);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С003, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С003.Значение = 0 И НЕ Показатели.Р05П027.Значение = 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р05П027.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_8_05(СтруктураРезультата)
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='8.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 5'"));
Заголовки.Вставить("Условие" , НСтр("ru=''"));
Заголовки.Вставить("Комментарий" , НСтр("ru=''"));
Заголовки.Вставить("ТекстФормулы" , НСтр("ru='Проверка Таблицы 5 (КС 8.5)'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Гр.7 стр.2 Таблицы 5 больше 0, если Численность работников, занятых на вредных работах на '") +
НСтр("ru='Титульном листе больше 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное количество работников'"));
Настройки = ОбработатьНастройки( , Заголовки, СтруктураРезультата);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р05П027" , "П000050000207");
ИменаПоказателей.Вставить("Р00С003" , "ЧислВред");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р05П027, ДанныеКС.Р05);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С003, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С003.Значение > 0 И НЕ Показатели.Р05П027.Значение > 0;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р05П027.Значение);
ДополнитьСтруктуруОшибок(Настройки);
СтруктураРезультата = ОбработатьРезультат(Настройки, СтруктураРезультата);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#Область КС_ФормированиеКонтекста
&НаСервере
Процедура СформироватьСтруктуруДанныхКС()
СформироватьСтруктуруПоказателей();
СтруктураРазделов = Новый Структура;
СтруктураРазделов.Вставить("Р00", "ПолеТабличногоДокументаТитульный");
СтруктураРазделов.Вставить("Р01", "ПолеТабличногоДокументаТаблица1");
СтруктураРазделов.Вставить("Р11", "ПолеТабличногоДокументаТаблица1_1");
СтруктураРазделов.Вставить("Р02", "ПолеТабличногоДокументаТаблица2");
СтруктураРазделов.Вставить("Р34", "ПолеТабличногоДокументаТаблица3_4");
СтруктураРазделов.Вставить("Р05", "ПолеТабличногоДокументаТаблица5");
СтруктураРазделов.Вставить("Р91", "ПолеТабличногоДокументаТаблица91");
Для каждого Раздел Из СтруктураРазделов Цикл
Если мДанныеОтчета.Свойство(Раздел.Значение) Тогда
ДанныеКС.Вставить(Раздел.Ключ, ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(мДанныеОтчета[Раздел.Значение]));
Иначе
ДанныеКС.Вставить(Раздел.Ключ, Новый Структура);
КонецЕсли;
КонецЦикла;
ДанныеКС.Р00.Вставить("ЧислИнвалидов" , СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ДанныеКС.Р00.ЧислИнвалидов));
ДанныеКС.Р00.Вставить("ЧислВред" , СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ДанныеКС.Р00.ЧислВред));
КонецПроцедуры
&НаСервере
Процедура СформироватьСлужебныеДанные()
ПредставлениеРазделов = Новый Структура();
ПредставлениеРазделов.Вставить("Р00", "Титульного листа");
ПредставлениеРазделов.Вставить("Р01", "Таблицы 1");
ПредставлениеРазделов.Вставить("Р11", "Таблицы 1.1");
ПредставлениеРазделов.Вставить("Р02", "Таблицы 2");
ПредставлениеРазделов.Вставить("Р03", "Таблицы 3");
ПредставлениеРазделов.Вставить("Р04", "Таблицы 4");
ПредставлениеРазделов.Вставить("Р05", "Таблицы 5");
ПредставлениеРазделов.Вставить("Р91", "Раздела СКЕ");
ДанныеКС.Вставить("ПредставлениеРазделов", ПредставлениеРазделов);
РазделыПоказателей = Новый Структура();
РазделыПоказателей.Вставить("Р00", "Титульный");
РазделыПоказателей.Вставить("Р01", "Таблица1");
РазделыПоказателей.Вставить("Р11", "Таблица1_1");
РазделыПоказателей.Вставить("Р02", "Таблица2");
РазделыПоказателей.Вставить("Р03", "Таблица3_4");
РазделыПоказателей.Вставить("Р04", "Таблица3_4");
РазделыПоказателей.Вставить("Р05", "Таблица5");
РазделыПоказателей.Вставить("Р91", "Таблица91");
ДанныеКС.Вставить("РазделыПоказателей", РазделыПоказателей);
ПоляИсключений = Новый Соответствие;
ПоляИсключений.Вставить("ОКВЭД" , "Код ОКВЭД");
ПоляИсключений.Вставить("ЧислИнвалидов" , "Число работающих инвалидов");
ПоляИсключений.Вставить("ЧислВред" , "Число занятых на вредных работах");
ПоляИсключений.Вставить("П000010000001" , "Признак ""Частичное финансирование из бюджета""");
ПоляИсключений.Вставить("П000020001103" , "Графа 3 Строка 1.1");
ПоляИсключений.Вставить("П000020014103" , "Графа 3 Строка 14.1");
ПоляИсключений.Вставить("П000020002201" , "Графа 1 Строка 2 ""2 месяц""");
ПоляИсключений.Вставить("П000020002301" , "Графа 1 Строка 2 ""3 месяц""");
ДанныеКС.Вставить("ПоляИсключений", ПоляИсключений);
МногостраничныеРазделы = Новый Массив;
ДанныеКС.Вставить("МногостраничныеРазделы", МногостраничныеРазделы);
ДанныеКС.Вставить("ГодОтчета" , Год(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета));
ДанныеКС.Вставить("МесОтчета" , Месяц(СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета));
ДанныеКС.Вставить("КвОтчета" , ?(ДанныеКС.МесОтчета % 3 = 0, ДанныеКС.МесОтчета / 3, 0));
ДанныеКС.Вставить("Льгота60" , ЗначениеЗаполнено(ДанныеКС.Р01.П000010000002));
ДанныеКС.Вставить("ЧастичноеФин", ЗначениеЗаполнено(ДанныеКС.Р01.П000010000001));
ДанныеКС.Вставить("Р11_Заполнен", ТаблицаЗаполнена(ДанныеКС.Р11));
ДанныеКС.Вставить("СКЕ_Заполнен", ТаблицаЗаполнена(ДанныеКС.Р91));
ДанныеКС.Вставить("СКЕ_Нет" , ДанныеКС.Р91.Количество() = 0);
ДанныеКС.Вставить("КолСтрок11" , КоличествоСтрок(ДанныеКС.Р11, "П000110000101_"));
ДанныеКС.Вставить("КолСтрок91" , КоличествоСтрок(ДанныеКС.Р91, "П000910000101_"));
КонецПроцедуры
&НаСервере
Процедура СформироватьДанныеПРП()
ДанныеКС.Вставить("П01");
ДанныеКС.Вставить("П02");
ДанныеКС.Вставить("ОтчетПРП");
Если ДанныеКС.КвОтчета = 0 Тогда
Возврат;
КонецЕсли;
Если ДанныеКС.КвОтчета = 1 Тогда
ГодОтчета = ДанныеКС.ГодОтчета - 1;
МесОтчета = 12;
Иначе
ГодОтчета = ДанныеКС.ГодОтчета;
МесОтчета = ДанныеКС.МесОтчета - 3;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Организация" , СтруктураРеквизитовФормы.Организация);
Запрос.УстановитьПараметр("ГодОтчета" , ГодОтчета);
Запрос.УстановитьПараметр("МесяцОтчета" , МесОтчета);
Запрос.УстановитьПараметр("КПП" , ДанныеКС.Р00.КПП);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДокументРО.Вид КАК Вид,
| ДокументРО.Ссылка КАК Ссылка,
| ДокументРО.КПП КАК КПП,
| ДокументРО.КПП = &КПП КАК Приоритет
|ИЗ
| Документ.РегламентированныйОтчет КАК ДокументРО
|ГДЕ
| ДокументРО.ИсточникОтчета = ""РегламентированныйОтчет4ФСС""
| И ДокументРО.Организация = &Организация
| И ГОД(ДокументРО.ДатаОкончания) = &ГодОтчета
| И ГОД(ДокументРО.ДатаОкончания) >= 2017
| И ВЫРАЗИТЬ(ДокументРО.ВыбраннаяФорма КАК Строка (99)) = ""ФормаОтчета2017Кв3""
| И МЕСЯЦ(ДокументРО.ДатаОкончания) = &МесяцОтчета
| И НЕ ДокументРО.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Приоритет УБЫВ,
| Вид УБЫВ";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ДанныеКС.Вставить("ОтчетПРП", Выборка.Ссылка);
ПоказателиОтчета = Выборка.Ссылка.ДанныеОтчета.Получить().ПоказателиОтчета;
СтруктураРазделов = Новый Структура;
СтруктураРазделов.Вставить("П01", "ПолеТабличногоДокументаТаблица1");
СтруктураРазделов.Вставить("П02", "ПолеТабличногоДокументаТаблица2");
Для Каждого Раздел Из СтруктураРазделов Цикл
ДанныеКС.Вставить(Раздел.Ключ,
ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ПоказателиОтчета[Раздел.Значение]));
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область КС_Сервис2019
&НаСервере
Процедура СформироватьПоказатели(Показатели, ИменаПоказателей)
Показатели = ?(Показатели = Неопределено, Новый Структура, Показатели);
Для каждого Элемент Из ИменаПоказателей Цикл
Показатели.Вставить(Элемент.Ключ, Новый Структура());
МассивПредставления = Новый Массив;
ПодстрокаРаздела = "";
ПодстрокаСтраницы = "";
ИндексРаздела = Сред(Элемент.Ключ, 1, 3);
ИндексДополнения = Сред(Элемент.Ключ, 4, 1);
ПодстрокаДополнения = Сред(Элемент.Ключ, 8, 1);
ПодстрокаСтроки = УдалитьЛидНули(Сред(Элемент.Значение, ?(ИндексРаздела = "Р01"
ИЛИ ИндексРаздела = "Р05", 10, 9), 2));
ПодстрокаГрафы = УдалитьЛидНули(Сред(Элемент.Значение, 12,2));
ДанныеКС.ПредставлениеРазделов.Свойство(ИндексРаздела , ПодстрокаРаздела);
ДанныеКС.РазделыПоказателей.Свойство(ИндексРаздела , ПодстрокаСтраницы);
ПолеИсключения = ДанныеКС.ПоляИсключений.Получить(Элемент.Значение);
Если НЕ ПолеИсключения = Неопределено Тогда
МассивПредставления.Добавить(ПолеИсключения);
Иначе
Если ИндексДополнения = "С" Тогда
МассивПредставления.Добавить("Строка " + ПодстрокаСтроки);
ИначеЕсли ИндексДополнения = "Г" Тогда
МассивПредставления.Добавить("Графа " + ПодстрокаГрафы);
Иначе
МассивПредставления.Добавить("Графа " + ПодстрокаГрафы);
МассивПредставления.Добавить("Строка " + ПодстрокаСтроки);
КонецЕсли;
КонецЕсли;
МассивПредставления.Добавить(ПодстрокаРаздела);
Если ПодстрокаДополнения = "О" Тогда
МассивПредставления.Добавить("предыдущего отчетного периода");
ИначеЕсли ПодстрокаДополнения = "Р" Тогда
МассивПредставления.Добавить("предыдущего расчетного периода");
КонецЕсли;
Представление = СтрСоединить(МассивПредставления, " ");
Многострочный = СтрДлина(Элемент.Значение) = 14;
Многостраничный = НЕ ДанныеКС.МногостраничныеРазделы.Найти(ИндексРаздела) = Неопределено;
Округление = Ложь;
Показатели[Элемент.Ключ].Вставить("Раздел" , ИндексРаздела);
Показатели[Элемент.Ключ].Вставить("ИмяПоказателя" , Элемент.Значение);
Показатели[Элемент.Ключ].Вставить("Представление" , Представление);
Показатели[Элемент.Ключ].Вставить("ИмяСтраницы" , ПодстрокаСтраницы);
Показатели[Элемент.Ключ].Вставить("Отчет" ,
?(ЗначениеЗаполнено(ПодстрокаДополнения), ДанныеКС.ОтчетПРП, Неопределено));
Показатели[Элемент.Ключ].Вставить("Страница" , "");
Показатели[Элемент.Ключ].Вставить("Значение");
Показатели[Элемент.Ключ].Вставить("ЗначениеСтр" , "");
Показатели[Элемент.Ключ].Вставить("Итог" , 0);
Показатели[Элемент.Ключ].Вставить("МассивСтрок" , Новый Массив);
Показатели[Элемент.Ключ].Вставить("Многостраничный" , Многостраничный);
Показатели[Элемент.Ключ].Вставить("Многострочный" , Многострочный);
Показатели[Элемент.Ключ].Вставить("Округление" , Округление);
Показатели[Элемент.Ключ].Вставить("Синоним" , Элемент.Ключ);
Показатели[Элемент.Ключ].Вставить("Дополнение" , "");
Показатели[Элемент.Ключ].Вставить("Расшифровывать" , Истина);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура РасшифроватьПоказатель(Показатель)
НоваяСтрока = СписокРасшифровкиПоказателей.Добавить();
НоваяСтрока.Номер = СчетчикФормулДляРасшифровок;
НоваяСтрока.ИмяПоказателя = Показатель.ИмяПоказателя;
НоваяСтрока.ПредставлениеПоказателя = ?(ЗначениеЗаполнено(Показатель.Дополнение),
Показатель.Представление + ", (" + Показатель.Дополнение + ")", Показатель.Представление);
НоваяСтрока.ИмяСтраницы = Показатель.ИмяСтраницы;
НоваяСтрока.СсылкаНаДокументРО = ?(ЗначениеЗаполнено(Показатель.Отчет),
Показатель.Отчет, СтруктураРеквизитовФормы.мСохраненныйДок);
НоваяСтрока.СсылкаНаДокументРО = ?(Лев(Показатель.ИмяПоказателя, 7) = Лев(Показатель.Синоним, 7),
Неопределено, НоваяСтрока.СсылкаНаДокументРО);
НоваяСтрока.Страница = Показатель.Страница;
Если ТипЗнч(Показатель.Значение) = Тип("Число") Тогда
НоваяСтрока.ЗначениеПоказателя = Показатель.Значение;
Иначе
НоваяСтрока.ЗначениеПоказателя = Показатель.ЗначениеСтр;
КонецЕсли;
Показатель.Дополнение = "";
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПоказатель(Показатель, Источник, НомерСтроки = Неопределено)
Перем ЗначениеВИсточнике;
Если ЗначениеЗаполнено(НомерСтроки) И Сред(Показатель.ИмяПоказателя, 14, 1) = "_" Тогда
Показатель.ИмяПоказателя = Лев(Показатель.ИмяПоказателя, 14) + XMLСтрока(НомерСтроки);
КонецЕсли;
Если Источник.Свойство(Показатель.ИмяПоказателя, ЗначениеВИсточнике) Тогда
Показатель.Страница = ?(Источник.Свойство("Страница"), Источник.Страница, 1);
Если ТипЗнч(ЗначениеВИсточнике) = Тип("Число") И Показатель.Округление Тогда
Показатель.Значение =Окр(ЗначениеВИсточнике, 2);
Показатель.Итог = Показатель.Итог + Показатель.Значение;
ИначеЕсли ТипЗнч(ЗначениеВИсточнике) = Тип("Число") Тогда
Показатель.Значение = ЗначениеВИсточнике;
Показатель.Итог = Показатель.Итог + ЗначениеВИсточнике;
ИначеЕсли ТипЗнч(ЗначениеВИсточнике) = Тип("Строка") Тогда
Показатель.Значение = СокрЛП(ЗначениеВИсточнике);
Показатель.ЗначениеСтр = ?(ЗначениеЗаполнено(ЗначениеВИсточнике), Показатель.Значение, "(...)");
Показатель.МассивСтрок.Добавить(Показатель.Значение);
ИначеЕсли ТипЗнч(ЗначениеВИсточнике) = Тип("Дата") Тогда
Показатель.Значение = ЗначениеВИсточнике;
Показатель.ЗначениеСтр = Формат(ЗначениеВИсточнике, "ДФ=dd.MM.yy; ДП=(...)");
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИРасшифроватьПоказатель(Показатель, Источник, НомерСтроки = Неопределено)
ЗаполнитьПоказатель(Показатель, Источник, НомерСтроки);
Если Показатель.Расшифровывать Тогда
РасшифроватьПоказатель(Показатель);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьИРасшифроватьПоказатели(Показатели, Источник, НомерСтроки = Неопределено)
Для каждого Элемент Из Показатели Цикл
ЗаполнитьИРасшифроватьПоказатель(Элемент.Значение, Источник, НомерСтроки);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗарегистрироватьФормулу(Знач Настройки);
СчетчикФормулДляРасшифровок = СчетчикФормулДляРасшифровок + 1;
НовСтр = СписокРасшифровкиФормулы.Добавить();
НовСтр.ТекстовоеПредставлениеФормулы = Настройки.ОписаниеКС;
НовСтр.Номер = СчетчикФормулДляРасшифровок;
КонецПроцедуры
&НаСервере
Процедура ДополнитьСтруктуруОшибок(Настройки)
Если Настройки.ЭтоОшибка Тогда
Настройки.КоличествоНайденныхОшибок = Настройки.КоличествоНайденныхОшибок + 1;
Иначе
Настройки.КоличествоНайденныхБезОшибок = Настройки.КоличествоНайденныхБезОшибок + 1;
КонецЕсли;
Счетчик = XMLСтрока(Настройки.КоличествоНайденныхОшибок + Настройки.КоличествоНайденныхБезОшибок);
ОписаниеКС = СформироватьОписаниеКС(Настройки, "ДопСведенияВОписаниеКС");
ОписаниеКС = ?(ПустаяСтрока(Настройки.ТекстФормулы), "", Настройки.ТекстФормулы + Символы.ПС) + ОписаниеКС;
Настройки.СтруктураОшибок.Вставить("ТекстовоеПредставлениеФормулы" + Счетчик, ОписаниеКС);
Настройки.СтруктураОшибок.Вставить("Расшифровка" + Счетчик, Настройки.Расшифровка);
Настройки.СтруктураОшибок.Вставить("ЭтоОшибка" + Счетчик, Настройки.ЭтоОшибка);
Настройки.СтруктураОшибок.Вставить("Нарушение" + Счетчик, Настройки.Нарушение);
Настройки.СтруктураОшибок.Вставить("Описание" + Счетчик, Настройки.ОписаниеОшибки);
Настройки.СтруктураОшибок.Вставить("Комментарий" + Счетчик, Настройки.Комментарий);
КонецПроцедуры
&НаСервере
Функция СформироватьОписаниеКС(Знач Настройки, ЗначениеСвойства)
Если Настройки[ЗначениеСвойства] Тогда
Если ЗначениеЗаполнено(Настройки.ДопСведения) Тогда
Возврат Настройки.ОписаниеКС + " (" + Настройки.ДопСведения + ")";
КонецЕсли;
КонецЕсли;
Возврат Настройки.ОписаниеКС;
КонецФункции
&НаСервере
Функция ОбработатьНастройки(Знач Настройки = Неопределено,
Знач ИзменяемыеСвойства = Неопределено,
Знач СтруктураРезультата = Неопределено)
Если Настройки = Неопределено Тогда
Настройки = Новый Структура;
Настройки.Вставить("ТекстФормулы" , (НСтр("ru=''")));
Настройки.Вставить("Нарушение" , (НСтр("ru=''")));
Настройки.Вставить("ОписаниеКС" , (НСтр("ru=''")));
Настройки.Вставить("ОписаниеОшибки" , (НСтр("ru=''")));
Настройки.Вставить("ОписаниеОшибок" , Новый Массив);
Настройки.Вставить("Расшифровка" , (НСтр("ru=''")));
Настройки.Вставить("ШаблонРасшифровки" , (НСтр("ru=''")));
Настройки.Вставить("ДопСведения" , (НСтр("ru=''")));
Настройки.Вставить("ШаблонДопСведений" , (НСтр("ru=''")));
Настройки.Вставить("Комментарий" , (НСтр("ru=''")));
Настройки.Вставить("ДопСведенияПараметры" , Новый Структура);
Настройки.Вставить("ЭтоОшибка" , Ложь);
Настройки.Вставить("СтруктураОшибок");
Настройки.Вставить("КоличествоНайденныхОшибок");
Настройки.Вставить("КоличествоНайденныхБезОшибок");
Настройки.Вставить("ДопСведенияВОписаниеКС");
Настройки.Вставить("ДопСведенияВЗаголовокРасшифровки");
Настройки.Вставить("ДопСведенияВСтрокуРасшифровки");
Настройки.Вставить("ПредставлениеПоказателя", "");
Настройки.Вставить("РасшифровкаСписка" , "");
Если Документирование Тогда
Настройки.Вставить("НомерКС");
Настройки.Вставить("Раздел");
Настройки.Вставить("Условие");
КонецЕсли;
КонецЕсли;
Если Не ИзменяемыеСвойства = Неопределено Тогда
Для каждого ЭлементКоллекции Из ИзменяемыеСвойства Цикл
Если Настройки.Свойство(ЭлементКоллекции.Ключ) Тогда
Настройки.Вставить(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если Документирование Тогда
СтрокаОписания = ТаблицаОписаний.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОписания, Настройки);
СтрокаОписания.ОписаниеКС = ?(ПустаяСтрока(Настройки.ТекстФормулы), "", Настройки.ТекстФормулы + Символы.ПС)
+ Настройки.ОписаниеКС;
Возврат Настройки;
КонецЕсли;
Если Не СтруктураРезультата = Неопределено Тогда
Для каждого ЭлементКоллекции Из СтруктураРезультата Цикл
Если Настройки.Свойство(ЭлементКоллекции.Ключ) Тогда
Настройки.Вставить(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Возврат Настройки;
КонецФункции
&НаСервере
Функция ОбработатьРезультат(Знач Настройки, Знач СтруктураРезультата);
ЗаполнитьЗначенияСвойств(СтруктураРезультата, Настройки,
"КоличествоНайденныхОшибок, КоличествоНайденныхБезОшибок");
Возврат СтруктураРезультата;
КонецФункции
&НаСервере
Функция КоличествоСтрок(Источник, ИмяПоказателя)
Количество = 0;
ИмяПоказателя = Лев(ИмяПоказателя, 14);
Пока Источник.Свойство(ИмяПоказателя + XMLСтрока(Количество + 1)) Цикл
Количество = Количество + 1;
КонецЦикла;
Возврат Количество;
КонецФункции
&НаСервере
Функция СуммаПоказателей(Показатели, КодПоказателя = "")
Результат = 0;
Для каждого Показатель Из Показатели Цикл
Если НЕ ЗначениеЗаполнено(КодПоказателя) Тогда
Результат = Результат + Показатель.Значение.Значение;
ИначеЕсли СтрНайти(Показатель.Ключ, КодПоказателя) = 0 Тогда
Продолжить;
Иначе
Результат = Результат + Показатель.Значение.Значение;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере
Функция ЗначениеСтр(ВхСтрока)
Если НЕ ТипЗнч(ВхСтрока) = Тип("Строка") Тогда
Возврат ВхСтрока;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ВхСтрока) Тогда
Возврат "(...)";
Иначе
Возврат СокрЛП(ВхСтрока);
КонецЕсли;
КонецФункции
&НаСервере
Функция УдалитьЛидНули(Знач ВхСтрока)
Если НЕ ТипЗнч(ВхСтрока) = Тип("Строка") Тогда
Возврат ВхСтрока;
КонецЕсли;
Пока Истина Цикл
Если СтрНачинаетсяС(ВхСтрока, "0") И СтрДлина(ВхСтрока) > 1 Тогда
ВхСтрока = Сред(ВхСтрока, 2);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ВхСтрока;
КонецФункции
&НаСервере
Функция ТаблицаЗаполнена(Таблица)
Для каждого Элемент Из Таблица Цикл
Если ЗначениеЗаполнено(Элемент.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецФункции
&НаСервере
Процедура ПоместитьВКэш(ПомещаемыеДанные, ИдентификаторСеанса, АдресДанных) Экспорт
Если ЗначениеЗаполнено(АдресДанных) Тогда
УдалитьИзВременногоХранилища(АдресДанных);
КонецЕсли;
АдресДанных = ПоместитьВоВременноеХранилище(ПомещаемыеДанные, ИдентификаторСеанса);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
&НаКлиентеНаСервереБезКонтекста
Функция ИмяОтчета(ЭтаФормаИмя)
Форма_Имя = СтрЗаменить(ЭтаФормаИмя, "Внешний", "");
Возврат Сред(Лев(Форма_Имя, СтрНайти(Форма_Имя, ".Форма.") - 1), 7);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ИмяФормыОтчета(ЭтаФормаИмя)
Возврат Сред(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") + 7);
КонецФункции
#Область ОбработчикиСобытийФормы
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
РегламентированнаяОтчетностьКлиент.ВыполнитьЗадачу(
ЭтотОбъект,
Команда,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
#КонецОбласти
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийСледующемуНачалоВыбора(
ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если РегламентированнаяОтчетностьКлиент.ЭтоСобытиеЗавершениеОтправки(ИмяСобытия) Тогда
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьИнформационнуюПанельБРО()
ПараметрыОтображения = ЭлектронныйДокументооборотСФСС.ПараметрыИнформационнойПанелиБРО();
ПараметрыОтображения.Организация = СтруктураРеквизитовФормы.Организация;
ПараметрыОтображения.Группа = Элементы.ИнформационнаяПанельБРО;
ПараметрыОтображения.Форма = ЭтотОбъект;
ЭлектронныйДокументооборотСФСС.ОбновитьИнформационнуюПанельБРО(ПараметрыОтображения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнформационнаяПанельБРООбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ЭлектронныйДокументооборотСФССКлиент.ИнформационнаяПанельБРОНажатие(
ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка);
КонецПроцедуры
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Записать(ПараметрыЗаписи) Экспорт
СохранитьНаКлиенте();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
РегламентированнаяОтчетность.ВыполнитьЗадачу(ЭтотОбъект, Контекст, СтруктураРеквизитовФормы.мСохраненныйДок);
КонецПроцедуры
&НаСервере
Процедура УправлениеДоступностьюРеквизитов(БлокируемыеЭлементы, ТолькоПросмотр) Экспорт
РегламентированнаяОтчетность.УправлениеДоступностьюРеквизитов(ЭтотОбъект, БлокируемыеЭлементы, ТолькоПросмотр);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ИнициализироватьВыводСтатусовИВажныхСообщений_85()
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.УстановитьРазмещениеНаименованияЭтапаБРО_85(ЭтотОбъект);
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере() Экспорт
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДетальноеОписаниеСтатусаПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат = "ОбновитьОтправку" Тогда
ОбновитьОтправку(Неопределено);
ИначеЕсли Результат = "ГиперссылкаПротокол" Тогда
ГиперссылкаПротоколНажатие(Неопределено);
ИначеЕсли Результат = "ЭтапыОтправки" Тогда
ЭтапыОтправкиНажатие(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВывестиСтатусыИВыжныеСообщенияНаФорму() Экспорт
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНажатияКнопкиВВажномСообщении(Команда)
Если Команда.Имя = "ОтправитьНеотправленноеИзвещение" Тогда
ОтправитьНеотправленноеИзвещение(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиВВажномСообщении(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НРег(НавигационнаяСсылкаФорматированнойСтроки) = "критическиеошибки" Тогда
КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаЗакрытияВажногоСообщения(Команда)
МодульКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСервер");
МодульКлиентСервер.ЗакрытьВажноеСообщение(ЭтотОбъект, Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьДействиеИнформационногоСообщения(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
МодульОбщегоНазначенияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент");
МодульОбщегоНазначенияКлиент.ОбработатьДействиеИнформационногоСообщения(ЭтотОбъект, ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти