&НаСервере
Перем мОбъектОтчета;
#Область ПеременныеКС
&НаКлиенте
Перем ОбработкаКС Экспорт;
&НаСервере
Перем СписокРасшифровкиПоказателей;
&НаСервере
Перем СписокРасшифровкиформулы;
&НаСервере
Перем ДанныеКС;
&НаСервере
Перем Документирование;
&НаСервере
Перем ТаблицаОписаний;
#КонецОбласти
#Область МеханизмПроверкиКонтрольныхСоотношений
#Область КС_Управление
&НаКлиенте
Процедура Проверить(Команда)
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС);
КонецПроцедуры
&НаСервере
Функция ПроверитьКонтрольныеСоотношенияВОтчете() Экспорт
Документирование = Ложь;
СтруктураРеквизитовФормы.ТекстДляЗаголовочнойЧасти =
РегламентированнаяОтчетностьКлиентСервер.ПредставлениеДокументаРеглОтч(СтруктураРеквизитовФормы.мСохраненныйДок);
СписокРасшифровкиПоказателей = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиПоказателей();
СписокРасшифровкиформулы = РегламентированнаяОтчетность.СоздатьСписокРасшифровкиформулы();
СчетчикФормулДляРасшифровок = 0;
ДанныеКС = Новый Структура;
ДанныеКС.Вставить("КолОшибок" , 0);
ДанныеКС.Вставить("КолНеОшибок" , 0);
ДанныеКС.Вставить("Результат" , Новый Структура);
ДанныеКС.Вставить("ДопИнфо" , Истина);
ДанныеКС.Вставить("Отчет" , СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка);
ДанныеКС.Вставить("ГодОтчета" , Год(ДанныеКС.Отчет.ДатаОкончания));
ДанныеКС.Вставить("МесОтчета" , Месяц(ДанныеКС.Отчет.ДатаОкончания));
ДанныеКС.Вставить("ДатаОтчета" , ДанныеКС.Отчет.ДатаОкончания);
СформироватьДанныеОтчета(ДанныеКС.Отчет);
СформироватьСлужебныеДанные();
СформироватьДанныеПРП();
ПроверитьКС_1_01_1();
ПроверитьКС_1_01_2();
ПроверитьКС_1_02();
ПроверитьКС_1_03();
ПроверитьКС_1_04();
ПроверитьКС_2_01();
ПроверитьКС_2_02_1();
ПроверитьКС_2_02_2();
ПроверитьКС_2_02_3();
ПроверитьКС_2_03();
ПроверитьКС_2_04();
ПроверитьКС_2_05();
ПроверитьКС_2_06();
ПроверитьКС_2_07_1();
ПроверитьКС_2_07_2();
ПроверитьКС_2_07_3();
ПроверитьКС_2_08();
ПроверитьКС_2_09_1();
ПроверитьКС_2_09_2();
ПроверитьКС_2_09_3();
ПроверитьКС_2_10();
ПроверитьКС_2_11();
ПроверитьКС_2_12();
ПроверитьКС_2_13();
ПроверитьКС_2_14();
ПроверитьКС_2_15();
ПроверитьКС_2_16();
ПроверитьКС_2_17();
ПроверитьКС_2_18();
ПроверитьКС_2_19_1();
ПроверитьКС_2_19_2();
ПроверитьКС_2_19_3();
ПроверитьКС_2_20();
ПроверитьКС_2_21();
ПроверитьКС_2_22();
ПроверитьКС_2_23();
ПроверитьКС_2_24();
ПроверитьКС_2_25();
ПроверитьКС_2_26();
ПроверитьКС_2_27();
ПроверитьКС_2_28();
ПроверитьКС_2_29();
ПроверитьКС_2_30();
ПроверитьКС_2_31();
ПроверитьКС_2_32();
ПроверитьКС_2_33();
ПроверитьКС_2_34();
ПроверитьКС_2_35();
ПроверитьКС_2_36_1();
ПроверитьКС_2_36_2();
ПроверитьКС_2_36_3();
ПроверитьКС_2_37();
ПроверитьКС_3_01();
ПроверитьКС_3_02();
ПроверитьКС_3_04();
ПроверитьКС_3_05();
ПроверитьКС_3_06();
ПроверитьКС_3_13();
ПроверитьКС_3_14();
ПроверитьКС_3_15();
ПроверитьКС_3_16();
ПроверитьКС_3_17();
ПроверитьКС_3_19();
ПроверитьКС_3_20();
ПроверитьКС_3_22();
ПроверитьКС_3_23();
ПроверитьКС_3_24();
ПроверитьКС_3_25();
ПроверитьКС_3_26();
ПроверитьКС_3_27();
ПроверитьКС_3_28();
ПроверитьКС_3_29();
ПроверитьКС_3_30();
ПроверитьКС_3_31();
ПроверитьКС_3_32();
ПроверитьКС_3_33();
ПроверитьКС_3_46();
ПроверитьКС_3_47();
ПроверитьКС_3_49();
ПроверитьКС_3_50();
ПроверитьКС_3_51();
ПроверитьКС_3_52();
ПроверитьКС_3_53();
ПроверитьКС_3_54();
ПроверитьКС_4_01();
ПроверитьКС_4_02();
ПроверитьКС_4_03();
ПроверитьКС_4_04();
ПроверитьКС_4_05();
ПроверитьКС_4_06();
ПроверитьКС_4_07();
ПроверитьКС_4_08();
ПроверитьКС_4_11();
ПроверитьКС_5_01();
ПроверитьКС_5_02();
ПроверитьКС_5_03();
ПроверитьКС_6_01();
ПроверитьКС_6_02();
ПроверитьКС_6_03();
ПроверитьКС_6_04();
РегламентированнаяОтчетность.ПоместитьВКэш(СписокРасшифровкиформулы , УникальныйИдентификатор,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресФормул);
РегламентированнаяОтчетность.ПоместитьВКэш(СписокРасшифровкиПоказателей, УникальныйИдентификатор,
СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресПоказателей);
Возврат ОбработатьРезультат();
КонецФункции
#КонецОбласти
#Область КС_Документирование
&НаКлиенте
Функция ВыполнитьДокументирование() Экспорт
Возврат ВыполнитьДокументированиеНаСервере();
КонецФункции
&НаСервере
Функция ВыполнитьДокументированиеНаСервере()
Документирование = Истина;
СтруктураРезультата = Новый Структура;
СтруктураРезультата.Вставить("НаименованиеОтчета" , "4-ФСС");
СтруктураРезультата.Вставить("НаименованиеФормы" , "2022Кв2");
ТаблицаОписаний = СформироватьТаблицуОписаний();
ДанныеКС = Новый Структура;
ПроверитьКС_1_01_1();
ПроверитьКС_1_01_2();
ПроверитьКС_1_02();
ПроверитьКС_1_03();
ПроверитьКС_1_04();
ПроверитьКС_2_01();
ПроверитьКС_2_02_1();
ПроверитьКС_2_02_2();
ПроверитьКС_2_02_3();
ПроверитьКС_2_03();
ПроверитьКС_2_04();
ПроверитьКС_2_05();
ПроверитьКС_2_06();
ПроверитьКС_2_07_1();
ПроверитьКС_2_07_2();
ПроверитьКС_2_07_3();
ПроверитьКС_2_08();
ПроверитьКС_2_09_1();
ПроверитьКС_2_09_2();
ПроверитьКС_2_09_3();
ПроверитьКС_2_10();
ПроверитьКС_2_11();
ПроверитьКС_2_12();
ПроверитьКС_2_13();
ПроверитьКС_2_14();
ПроверитьКС_2_15();
ПроверитьКС_2_16();
ПроверитьКС_2_17();
ПроверитьКС_2_18();
ПроверитьКС_2_19_1();
ПроверитьКС_2_19_2();
ПроверитьКС_2_19_3();
ПроверитьКС_2_20();
ПроверитьКС_2_21();
ПроверитьКС_2_22();
ПроверитьКС_2_23();
ПроверитьКС_2_24();
ПроверитьКС_2_25();
ПроверитьКС_2_26();
ПроверитьКС_2_27();
ПроверитьКС_2_28();
ПроверитьКС_2_29();
ПроверитьКС_2_30();
ПроверитьКС_2_31();
ПроверитьКС_2_32();
ПроверитьКС_2_33();
ПроверитьКС_2_34();
ПроверитьКС_2_35();
ПроверитьКС_2_36_1();
ПроверитьКС_2_36_2();
ПроверитьКС_2_36_3();
ПроверитьКС_2_37();
ПроверитьКС_3_01();
ПроверитьКС_3_02();
ПроверитьКС_3_04();
ПроверитьКС_3_05();
ПроверитьКС_3_06();
ПроверитьКС_3_13();
ПроверитьКС_3_14();
ПроверитьКС_3_15();
ПроверитьКС_3_16();
ПроверитьКС_3_17();
ПроверитьКС_3_19();
ПроверитьКС_3_20();
ПроверитьКС_3_22();
ПроверитьКС_3_23();
ПроверитьКС_3_24();
ПроверитьКС_3_25();
ПроверитьКС_3_26();
ПроверитьКС_3_27();
ПроверитьКС_3_28();
ПроверитьКС_3_29();
ПроверитьКС_3_30();
ПроверитьКС_3_31();
ПроверитьКС_3_32();
ПроверитьКС_3_33();
ПроверитьКС_3_46();
ПроверитьКС_3_47();
ПроверитьКС_3_49();
ПроверитьКС_3_50();
ПроверитьКС_3_51();
ПроверитьКС_3_52();
ПроверитьКС_3_53();
ПроверитьКС_3_54();
ПроверитьКС_4_01();
ПроверитьКС_4_02();
ПроверитьКС_4_03();
ПроверитьКС_4_04();
ПроверитьКС_4_05();
ПроверитьКС_4_06();
ПроверитьКС_4_07();
ПроверитьКС_4_08();
ПроверитьКС_4_11();
ПроверитьКС_5_01();
ПроверитьКС_5_02();
ПроверитьКС_5_03();
ПроверитьКС_6_01();
ПроверитьКС_6_02();
ПроверитьКС_6_03();
ПроверитьКС_6_04();
АдресТаблицыОписаний = ПоместитьВоВременноеХранилище(ТаблицаОписаний, Новый УникальныйИдентификатор);
СтруктураРезультата.Вставить("АдресТаблицыОписаний", АдресТаблицыОписаний);
Возврат СтруктураРезультата;
КонецФункции
&НаСервере
Функция СформироватьТаблицуОписаний()
ТипСтрока20 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(20));
ТипСтрока100 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(100));
ТипСтрока900 = Новый ОписаниеТипов("Строка",, Новый КвалификаторыСтроки(900));
ТипБулево = Новый ОписаниеТипов("Булево");
ТаблицаОписаний = Новый ТаблицаЗначений;
ТаблицаОписаний.Колонки.Добавить("НомерКС" , ТипСтрока20);
ТаблицаОписаний.Колонки.Добавить("Раздел" , ТипСтрока100);
ТаблицаОписаний.Колонки.Добавить("ОписаниеКС" , ТипСтрока900);
ТаблицаОписаний.Колонки.Добавить("Нарушение" , ТипСтрока100);
ТаблицаОписаний.Колонки.Добавить("ОписаниеОшибки" , ТипСтрока900);
ТаблицаОписаний.Колонки.Добавить("Условие" , ТипСтрока900);
ТаблицаОписаний.Колонки.Добавить("Комментарий" , ТипСтрока900);
Возврат ТаблицаОписаний;
КонецФункции
#КонецОбласти
#Область КС_Данные
&НаСервере
Процедура СформироватьДанныеОтчета(ОтчетСсылка)
МассивПолейИсключений = Новый Массив;
МассивПолейИсключений.Добавить("Страница");
ДанныеКС.Вставить("МассивПолейИсключений", МассивПолейИсключений);
СформироватьСтруктуруПоказателей();
СтруктураРазделов = Новый Структура;
СтруктураРазделов.Вставить("Р00", "ПолеТабличногоДокументаТитульный");
СтруктураРазделов.Вставить("Р01", "ПолеТабличногоДокументаТаблица1");
СтруктураРазделов.Вставить("Р11", "ПолеТабличногоДокументаТаблица1_1");
СтруктураРазделов.Вставить("Р02", "ПолеТабличногоДокументаТаблица2");
СтруктураРазделов.Вставить("Р03", "ПолеТабличногоДокументаТаблица3");
СтруктураРазделов.Вставить("Р04", "ПолеТабличногоДокументаТаблица4");
Для каждого Раздел Из СтруктураРазделов Цикл
Если мДанныеОтчета.Свойство(Раздел.Значение) Тогда
ДанныеКС.Вставить(Раздел.Ключ, ОбщегоНазначения.СкопироватьРекурсивно(мДанныеОтчета[Раздел.Значение]));
Иначе
ДанныеКС.Вставить(Раздел.Ключ, Новый Структура);
КонецЕсли;
КонецЦикла;
ДанныеКС.Р00.Вставить("ЧислФизЛицВыпл" , СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ДанныеКС.Р00.ЧислФизЛицВыпл));
ДанныеКС.Р00.Вставить("ЧислИнвалидов" , СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ДанныеКС.Р00.ЧислИнвалидов));
ДанныеКС.Р00.Вставить("ЧислВред" , СтроковыеФункцииКлиентСервер.СтрокаВЧисло(ДанныеКС.Р00.ЧислВред));
ДанныеКС.Вставить("Таблица01Заполнена" , ТаблицаЗаполнена(ДанныеКС.Р01));
ДанныеКС.Вставить("Таблица11Заполнена" , ТаблицаЗаполнена(ДанныеКС.Р11, "П000110000101"));
ДанныеКС.Вставить("Таблица02Заполнена" , ТаблицаЗаполнена(ДанныеКС.Р02, "П000020000101"));
ДанныеКС.Вставить("КвОтчета" , ?(ДанныеКС.МесОтчета % 3 = 0, ДанныеКС.МесОтчета / 3, 0));
ДанныеКС.Вставить("ЧастичноеФин" , ЗначениеЗаполнено(ДанныеКС.Р01.П000010000001));
ДанныеКС.Вставить("Льгота60" , ЗначениеЗаполнено(ДанныеКС.Р01.П000010000002));
ДанныеКС.Вставить("КолСтрокР11" , КоличествоСтрок(ДанныеКС.Р11, "П000110000101_"));
ДанныеКС.Вставить("КолСтрокР02" , КоличествоСтрок(ДанныеКС.Р02, "П000020000101_"));
КонецПроцедуры
&НаСервере
Процедура СформироватьСлужебныеДанные()
ПредставлениеРазделов = Новый Структура();
ПредставлениеРазделов.Вставить("Р00", "Титульного листа");
ПредставлениеРазделов.Вставить("Р01", "Таблицы 1");
ПредставлениеРазделов.Вставить("Р11", "Таблицы 1.1");
ПредставлениеРазделов.Вставить("Р02", "Таблицы 2");
ПредставлениеРазделов.Вставить("Р03", "Таблицы 3");
ПредставлениеРазделов.Вставить("Р04", "Таблицы 4");
ДанныеКС.Вставить("ПредставлениеРазделов", ПредставлениеРазделов);
РазделыПоказателей = Новый Структура();
РазделыПоказателей.Вставить("Р00", "Титульный");
РазделыПоказателей.Вставить("Р01", "Таблица1");
РазделыПоказателей.Вставить("Р11", "Таблица1_1");
РазделыПоказателей.Вставить("Р02", "Таблица2");
РазделыПоказателей.Вставить("Р03", "Таблица3");
РазделыПоказателей.Вставить("Р04", "Таблица4");
ДанныеКС.Вставить("РазделыПоказателей", РазделыПоказателей);
ПоляИсключений = Новый Соответствие;
ПоляИсключений.Вставить("ЧислФизЛицВыпл", "Численность физических лиц");
ПоляИсключений.Вставить("ЧислИнвалидов" , "Численность работающих инвалидов");
ПоляИсключений.Вставить("ЧислВред" , "Численность занятых на вредных работах");
ПоляИсключений.Вставить("П00011ВСЕГО09" , "Графа 9 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО10" , "Графа 10 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО11" , "Графа 11 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО12" , "Графа 12 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО13" , "Графа 13 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО14" , "Графа 14 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО15" , "Графа 15 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО16" , "Графа 16 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО17" , "Графа 17 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО18" , "Графа 18 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО19" , "Графа 19 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО22" , "Графа 22 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО23" , "Графа 23 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ВСЕГО24" , "Графа 24 Строка ""Всего""");
ПоляИсключений.Вставить("П00011ОСВЭД05" , "Графа 5 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД06" , "Графа 6 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД07" , "Графа 7 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД08" , "Графа 8 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД09" , "Графа 9 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД10" , "Графа 10 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД11" , "Графа 11 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД12" , "Графа 12 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД13" , "Графа 13 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД14" , "Графа 14 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД15" , "Графа 15 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД16" , "Графа 16 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД17" , "Графа 17 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД18" , "Графа 18 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД19" , "Графа 19 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД22" , "Графа 22 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД23" , "Графа 23 Строка ""Основной ВЭД""");
ПоляИсключений.Вставить("П00011ОСВЭД24" , "Графа 24 Строка ""Основной ВЭД""");
ДанныеКС.Вставить("ПоляИсключений", ПоляИсключений);
МногострочныеЧасти = "";
ДанныеКС.Вставить("МногострочныеЧасти", МногострочныеЧасти);
ПоляТитульногоЛиста = Новый Структура();
ДанныеКС.Вставить("ПоляТитульногоЛиста", ПоляТитульногоЛиста);
ЦелочисленныеРазделы = Новый Массив;
ДанныеКС.Вставить("ЦелочисленныеРазделы", ЦелочисленныеРазделы);
МассивПолейСписочныхЗначений = Новый Массив;
ТаблицаСписков = РеквизитФормыВЗначение("СвойстваПоказателей", Тип("ТаблицаЗначений"));
СоответствиеСписков = Новый Соответствие;
ДанныеКС.Вставить("СоответствиеСписков", СоответствиеСписков);
ПубликацияКомментариев = Новый Массив;
ДанныеКС.Вставить("ПубликацияКомментариев", ПубликацияКомментариев);
КонецПроцедуры
&НаСервере
Процедура СформироватьДанныеПРП()
ДанныеКС.Вставить("П01");
ДанныеКС.Вставить("П02");
ДанныеКС.Вставить("ОтчетПРП");
Если ДанныеКС.КвОтчета < 2 Тогда
Возврат;
КонецЕсли;
Запрос = Новый Запрос;
Запрос.УстановитьПараметр("Организация" , СтруктураРеквизитовФормы.Организация);
Запрос.УстановитьПараметр("ГодОтчета" , ДанныеКС.ГодОтчета);
Запрос.УстановитьПараметр("МесяцОтчета" , ДанныеКС.МесОтчета - 3);
Запрос.УстановитьПараметр("КПП" , ДанныеКС.Р00.КПП);
Запрос.Текст =
"ВЫБРАТЬ РАЗРЕШЕННЫЕ
| ДокументРО.Вид КАК Вид,
| ДокументРО.Ссылка КАК Ссылка,
| ДокументРО.КПП КАК КПП,
| ДокументРО.КПП = &КПП КАК Приоритет
|ИЗ
| Документ.РегламентированныйОтчет КАК ДокументРО
|ГДЕ
| ДокументРО.ИсточникОтчета = ""РегламентированныйОтчет4ФСС""
| И ДокументРО.Организация = &Организация
| И ГОД(ДокументРО.ДатаОкончания) = &ГодОтчета
| И ГОД(ДокументРО.ДатаОкончания) >= 2022
| И ВЫРАЗИТЬ(ДокументРО.ВыбраннаяФорма КАК Строка (99)) = ""ФормаОтчета2022Кв2""
| И МЕСЯЦ(ДокументРО.ДатаОкончания) = &МесяцОтчета
| И НЕ ДокументРО.ПометкаУдаления
|
|УПОРЯДОЧИТЬ ПО
| Приоритет УБЫВ,
| Вид УБЫВ";
Результат = Запрос.Выполнить();
Выборка = Результат.Выбрать();
Если Выборка.Следующий() Тогда
ДанныеКС.Вставить("ОтчетПРП", Выборка.Ссылка);
ПоказателиОтчета = Выборка.Ссылка.ДанныеОтчета.Получить().ПоказателиОтчета;
СтруктураРазделов = Новый Структура;
СтруктураРазделов.Вставить("П01", "ПолеТабличногоДокументаТаблица1");
СтруктураРазделов.Вставить("П11", "ПолеТабличногоДокументаТаблица1_1");
Для Каждого Раздел Из СтруктураРазделов Цикл
ДанныеКС.Вставить(Раздел.Ключ,
ОбщегоНазначенияКлиентСервер.СкопироватьСтруктуру(ПоказателиОтчета[Раздел.Значение]));
КонецЦикла;
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область КС_Сервис
&НаСервере
Процедура СформироватьПоказатели(Показатели, ИменаПоказателей)
Показатели = Новый Структура;
Для каждого Элемент Из ИменаПоказателей Цикл
Показатели.Вставить(Элемент.Ключ, Новый Структура());
МассивПредставления = Новый Массив;
ПодстрокаРаздела = "";
ПодстрокаСтраницы = "";
ИндексРаздела = Сред(Элемент.Ключ, 1, 3);
ИндексДополнения = Сред(Элемент.Ключ, 4, 1);
ПодстрокаДополнения = Сред(Элемент.Ключ, 8, 1);
ПодстрокаСтроки = УдалитьЛидНули(Сред(Элемент.Значение, 10, 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=''")));
Настройки.Вставить("Раздел" , (НСтр("ru=''")));
Настройки.Вставить("Условие" , (НСтр("ru=''")));
КонецЕсли;
Если Не ИзменяемыеСвойства = Неопределено Тогда
Для каждого ЭлементКоллекции Из ИзменяемыеСвойства Цикл
Если Настройки.Свойство(ЭлементКоллекции.Ключ) Тогда
Настройки.Вставить(ЭлементКоллекции.Ключ, ЭлементКоллекции.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Настройки.ОписаниеКС = Настройки.Раздел + ". Проверка КС " + Настройки.НомерКС + Символы.ПС + Настройки.ОписаниеКС;
Если Документирование Тогда
СтрокаОписания = ТаблицаОписаний.Добавить();
ЗаполнитьЗначенияСвойств(СтрокаОписания, Настройки);
Возврат Настройки;
КонецЕсли;
Возврат Настройки;
КонецФункции
&НаСервере
Функция ОбработатьРезультат()
СтруктураРезультата = Новый Структура;
СтруктураРезультата.Вставить("СтруктураОшибок", ОбщегоНазначения.СкопироватьРекурсивно(ДанныеКС.Результат));
СтруктураРезультата.Вставить("КоличествоНайденныхОшибок" , ДанныеКС.КолОшибок);
СтруктураРезультата.Вставить("КоличествоНайденныхБезОшибок" , ДанныеКС.КолНеОшибок);
СтруктураРезультата.Вставить("СписокРасшифровкиформулы" , СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресФормул);
СтруктураРезультата.Вставить("СписокРасшифровкиПоказателей" , СтруктураРеквизитовФормы.КонтрольныеСоотношенияАдресПоказателей);
Возврат СтруктураРезультата;
КонецФункции
&НаСервере
Функция КоличествоСтрок(Источник, ИмяПоказателя)
Количество = 0;
ИмяПоказателя = Лев(ИмяПоказателя, 14);
Пока Источник.Свойство(ИмяПоказателя + XMLСтрока(Количество + 1)) Цикл
Количество = Количество + 1;
КонецЦикла;
Возврат Количество;
КонецФункции
&НаСервере
Функция СуммаПоказателей(Показатели, КодПоказателя = "")
Результат = 0;
Для каждого Показатель Из Показатели Цикл
Если НЕ ЗначениеЗаполнено(КодПоказателя) Тогда
Результат = Результат + Показатель.Значение.Значение;
ИначеЕсли СтрНайти(Показатель.Ключ, КодПоказателя) = 0 Тогда
Продолжить;
Иначе
Результат = Результат + Показатель.Значение.Значение;
КонецЕсли;
КонецЦикла;
Возврат Результат;
КонецФункции
&НаСервере
Функция УдалитьЛидНули(Знач ВхСтрока)
Если НЕ ТипЗнч(ВхСтрока) = Тип("Строка") Тогда
Возврат ВхСтрока;
КонецЕсли;
Пока Истина Цикл
Если СтрНачинаетсяС(ВхСтрока, "0") И СтрДлина(ВхСтрока) > 1 Тогда
ВхСтрока = Сред(ВхСтрока, 2);
Иначе
Прервать;
КонецЕсли;
КонецЦикла;
Возврат ВхСтрока;
КонецФункции
&НаСервере
Функция ТаблицаЗаполнена(Таблица, ПолеИсключение = "")
Если Таблица = Неопределено Тогда
Возврат Ложь;
КонецЕсли;
Результат = 0;
Для каждого Элемент Из Таблица Цикл
Если НЕ ТипЗнч(Элемент.Значение) = Тип("Число") Тогда
Продолжить;
КонецЕсли;
Если ЗначениеЗаполнено(ПолеИсключение) И НЕ СтрНайти(Элемент.Ключ, ПолеИсключение) = 0 Тогда
Продолжить;
КонецЕсли;
Результат = Результат + Элемент.Значение;
КонецЦикла;
Возврат НЕ Результат = 0;
КонецФункции
&НаСервере
Функция ПодставитьПараметрыВСтроку(Шаблон, Параметр1, Параметр2 = Неопределено, Параметр3 = Неопределено,
Параметр4 = Неопределено)
Если Параметр2 = Неопределено Тогда
Возврат СтрШаблон(Шаблон, Параметр1);
ИначеЕсли Параметр3 = Неопределено Тогда
Возврат СтрШаблон(Шаблон, Параметр1, Параметр2);
ИначеЕсли Параметр4 = Неопределено Тогда
Возврат СтрШаблон(Шаблон, Параметр1, Параметр2, Параметр3);
Иначе
Возврат СтрШаблон(Шаблон, Параметр1, Параметр2, Параметр3, Параметр4);
КонецЕсли;
КонецФункции
#КонецОбласти
#Область КС_Проверки
#Область КС_Проверки_ТитульногоЛиста
&НаСервере
Процедура ПроверитьКС_1_01_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.1.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Комментарий" , НСтр("ru='Реализация отложена'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Таблица 1.1 отсутствует, код ОКВЭД на Титульном листе обязателен к заполнению'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='Значение %1 заполнено'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение ОКВЭД'"));
Настройки = ОбработатьНастройки(Заголовки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_01_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.1.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Комментарий" , НСтр("ru='Реализация отложена'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Если Таблица 1.1 присутствует, код ОКВЭД на Титульном листе = показателю основного ВЭД Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='Значение %1 заполнено'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение ОКВЭД'"));
Настройки = ОбработатьНастройки(Заголовки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_02()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность физических лиц на Титульном листе > 0, если гр.3 стр.1 Таблицы 1 > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0, когда %2 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности физических лиц'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С002" , "ЧислФизЛицВыпл");
ИменаПоказателей.Вставить("Р01П013" , "П000010000103");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П013, ДанныеКС.Р01);
Настройки.ЭтоОшибка = Показатели.Р01П013.Значение > 0 И НЕ Показатели.Р00С002.Значение > 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р00С002.Значение,
Показатели.Р01П013.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_03()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работающих инвалидов на Титульном листе > 0, если гр.3 стр.4 Таблицы 1 > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0, когда %2 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работающих инвалидов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
ИменаПоказателей.Вставить("Р01П034" , "П000010000403");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П034, ДанныеКС.Р01);
Настройки.ЭтоОшибка = Показатели.Р01П034.Значение > 0 И НЕ Показатели.Р00С002.Значение > 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р00С002.Значение,
Показатели.Р01П034.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_1_04()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='1.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Титульный лист'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников, занятых на вредных работах на Титульном листе >= 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" ,
НСтр("ru='Ошибочное значение численности работников, занятых на вредных работах'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р00С003" , "ЧислВред");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С003, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С003.Значение < 0;
Настройки.Расшифровка = СтрЗаменить(Настройки.ШаблонРасшифровки , "%1", Показатели.Р00С003.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_1
&НаСервере
Процедура ПроверитьКС_2_01()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Сумма выплат в гр.3 стр.1 Таблицы 1 >= 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "103");
ПроверитьКС_2_01_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_01_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
Настройки.ЭтоОшибка = Показатели.Р01П013.Значение < 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_02_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.2.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.1 Таблицы 1 = сумме гр.4, 5, 6, стр.1 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 1);
ПроверитьКС_2_36_1_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_02_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.2.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.1 Таблицы 1 = сумме гр.4, 5, 6, стр.1 Таблицы 1 + гр.3 стр.1 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 1);
ПроверитьКС_2_36_2_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_02_3()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.2.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.1 Таблицы 1 >= сумме гр.4, 5, 6, стр.1 Таблицы 1, если расчет '") +
НСтр("ru='не за 1 квартал и расчет по аналогичной форме за предыдущий отчетный период отсутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 1);
ПроверитьКС_2_36_3_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_03()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.1 Таблицы 1 = сумме стр.2, 3 по гр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "103");
Настройки.Вставить("ПостфиксПоказателя2", "203");
Настройки.Вставить("ПостфиксПоказателя3", "303");
ПроверитьКС_2_06_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_04()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.4 стр.1 Таблицы 1 = сумме стр.2, 3 по гр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "104");
Настройки.Вставить("ПостфиксПоказателя2", "204");
Настройки.Вставить("ПостфиксПоказателя3", "304");
ПроверитьКС_2_06_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_05()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.5 стр.1 Таблицы 1 = сумме стр.2, 3 по гр.5 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "105");
Настройки.Вставить("ПостфиксПоказателя2", "205");
Настройки.Вставить("ПостфиксПоказателя3", "305");
ПроверитьКС_2_06_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_06()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.6 стр.1 Таблицы 1 = сумме стр.2, 3 по гр.6 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя1", "106");
Настройки.Вставить("ПостфиксПоказателя2", "206");
Настройки.Вставить("ПостфиксПоказателя3", "306");
ПроверитьКС_2_06_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_06_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.ПостфиксПоказателя1);
ИменаПоказателей.Вставить("Р01П023" , "П000010000" + Настройки.ПостфиксПоказателя2);
ИменаПоказателей.Вставить("Р01П033" , "П000010000" + Настройки.ПостфиксПоказателя3);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П023.Значение, Показатели.Р01П033.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_07_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.7.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.2 Таблицы 1 = сумме гр.4, 5, 6, стр.2 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 2);
ПроверитьКС_2_36_1_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_07_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.7.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.2 Таблицы 1 = сумме гр.4, 5, 6, стр.2 Таблицы 1 + гр.3 стр.2 Таблицы 1 за '") +
НСтр("ru='предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 2);
ПроверитьКС_2_36_2_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_07_3()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.7.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма выплат в гр.3 стр.2 Таблицы 1 >= сумме гр.4, 5, 6, стр.2 Таблицы 1, если расчет '") +
НСтр("ru='не за 1 квартал и расчет по аналогичной форме за предыдущий отчетный период отсутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма выплат'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 2);
ПроверитьКС_2_36_3_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_08()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.8'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 >= 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "303");
ПроверитьКС_2_01_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_09_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.9.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 = сумме гр.4, 5, 6, стр.3 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 3);
ПроверитьКС_2_36_1_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_09_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.9.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 = сумме гр.4, 5, 6, стр.3 Таблицы 1 + гр.3 стр.3 '") +
НСтр("ru='Таблицы 1 за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 3);
ПроверитьКС_2_36_2_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_09_3()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.9.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 >= сумме гр.4, 5, 6, стр.3 Таблицы 1, если расчет '") +
НСтр("ru='не за 1 квартал и расчет по аналогичной форме за предыдущий отчетный период отсутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 3);
ПроверитьКС_2_36_3_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_10()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.10'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 = гр.9 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "303");
Настройки.Вставить("ГрафаР11" , "09");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_11()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.11'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.4 стр.3 Таблицы 1 = гр.13 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "304");
Настройки.Вставить("ГрафаР11" , "13");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_12()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.12'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.5 стр.3 Таблицы 1 = гр.15 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "305");
Настройки.Вставить("ГрафаР11" , "15");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_13()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.13'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.6 стр.3 Таблицы 1 = гр.17 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "306");
Настройки.Вставить("ГрафаР11" , "17");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_14()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.14'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.3 Таблицы 1 >= суммы всех строк по гр.8 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "303");
Настройки.Вставить("ГрафаР02" , "08");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_15()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.15'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.4 стр.3 Таблицы 1 >= суммы всех строк по гр.10 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "304");
Настройки.Вставить("ГрафаР02" , "10");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_16()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.16'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.5 стр.3 Таблицы 1 >= суммы всех строк по гр.12 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "305");
Настройки.Вставить("ГрафаР02" , "12");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_17()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.17'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.6 стр.3 Таблицы 1 >= суммы всех строк по гр.14 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "306");
Настройки.Вставить("ГрафаР02" , "14");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_18()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.18'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 > 0, если Численность работающих инвалидов на '") +
НСтр("ru='Титульном листе > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0, когда %2 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П034" , "П000010000403");
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П034, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С002.Значение > 0 И НЕ Показатели.Р01П034.Значение > 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П034.Значение,
Показатели.Р00С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.19.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 = сумме гр.4, 5, 6, стр.4 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 4);
ПроверитьКС_2_36_1_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.19.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 = сумме гр.4, 5, 6, стр.4 Таблицы 1 + гр.3 стр.4 '") +
НСтр("ru='Таблицы 1 за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 4);
ПроверитьКС_2_36_2_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_19_3()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.19.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 >= сумме гр.4, 5, 6, стр.4 Таблицы 1, если расчет '") +
НСтр("ru='не за 1 квартал и расчет по аналогичной форме за предыдущий отчетный период отсутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 4);
ПроверитьКС_2_36_3_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_20()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.20'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 <= гр.3 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерГрафы", "3");
ПроверитьКС_2_32_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_21()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.21'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 = 0, если Численность работающих инвалидов на '") +
НСтр("ru='Титульном листе = 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = 0, когда %2 = 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П034" , "П000010000403");
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П034, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С002.Значение = 0 И НЕ Показатели.Р01П034.Значение = 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П034.Значение,
Показатели.Р00С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_22()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.22'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 = гр.10 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "403");
Настройки.Вставить("ГрафаР11" , "10");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_23()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.23'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.4 стр.4 Таблицы 1 = гр.14 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "404");
Настройки.Вставить("ГрафаР11" , "14");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_24()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.24'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.4 стр.4 Таблицы 1 <= гр.4 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерГрафы", "4");
ПроверитьКС_2_32_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_25()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.25'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.5 стр.4 Таблицы 1 = гр.16 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "405");
Настройки.Вставить("ГрафаР11" , "16");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_26()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.26'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.5 стр.4 Таблицы 1 <= гр.5 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерГрафы", "5");
ПроверитьКС_2_32_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_27()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.27'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.6 стр.4 Таблицы 1 = гр.18 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "406");
Настройки.Вставить("ГрафаР11" , "18");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_28()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.28'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.3 стр.4 Таблицы 1 >= суммы всех строк по гр.9 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "403");
Настройки.Вставить("ГрафаР02" , "09");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_29()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.29'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.4 стр.4 Таблицы 1 >= суммы всех строк по гр.11 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "404");
Настройки.Вставить("ГрафаР02" , "11");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_30()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.30'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.5 стр.4 Таблицы 1 >= суммы всех строк по гр.13 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "405");
Настройки.Вставить("ГрафаР02" , "13");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_31()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.31'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.6 стр.4 Таблицы 1 >= суммы всех строк по гр.15 Таблицы 2, если '") +
НСтр("ru='Таблица 2 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "406");
Настройки.Вставить("ГрафаР02" , "15");
ПроверитьКС_2_31_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_31_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П001" , "П000010000" + Настройки.СтрокаГрафаР01);
ИменаПоказателей.Вставить("Р02П001" , "П0000200001" + Настройки.ГрафаР02 + "_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02П001, ДанныеКС.Р02, Счетчик);
КонецЦикла;
Настройки.ЭтоОшибка = ДанныеКС.Таблица02Заполнена И Показатели.Р01П001.Значение < Показатели.Р02П001.Итог;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П001.Значение,
Показатели.Р02П001.Итог);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_32()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.32'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.6 стр.4 Таблицы 1 <= гр.6 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерГрафы", "6");
ПроверитьКС_2_32_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_32_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П001" , "П00001000040" + Настройки.НомерГрафы);
ИменаПоказателей.Вставить("Р01П002" , "П00001000030" + Настройки.НомерГрафы);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
Настройки.ЭтоОшибка = Показатели.Р01П001.Значение > Показатели.Р01П002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П001.Значение,
Показатели.Р01П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_33()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.33'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Размер страхового тарифа в стр.5 Таблицы 1 > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01С005" , "П000010000503");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
Настройки.ЭтоОшибка = ДанныеКС.Таблица01Заполнена И НЕ Показатели.Р01С005.Значение > 0;
Настройки.Расшифровка = СтрЗаменить(Настройки.ШаблонРасшифровки, "%1", Показатели.Р01С005.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_34()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.34'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Размер страхового тарифа в стр.8 Таблицы 1 = стр.5 Таблицы 1 х '") +
НСтр("ru='(1 - стр.6 Таблицы 1 / 100 + стр.7 Таблицы 1 / 100), полученный результат округляется до трех '") +
НСтр("ru='десятичных знаков после запятой'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 х (1 - %3 / 100 + %4 / 100) Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01С008" , "П000010000803");
ИменаПоказателей.Вставить("Р01С005" , "П000010000503");
ИменаПоказателей.Вставить("Р01С006" , "П000010000603");
ИменаПоказателей.Вставить("Р01С007" , "П000010000703");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = Окр(Показатели.Р01С005.Значение * (1 - Показатели.Р01С006.Значение / 100
+ Показатели.Р01С007.Значение / 100), 3);
Настройки.ЭтоОшибка = ДанныеКС.Таблица01Заполнена И НЕ Показатели.Р01С008.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01С008.Значение,
Показатели.Р01С005.Значение, Показатели.Р01С006.Значение, Показатели.Р01С007.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_35()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.35'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Сумма страховых взносов в гр.3 стр.9 Таблицы 1 >= 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ПостфиксПоказателя", "903");
ПроверитьКС_2_01_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_1()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.36.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.3 стр.9 Таблицы 1 = сумме гр.4, 5, 6, стр.9 Таблицы 1, если расчет '") +
НСтр("ru='за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 9);
ПроверитьКС_2_36_1_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_1_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.НомерСтроки + "03");
ИменаПоказателей.Вставить("Р01П014" , "П000010000" + Настройки.НомерСтроки + "04");
ИменаПоказателей.Вставить("Р01П015" , "П000010000" + Настройки.НомерСтроки + "05");
ИменаПоказателей.Вставить("Р01П016" , "П000010000" + Настройки.НомерСтроки + "06");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = ДанныеКС.КвОтчета = 1 И НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П014.Значение, Показатели.Р01П015.Значение, Показатели.Р01П016.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_2()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.36.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.3 стр.9 Таблицы 1 = сумме гр.4, 5, 6, стр.9 Таблицы 1 + гр.3 стр.9 '") +
НСтр("ru='Таблицы 1 за предыдущий отчетный период, если расчет не за 1 квартал'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 + %4 + %5 Итог [%6]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 9);
ПроверитьКС_2_36_2_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_2_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.НомерСтроки + "03");
ИменаПоказателей.Вставить("Р01П014" , "П000010000" + Настройки.НомерСтроки + "04");
ИменаПоказателей.Вставить("Р01П015" , "П000010000" + Настройки.НомерСтроки + "05");
ИменаПоказателей.Вставить("Р01П016" , "П000010000" + Настройки.НомерСтроки + "06");
ИменаПоказателей.Вставить("Р01П013О" , "П000010000" + Настройки.НомерСтроки + "03");
СформироватьПоказатели(Показатели, ИменаПоказателей);
Показатели.Р01П013О.Значение = 0;
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П013 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П014 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П015 , ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П016 , ДанныеКС.Р01);
Если НЕ ДанныеКС.ОтчетПРП = Неопределено Тогда
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П013О, ДанныеКС.П01);
КонецЕсли;
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = ДанныеКС.КвОтчета > 1 И НЕ ДанныеКС.ОтчетПРП = Неопределено
И НЕ Показатели.Р01П013.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П014.Значение, Показатели.Р01П015.Значение, Показатели.Р01П016.Значение,
Показатели.Р01П013О.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_3()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.36.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.3 стр.9 Таблицы 1 >= сумме гр.4, 5, 6, стр.9 Таблицы 1, если расчет '") +
НСтр("ru='не за 1 квартал и расчет по аналогичной форме за предыдущий отчетный период отсутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2 + %3 + %4 Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("НомерСтроки", 9);
ПроверитьКС_2_36_3_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_36_3_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П013" , "П000010000" + Настройки.НомерСтроки + "03");
ИменаПоказателей.Вставить("Р01П014" , "П000010000" + Настройки.НомерСтроки + "04");
ИменаПоказателей.Вставить("Р01П015" , "П000010000" + Настройки.НомерСтроки + "05");
ИменаПоказателей.Вставить("Р01П016" , "П000010000" + Настройки.НомерСтроки + "06");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р01);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р01П013.Значение;
Настройки.ЭтоОшибка = ДанныеКС.КвОтчета > 1 И ДанныеКС.ОтчетПРП = Неопределено
И Показатели.Р01П013.Значение < РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р01П013.Значение,
Показатели.Р01П014.Значение, Показатели.Р01П015.Значение, Показатели.Р01П016.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_37()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='2.37'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.3 стр.9 Таблицы 1 = гр.19 стр.""Всего"" Таблицы 1.1, если '") +
НСтр("ru='Таблица 1.1 присутствует'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("СтрокаГрафаР01" , "903");
Настройки.Вставить("ГрафаР11" , "19");
ПроверитьКС_2_37_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_2_37_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р01П001" , "П000010000" + Настройки.СтрокаГрафаР01);
ИменаПоказателей.Вставить("Р11П001" , "П00011ВСЕГО" + Настройки.ГрафаР11);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11П001, ДанныеКС.Р11);
Настройки.ЭтоОшибка = ДанныеКС.Таблица11Заполнена И НЕ Показатели.Р01П001.Значение = Показатели.Р11П001.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р01П001.Значение,
Показатели.Р11П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_11
&НаСервере
Процедура ПроверитьКС_3_01()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Скидка к страховому тарифу в гр.6 стр.""Основной ВЭД"" Таблицы 1.1 = стр.6 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение скидки к страховому тарифу'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "06");
Настройки.Вставить("СтрокаГрафаР01" , "603");
ПроверитьКС_3_03_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_02()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Надбавка к страховому тарифу в гр.7 стр.""Основной ВЭД"" Таблицы 1.1 = стр.7 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение надбавки к страховому тарифу'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "07");
Настройки.Вставить("СтрокаГрафаР01" , "703");
ПроверитьКС_3_03_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_03_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П001" , "П00011ОСВЭД" + Настройки.ГрафаР11);
ИменаПоказателей.Вставить("Р01П001" , "П000010000" + Настройки.СтрокаГрафаР01);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11П001, ДанныеКС.Р11);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
Настройки.ЭтоОшибка = ДанныеКС.Таблица11Заполнена И НЕ Показатели.Р11П001.Значение = Показатели.Р01П001.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р11П001.Значение,
Показатели.Р01П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_04()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Размер страхового тарифа в гр.8 стр.""Основной ВЭД"" Таблицы 1.1 '") +
НСтр("ru='= гр.5 стр.""Основной ВЭД"" Таблицы 1.1 х (1 - гр.6 Таблицы 1.1 / 100 + гр.7 Таблицы 1.1 / 100), '") +
НСтр("ru='полученный результат округляется до трех десятичных знаков после запятой'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 х (1 - %3 / 100 + %4 / 100) Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П008" , "П00011ОСВЭД08");
ИменаПоказателей.Вставить("Р11П005" , "П00011ОСВЭД05");
ИменаПоказателей.Вставить("Р11П006" , "П00011ОСВЭД06");
ИменаПоказателей.Вставить("Р11П007" , "П00011ОСВЭД07");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р11);
РасчетнаяСумма = Окр(Показатели.Р11П005.Значение * (1 - Показатели.Р11П006.Значение / 100
+ Показатели.Р11П007.Значение / 100), 3);
Настройки.ЭтоОшибка = НЕ Показатели.Р11П008.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р11П008.Значение,
Показатели.Р11П005.Значение, Показатели.Р11П006.Значение, Показатели.Р11П007.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_05()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.9 Таблицы 1.1 >= гр.10 по каждой строке Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", 9);
ПроверитьКС_3_15_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_06()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.11 Таблицы 1.1 >= гр.12 по каждой строке Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", 11);
ПроверитьКС_3_15_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_13()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.13'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.13 Таблицы 1.1 >= гр.14 по каждой строке Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", 13);
ПроверитьКС_3_15_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_14()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.14'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.15 Таблицы 1.1 >= гр.16 по каждой строке Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", 15);
ПроверитьКС_3_15_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_15()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.15'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.17 Таблицы 1.1 >= гр.18 по каждой строке Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", 17);
ПроверитьКС_3_15_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_15_код(Настройки)
Перем Показатели;
Для Сценарий = 1 По 3 Цикл
Если НЕ Сценарий = 3 Тогда
Если Сценарий = 1 Тогда
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П001" , "П00011ВСЕГО" + Формат(Настройки.ГрафаР11, "ЧЦ=2; ЧВН="));
ИменаПоказателей.Вставить("Р11П002" , "П00011ВСЕГО" + Формат((Настройки.ГрафаР11 + 1), "ЧЦ=2; ЧВН="));
Иначе
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П001" , "П00011ОСВЭД" + Формат(Настройки.ГрафаР11, "ЧЦ=2; ЧВН="));
ИменаПоказателей.Вставить("Р11П002" , "П00011ОСВЭД" + Формат((Настройки.ГрафаР11 + 1), "ЧЦ=2; ЧВН="));
КонецЕсли;
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р11);
Настройки.ЭтоОшибка = Показатели.Р11П001.Значение < Показатели.Р11П002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р11П001.Значение,
Показатели.Р11П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
Иначе
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11Г001" , "П0001100001" + Формат(Настройки.ГрафаР11, "ЧЦ=2; ЧВН=") + "_");
ИменаПоказателей.Вставить("Р11Г002" , "П0001100001" + Формат((Настройки.ГрафаР11 + 1), "ЧЦ=2; ЧВН=") + "_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
Для Счетчик = 1 По ДанныеКС.КолСтрокР11 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р11, Счетчик);
Настройки.ЭтоОшибка = Показатели.Р11Г001.Значение < Показатели.Р11Г002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р11Г001.Значение,
Показатели.Р11Г002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_16()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.16'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.9 стр.""Всего"" Таблицы 1.1 = гр.3 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "09");
Настройки.Вставить("СтрокаГрафаР01" , "303");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_17()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.17'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.9 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.9 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "09");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_19()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.19'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.10 стр.""Всего"" Таблицы 1.1 = гр.3 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "10");
Настройки.Вставить("СтрокаГрафаР01" , "403");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_20()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.20'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.10 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.10 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "10");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_22()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.22'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.13 стр.""Всего"" Таблицы 1.1 = гр.4 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "13");
Настройки.Вставить("СтрокаГрафаР01" , "304");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_23()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.23'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.13 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.13 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "13");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_24()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.24'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.14 стр.""Всего"" Таблицы 1.1 = гр.4 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "14");
Настройки.Вставить("СтрокаГрафаР01" , "404");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_25()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.25'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.14 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.14 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "14");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_26()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.26'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.15 стр.""Всего"" Таблицы 1.1 = гр.5 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "15");
Настройки.Вставить("СтрокаГрафаР01" , "305");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_27()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.27'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.15 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.15 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "15");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_28()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.28'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.16 стр.""Всего"" Таблицы 1.1 = гр.5 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "16");
Настройки.Вставить("СтрокаГрафаР01" , "405");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_29()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.29'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.16 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.16 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "16");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_30()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.30'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.17 стр.""Всего"" Таблицы 1.1 = гр.6 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "17");
Настройки.Вставить("СтрокаГрафаР01" , "306");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_31()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.31'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.17 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.17 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "17");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_32()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.32'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.18 стр.""Всего"" Таблицы 1.1 = гр.6 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "18");
Настройки.Вставить("СтрокаГрафаР01" , "406");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_33()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.33'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.18 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.18 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "18");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_46()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.46'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.19 стр.""Всего"" Таблицы 1.1 = гр.3 стр.9 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "19");
Настройки.Вставить("СтрокаГрафаР01" , "903");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_47()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.47'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.19 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.19 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "19");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_49()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.49'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.22 стр.""Всего"" Таблицы 1.1 = гр.4 стр.9 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "22");
Настройки.Вставить("СтрокаГрафаР01" , "904");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_50()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.50'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.22 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.22 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "22");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_51()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.51'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.23 стр.""Всего"" Таблицы 1.1 = гр.5 стр.9 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "23");
Настройки.Вставить("СтрокаГрафаР01" , "905");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_52()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.52'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.23 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.23 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "23");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_53()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.53'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.24 стр.""Всего"" Таблицы 1.1 = гр.6 стр.9 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11" , "24");
Настройки.Вставить("СтрокаГрафаР01" , "906");
ПроверитьКС_3_53_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_53_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П001" , "П00011ВСЕГО" + Настройки.ГрафаР11);
ИменаПоказателей.Вставить("Р01П001" , "П000010000" + Настройки.СтрокаГрафаР01);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11П001, ДанныеКС.Р11);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
Настройки.ЭтоОшибка = ДанныеКС.Таблица11Заполнена И НЕ Показатели.Р11П001.Значение = Показатели.Р01П001.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р11П001.Значение,
Показатели.Р01П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_54()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='3.54'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 1.1'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма страховых взносов в гр.24 стр.""Всего"" Таблицы 1.1 = сумме всех строк по гр.24 Таблицы 1.1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма страховых взносов'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР11", "24");
ПроверитьКС_3_54_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_3_54_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р11П001" , "П00011ВСЕГО" + Настройки.ГрафаР11);
ИменаПоказателей.Вставить("Р11П002" , "П00011ОСВЭД" + Настройки.ГрафаР11);
ИменаПоказателей.Вставить("Р11Г003" , "П0001100001" + Настройки.ГрафаР11 + "_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11П001, ДанныеКС.Р11);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11П002, ДанныеКС.Р11);
Для Счетчик = 1 По ДанныеКС.КолСтрокР11 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р11Г003, ДанныеКС.Р11, Счетчик);
КонецЦикла;
РасчетнаяСумма = Показатели.Р11П002.Значение + Показатели.Р11Г003.Итог;
Настройки.ЭтоОшибка = НЕ Показатели.Р11П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р11П001.Значение,
РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_2
&НаСервере
Процедура ПроверитьКС_4_01()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников в гр.6 по всем строкам Таблицы 2 >= гр.7 по всем строкам Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работников'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02Г001" , "П000020000106_");
ИменаПоказателей.Вставить("Р02Г002" , "П000020000107_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02, Счетчик);
КонецЦикла;
Настройки.ЭтоОшибка = Показатели.Р02Г001.Итог < Показатели.Р02Г002.Итог;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р02Г001.Итог,
Показатели.Р02Г002.Итог);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_02()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников в гр.7 по всем строкам Таблицы 2 <= Численности работающих инвалидов '") +
НСтр("ru='на Титульном листе'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работников'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02Г001" , "П000020000107_");
ИменаПоказателей.Вставить("Р00С002" , "ЧислИнвалидов");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02Г001, ДанныеКС.Р02, Счетчик);
КонецЦикла;
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р02Г001.Итог > Показатели.Р00С002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р02Г001.Итог,
Показатели.Р00С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_03()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.8 по всем строкам Таблицы 2 <= гр.3 стр.3 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02" , "08");
Настройки.Вставить("СтрокаГрафаР01" , "303");
ПроверитьКС_4_08_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_04()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.8 Таблицы 2 >= гр.9 по каждой строке Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02", 8);
ПроверитьКС_4_07_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_05()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.5'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.10 Таблицы 2 >= гр.11 по каждой строке Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02", 10);
ПроверитьКС_4_07_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_06()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.6'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.12 Таблицы 2 >= гр.13 по каждой строке Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02", 12);
ПроверитьКС_4_07_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_07()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.7'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.14 Таблицы 2 >= гр.15 по каждой строке Таблицы 2'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02", 14);
ПроверитьКС_4_07_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_07_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02Г001" , "П0000200001" + Формат(Настройки.ГрафаР02, "ЧЦ=2; ЧВН=") + "_");
ИменаПоказателей.Вставить("Р02Г002" , "П0000200001" + Формат((Настройки.ГрафаР02 + 1), "ЧЦ=2; ЧВН=") + "_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02, Счетчик);
Настройки.ЭтоОшибка = Показатели.Р02Г001.Значение < Показатели.Р02Г002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р02Г001.Значение,
Показатели.Р02Г002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_08()
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.8'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Сумма налоговой базы в гр.9 по всем строкам Таблицы 2 <= гр.3 стр.4 Таблицы 1'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочная сумма налоговой базы'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
Настройки.Вставить("ГрафаР02" , "09");
Настройки.Вставить("СтрокаГрафаР01" , "403");
ПроверитьКС_4_08_код(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_08_код(Настройки)
Перем Показатели;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02Г001" , "П0000200001" + Настройки.ГрафаР02 + "_");
ИменаПоказателей.Вставить("Р01П001" , "П000010000" + Настройки.СтрокаГрафаР01);
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р02Г001, ДанныеКС.Р02, Счетчик);
КонецЦикла;
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р01П001, ДанныеКС.Р01);
Настройки.ЭтоОшибка = ДанныеКС.Таблица02Заполнена И Показатели.Р02Г001.Итог > Показатели.Р01П001.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р02Г001.Итог,
Показатели.Р01П001.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_4_11()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='4.11'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 2'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Размер страхового тарифа в гр.19 Таблицы 2 = гр.16 '") +
НСтр("ru='Таблицы 2 х (1 - гр.17 Таблицы 2 / 100 + гр.18 Таблицы 2 / 100) по каждой строке Таблицы 2, '") +
НСтр("ru='полученный результат округляется до трех десятичных знаков после запятой'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 х (1 - %3 / 100 + %4 / 100) Итог [%5]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение страхового тарифа'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р02Г019" , "П000020000119_");
ИменаПоказателей.Вставить("Р02Г016" , "П000020000116_");
ИменаПоказателей.Вставить("Р02Г017" , "П000020000117_");
ИменаПоказателей.Вставить("Р02Г018" , "П000020000118_");
СформироватьПоказатели(Показатели, ИменаПоказателей);
Для Счетчик = 1 По ДанныеКС.КолСтрокР02 Цикл
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р02, Счетчик);
РасчетнаяСумма = Окр(Показатели.Р02Г016.Значение * (1 - Показатели.Р02Г017.Значение / 100
+ Показатели.Р02Г018.Значение / 100), 3);
Настройки.ЭтоОшибка = НЕ Показатели.Р02Г019.Значение = РасчетнаяСумма;
Настройки.Расшифровка = СтрШаблон(Настройки.ШаблонРасшифровки, Показатели.Р02Г019.Значение,
Показатели.Р02Г016.Значение, Показатели.Р02Г017.Значение, Показатели.Р02Г018.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецЦикла;
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_3
&НаСервере
Процедура ПроверитьКС_5_01()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Численность пострадавших в стр.2 Таблицы 3 <= стр.1 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности пострадавших'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03С001" , "П000030000203");
ИменаПоказателей.Вставить("Р03С002" , "П000030000103");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р03);
Настройки.ЭтоОшибка = Показатели.Р03С001.Значение > Показатели.Р03С002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р03С001.Значение,
Показатели.Р03С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_02()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность пострадавших в стр.4 Таблицы 3 = стр.1 Таблицы 3 + стр.3 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2 + %3 Итог [%4]'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности пострадавших'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03С001" , "П000030000403");
ИменаПоказателей.Вставить("Р03С002" , "П000030000103");
ИменаПоказателей.Вставить("Р03С003" , "П000030000303");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р03);
РасчетнаяСумма = Показатели.Р03С002.Значение + Показатели.Р03С003.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р03С001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р03С001.Значение,
Показатели.Р03С002.Значение, Показатели.Р03С003.Значение, РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_5_03()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='5.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 3'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" , НСтр("ru='Численность пострадавших в стр.5 Таблицы 3 <= стр.4 Таблицы 3'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 <= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности пострадавших'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р03С001" , "П000030000503");
ИменаПоказателей.Вставить("Р03С002" , "П000030000403");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р03);
Настройки.ЭтоОшибка = Показатели.Р03С001.Значение > Показатели.Р03С002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р03С001.Значение,
Показатели.Р03С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#Область КС_Проверки_Таблицы_4
&НаСервере
Процедура ПроверитьКС_6_01()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.1'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Количество рабочих мест в гр.3 стр.1 Таблицы 4 >= гр.4 стр.1 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение количества рабочих мест'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П001" , "П000040000103");
ИменаПоказателей.Вставить("Р04П002" , "П000040000104");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р04);
Настройки.ЭтоОшибка = Показатели.Р04П001.Значение < Показатели.Р04П002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р04П001.Значение,
Показатели.Р04П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_02()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.2'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Количество рабочих мест в гр.4 стр.1 Таблицы 4 = сумма гр.5 - 11 стр.1 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 = %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение количества рабочих мест'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П001" , "П000040000104");
ИменаПоказателей.Вставить("Р04П002" , "П000040000105");
ИменаПоказателей.Вставить("Р04П003" , "П000040000106");
ИменаПоказателей.Вставить("Р04П004" , "П000040000107");
ИменаПоказателей.Вставить("Р04П005" , "П000040000108");
ИменаПоказателей.Вставить("Р04П006" , "П000040000109");
ИменаПоказателей.Вставить("Р04П007" , "П000040000110");
ИменаПоказателей.Вставить("Р04П008" , "П000040000111");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р04);
РасчетнаяСумма = СуммаПоказателей(Показатели) - Показатели.Р04П001.Значение;
Настройки.ЭтоОшибка = НЕ Показатели.Р04П001.Значение = РасчетнаяСумма;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р04П001.Значение,
РасчетнаяСумма);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_03()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.3'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников в гр.12 стр.2 Таблицы 4 >= гр.13 стр.2 Таблицы 4'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 >= %2'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работников'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П001" , "П000040000212");
ИменаПоказателей.Вставить("Р04П002" , "П000040000213");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатели(Показатели, ДанныеКС.Р04);
Настройки.ЭтоОшибка = Показатели.Р04П001.Значение < Показатели.Р04П002.Значение;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р04П001.Значение,
Показатели.Р04П002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
&НаСервере
Процедура ПроверитьКС_6_04()
Перем Показатели;
Заголовки = Новый Структура;
Заголовки.Вставить("НомерКС" , НСтр("ru='6.4'"));
Заголовки.Вставить("Раздел" , НСтр("ru='Таблица 4'"));
Заголовки.Вставить("Нарушение" , НСтр("ru='Ошибка ввода'"));
Заголовки.Вставить("ОписаниеКС" ,
НСтр("ru='Численность работников в гр.12 стр.2 Таблицы 4 > 0, если Численность занятых на '") +
НСтр("ru='вредных работах на Титульном листе > 0'"));
Заголовки.Вставить("ШаблонРасшифровки" , НСтр("ru='%1 > 0, когда %2 > 0'"));
Заголовки.Вставить("ОписаниеОшибки" , НСтр("ru='Ошибочное значение численности работников'"));
Настройки = ОбработатьНастройки(Заголовки);
Если Документирование Тогда
Возврат;
КонецЕсли;
ИменаПоказателей = Новый Структура;
ИменаПоказателей.Вставить("Р04П001" , "П000040000212");
ИменаПоказателей.Вставить("Р00С002" , "ЧислВред");
СформироватьПоказатели(Показатели, ИменаПоказателей);
ЗарегистрироватьФормулу(Настройки);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р04П001, ДанныеКС.Р04);
ЗаполнитьИРасшифроватьПоказатель(Показатели.Р00С002, ДанныеКС.Р00);
Настройки.ЭтоОшибка = Показатели.Р00С002.Значение > 0 И НЕ Показатели.Р04П001.Значение > 0;
Настройки.Расшифровка = ПодставитьПараметрыВСтроку(Настройки.ШаблонРасшифровки, Показатели.Р04П001.Значение,
Показатели.Р00С002.Значение);
ДополнитьСтруктуруОшибок(Настройки);
КонецПроцедуры
#КонецОбласти
#КонецОбласти
#КонецОбласти
&НаСервере
Процедура ПриСозданииНаСервере(Отказ, СтандартнаяОбработка)
Если Параметры.Свойство("АвтоТест") Тогда
Возврат;
КонецЕсли;
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьНазначениеДействияКомандФормыРеглОтчета(Команды);
КонецЕсли;
ТабличныйДокумент.Очистить();
ОбъектОтчета(ЭтаФорма.ИмяФормы).СформироватьСтруктуруРеквизитовФормы(
Параметры.мВыбраннаяФорма, СтруктураРеквизитовФормы);
СтруктураРеквизитовФормы.мЧтоОчищать = "Расчетную ведомость";
СтруктураРеквизитовФормы.мПоляПоискаПоказателяВТСП = "КодПоказателяПоСоставу, КодПоказателяПоФорме";
СоответствиеЕдиницыИзмеренияДелителю = Новый Структура;
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1", 1);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000", 1000);
СоответствиеЕдиницыИзмеренияДелителю.Вставить("Окр1000000", 1000000);
МассивБулево = Новый Массив;
МассивБулево.Добавить(Тип("Булево"));
СтруктураРеквизитовФормы.мОписаниеТиповБулево = Новый ОписаниеТипов(МассивБулево);
СтруктураРеквизитовФормы.мОписаниеТиповЧислоЕ = Новый ОписаниеТипов("Число", Новый КвалификаторыЧисла(16, 2));
КолИсхСтрокИдГруппы92 = 1;
КолИсхСтрокИдГруппы11 = 1;
КолИсхСтрокИдГруппы2 = 1;
КолКолонокИдГруппы92 = 4;
КолКолонокИдГруппы11 = 24;
КолКолонокИдГруппы2 = 19;
СтруктураДанныхТитульный = Новый Структура;
СтруктураДанныхТаблица92 = Новый Структура;
СтруктураДанныхТаблица1 = Новый Структура;
СтруктураДанныхТаблица1_1 = Новый Структура;
СтруктураДанныхТаблица2 = Новый Структура;
СтруктураДанныхТаблица3 = Новый Структура;
СтруктураДанныхТаблица4 = Новый Структура;
мСтруктураМногострочныхРазделов = Новый Структура;
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы92, СтруктураРеквизитовФормы.ИдГруппы92);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы11, СтруктураРеквизитовФормы.ИдГруппы11);
мСтруктураМногострочныхРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы2, СтруктураРеквизитовФормы.ИдГруппы2);
мСтруктураМногостраничныхРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов = Новый Структура;
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы92, КолИсхСтрокИдГруппы92);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы11, КолИсхСтрокИдГруппы11);
мСтруктураИсхКолвоСтрокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы2, КолИсхСтрокИдГруппы2);
мСтруктураКолвоКолонокРазделов = Новый Структура;
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы92, КолКолонокИдГруппы92);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы11, КолКолонокИдГруппы11);
мСтруктураКолвоКолонокРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы2, КолКолонокИдГруппы2);
РегламентированнаяОтчетность.СформироватьСтруктуруЦветовРаскраски(ЭтаФорма);
мСтруктураВариантыЗаполнения = Новый Структура;
мСтруктураВариантыЗаполненияЭталон = Новый Структура;
СтруктураРеквизитовФормы.мКодОтчета = "1159999";
СтруктураРеквизитовФормы.ЕстьРеквизитКодПодчиненностиФСС
= Метаданные.Справочники.Организации.Реквизиты.Найти("КодПодчиненностиФСС") <> Неопределено;
ИмяРаздела = "Титульный";
ЭтаФормаИмя = ЭтаФорма.ИмяФормы;
ИмяМакета = Сред(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, "ФормаОтчета")) + "_" + ИмяРаздела;
Попытка
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФормаИмя).ПолучитьМакет(ИмяМакета));
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьТипОтображенияРедактируемойЯчейкиТабличногоДокумента(ТабличныйДокумент);
КонецЕсли;
Исключение
КонецПопытки;
СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяРаздела;
СтруктураРеквизитовФормы.мВыбраннаяФорма = Параметры.мВыбраннаяФорма;
СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета = Параметры.мДатаКонцаПериодаОтчета;
СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета = Параметры.мДатаНачалаПериодаОтчета;
СтруктураРеквизитовФормы.мСкопированаФорма = Параметры.мСкопированаФорма;
СтруктураРеквизитовФормы.мСохраненныйДок = Параметры.мСохраненныйДок;
СтруктураРеквизитовФормы.Организация = Параметры.Организация;
СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически = Параметры.СформироватьФормуОтчетаАвтоматически;
ДатаПодписи = ТекущаяДатаСеанса();
ПорядкиОкругленияОтчетности = Новый Структура;
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1", Перечисления.ПорядкиОкругленияОтчетности.Окр1);
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1000", Перечисления.ПорядкиОкругленияОтчетности.Окр1000);
ПорядкиОкругленияОтчетности.Вставить(
"ПеречислениеПорядкиОкругленияОтчетностиОкр1000000", Перечисления.ПорядкиОкругленияОтчетности.Окр1000000);
Инициализация(Параметры.БезОткрытияФормы);
ОбновитьИнформационнуюПанельБРО();
ИнициализироватьВыводСтатусовИВажныхСообщений_85();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСтруктуруЗависимыхЯчеекДляАвторасчета()
СтруктураЗависимыхЯчеекДляАвторасчета = Новый Структура;
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000303", "П000010000103;П000010000203");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000304", "П000010000104;П000010000204");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000305", "П000010000105;П000010000205");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000306", "П000010000106;П000010000206");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000010000803", "П000010000503;П000010000603;П000010000703");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П00011ОСВЭД08", "П00011ОСВЭД02;П00011ОСВЭД03;П00011ОСВЭД05;П00011ОСВЭД06;П00011ОСВЭД07");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П00011ОСВЭД09", "П00011ОСВЭД11;П00011ОСВЭД13;П00011ОСВЭД15;П00011ОСВЭД17");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П00011ОСВЭД10", "П00011ОСВЭД12;П00011ОСВЭД14;П00011ОСВЭД16;П00011ОСВЭД18");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П00011ОСВЭД19", "П00011ОСВЭД20;П00011ОСВЭД21;П00011ОСВЭД22;П00011ОСВЭД23;П00011ОСВЭД24");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П00011ОСВЭД21", "П00011ОСВЭД22;П00011ОСВЭД23;П00011ОСВЭД24");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000109", "П000110000111;П000110000113;П000110000115;П000110000117");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000110", "П000110000112;П000110000114;П000110000116;П000110000118");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000119", "П000110000120;П000110000121;П000110000122;П000110000123;П000110000124");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000110000121", "П000110000122;П000110000123;П000110000124");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020000108", "П000020000110;П000020000112;П000020000114");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020000109", "П000020000111;П000020000113;П000020000115");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000020000119", "П000020000105;П000020000116;П000020000117;П000020000118");
СтруктураЗависимыхЯчеекДляАвторасчета.Вставить("П000030000403", "П000030000103;П000030000303");
КонецПроцедуры
&НаСервере
Процедура Инициализация(БезОткрытияФормы = Ложь) Экспорт
СтруктураРеквизитовФормы.мБезОткрытияФормы = БезОткрытияФормы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ДобавитьПризнакПериодОтчетаВходитВПервыйКвартал(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы);
ЗаполнитьСтруктуруЗависимыхЯчеекДляАвторасчета();
ЗаполнитьНачальныеНастройки();
ФормироватьСтруктуруСвойствСтраниц();
СформироватьДеревоРазделовОтчетаНаСервере();
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
Если НЕ БезОткрытияФормы Тогда
СформироватьСпискиВыбора();
КонецЕсли;
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
ЗаполнитьПустыеСтруктурыДанных();
НачальнаяПодготовкаФормы();
ИзменитьВариантыЗаполненияПоказателейТаблица2(ЭтаФорма);
Если СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
РасчетВСтруктуре(ЭтаФорма, "Таблица2");
КонецЕсли;
ОбъектОтчета.УстановитьРазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
СтруктураДанныхТаблица1);
УстановитьДоступностьОбластей();
РегламентированнаяОтчетность.ДобавитьКнопкуПрисоединенныеФайлы(ЭтаФорма);
РегламентированнаяОтчетностьКлиентСервер.ПриИнициализацииФормыРегламентированногоОтчета(ЭтаФорма, "ФСС");
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗначениеТаймера = ЗначениеТаймера();
ЗаполнитьАвтоНаСервере();
ЗаписатьЗамер(ЗначениеТаймера);
КонецЕсли;
РегламентированнаяОтчетность.ПриИнициализации(ЭтотОбъект,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ИзменитьВариантыЗаполненияПоказателейТаблица2(Форма)
ВариантыЗаполненияТаблица2 = Форма.ТаблицаВариантыЗаполненияТаблица2[0].ТаблицаВариантовЗаполнения;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьВариантыЗаполненияПоказателейТаблицы2Формы4ФСС(
ВариантыЗаполненияТаблица2, Форма.СтруктураРеквизитовФормы);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьНачальныеНастройки() Экспорт
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ТаблицаСоставПоказателей = ДанныеФормыВЗначение(мТаблицаСоставПоказателей, Тип("ТаблицаЗначений"));
ОбъектОтчета.СформироватьВариантыЗаполнения(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы,
мСтруктураВариантыЗаполнения,
ТаблицаСоставПоказателей);
ЗначениеВДанныеФормы(ТаблицаСоставПоказателей, мТаблицаСоставПоказателей);
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ].Добавить();
ЗначениеВДанныеФормы(ВариантЗаполнения.Значение[0],
ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ][0].ТаблицаВариантовЗаполнения);
мСтруктураВариантыЗаполнения.Вставить(ВариантЗаполнения.Ключ, ВариантЗаполнения.Ключ);
мСтруктураВариантыЗаполненияЭталон.Вставить(ВариантЗаполнения.Ключ, ВариантЗаполнения.Ключ);
КонецЦикла;
ЗначениеВДанныеФормы(ОбъектОтчета.СтруктураСтраницОтчета(СтруктураРеквизитовФормы.мВыбраннаяФорма),
ЭтаФорма["мДеревоСтраницОтчета"]);
КонецПроцедуры
&НаСервере
Процедура ФормироватьСтруктуруСвойствСтраниц() Экспорт
мСвойстваРазделовДекларации.ПолучитьЭлементы().Очистить();
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Титульный";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Ложь;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Ложь;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица92";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдГруппы92;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица1";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица1_1";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдГруппы11;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица2";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
НовСтр = СтрокаУровня1.МногострочностьВРазделе.Добавить();
НовСтр.ИдГруппы = СтруктураРеквизитовФормы.ИдГруппы2;
НовСтр.Область = "МногострочнаяЧасть";
НовСтр.ВысотаСтроки = 1;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица3";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
СтрокаУровня1 = мСвойстваРазделовДекларации.ПолучитьЭлементы().Добавить();
СтрокаУровня1.ИмяСтраницы = "Таблица4";
СтрокаУровня1.СохранятьМногострКакТЗ = Неопределено;
СтрокаУровня1.МногостраничностьВРазделе = Ложь;
СтрокаУровня1.ОчищатьРаздел = Истина;
СтрокаУровня1.ИмяПредставления = "";
СтрокаУровня1.ПредставлениеДанных = Ложь;
СтрокаУровня1.РазделОбязателенДляВыгрузки = Неопределено;
СтрокаУровня1.РазделЯвляетсяАвтозаполняемым = Истина;
КонецПроцедуры
&НаСервере
Процедура СформироватьДеревоРазделовОтчетаНаСервере() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура СформироватьДеревоРазделовОтчетаНаКлиенте() Экспорт
СформироватьДеревоРазделовОтчета(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура СформироватьДеревоРазделовОтчета(Форма)
Форма["РазделыОтчета"].ПолучитьЭлементы().Очистить();
Для Каждого ЭлементДереваСтраницОтчета Из Форма["мДеревоСтраницОтчета"].ПолучитьЭлементы() Цикл
Если ЭлементДереваСтраницОтчета.ПоказатьСтраницу = 1 Тогда
ЭлементРазделовОтчета = Форма["РазделыОтчета"].ПолучитьЭлементы().Добавить();
ЭлементРазделовОтчета.КолонкаРазделыОтчета = ЭлементДереваСтраницОтчета.Представление;
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементДереваСтраницОтчета.ИмяСтраницы;
ЭлементРазделовОтчета.ИндексКартинки = 1;
ЭлементРазделовОтчета.РазделМногостраничный = Ложь;
ЭлементРазделовОтчета.РазделМногострочный = РегламентированнаяОтчетностьКлиентСервер.СвойствоОпределено(
Форма, "мТаблицаМногострочныхРазделов");
НайденноеЗначение = Неопределено;
Если Форма["мСтруктураМногостраничныхРазделов"].Свойство(
ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим, НайденноеЗначение) Тогда
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = Форма[НайденноеЗначение];
ЭлементРазделовОтчета.ИндексКартинки = 0;
ЭлементРазделовОтчета.РазделМногостраничный = Истина;
Для НомерСтраницы = 1 По НайденноеЗначение.Количество() Цикл
СтраницаРазделаОтчета = ЭлементРазделовОтчета.ПолучитьЭлементы().Добавить();
СтраницаРазделаОтчета.КолонкаРазделыОтчета = "Стр. " + НомерСтраницы;
СтраницаРазделаОтчета.КолонкаРазделыОтчетаСокрНаим = ЭлементРазделовОтчета.КолонкаРазделыОтчетаСокрНаим;
СтраницаРазделаОтчета.КолонкаНомерСтраницыРазделаОтчета = НомерСтраницы;
СтраницаРазделаОтчета.ИндексКартинки = 1;
СтраницаРазделаОтчета.РазделМногостраничный = ЭлементРазделовОтчета.РазделМногостраничный;
СтраницаРазделаОтчета.РазделМногострочный = ЭлементРазделовОтчета.РазделМногострочный;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура СформироватьСпискиВыбора()
МакетСоставаПоказателей = ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет("СпискиВыбора2022Кв2");
КоллекцияСписковВыбора = Новый Соответствие;
Для Каждого Область Из МакетСоставаПоказателей.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Строки Тогда
Если Область.Имя = "КодыПоОКВЭД" Тогда
НомСтроки = Область.Верх - 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" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Ложь;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветЖелтый;
ТабличныйДокумент.Области.ОргПодписантФамилия.Значение = "";
КонецЕсли;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, ИмяРаздела);
КонецПроцедуры
&НаКлиенте
Процедура ВвестиПоказатели(РезультатВыбора, ДополнительныеПараметры) Экспорт
Если РезультатВыбора = Неопределено Тогда
Возврат;
КонецЕсли;
Область = ДополнительныеПараметры.Область;
КолонкаДляПоиска = ДополнительныеПараметры.КолонкаДляПоиска;
РезультатВыбора.Колонка2 = СтрЗаменить(РезультатВыбора.Колонка2, "Пустое значение", "");
РезультатВыбора.Колонка4 = ?(РезультатВыбора.Колонка4 = "", 0, Число(РезультатВыбора.Колонка4));
Если КолонкаДляПоиска = "Колонка1" Тогда
Область.Значение = РезультатВыбора.Колонка1;
Если СтрНачинаетсяС(Область.Имя, "П00011ОСВЭД03") Тогда
Обл = ТабличныйДокумент.Области.Найти("П00011ОСВЭД02");
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка2;
КонецЕсли;
Обл = ТабличныйДокумент.Области.Найти("П00011ОСВЭД05");
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(Область.Имя, "П000110000103") Тогда
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000110000103", "П000110000102"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка2;
КонецЕсли;
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000110000103", "П000110000105"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(Область.Имя, "П000020000105") Тогда
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000020000105", "П000020000116"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
КонецЕсли;
ИначеЕсли КолонкаДляПоиска = "Колонка2" Тогда
Область.Значение = РезультатВыбора.Колонка2;
Если СтрНачинаетсяС(Область.Имя, "П00011ОСВЭД02") Тогда
Обл = ТабличныйДокумент.Области.Найти("П00011ОСВЭД03");
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка1;
КонецЕсли;
Обл = ТабличныйДокумент.Области.Найти("П00011ОСВЭД05");
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
ИначеЕсли СтрНачинаетсяС(Область.Имя, "П000110000102") Тогда
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000110000102", "П000110000103"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка1;
КонецЕсли;
Обл = ТабличныйДокумент.Области.Найти(СтрЗаменить(Область.Имя, "П000110000102", "П000110000105"));
Если Обл <> Неопределено Тогда
Обл.Значение = РезультатВыбора.Колонка4;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Модифицированность = Истина;
ИмяОбласти = Область.Имя;
ПозицияПодстроки = СтрНайти(ИмяОбласти, "_");
Если ПозицияПодстроки > 0 Тогда
ИмяОбласти = Лев(ИмяОбласти, ПозицияПодстроки - 1);
КонецЕсли;
РасчетНаКлиенте(Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, ИмяОбласти);
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма,
Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
КонецПроцедуры
&НаСервере
Процедура НачальнаяПодготовкаФормы()
Перем ИсходноеКоличествоСтрокГруппы;
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
Если СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мДокументВосстановлен = Ложь;
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
СтруктураРеквизитовФормы.ФлагСохранения = Ложь;
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
СтруктураРеквизитовФормы.ВидДокумента = 0;
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
НачальныеОперацииСМногострочнымиБлоками();
ОбъектОтчета.СформироватьСтруктуруДокУпПред(СтруктураРеквизитовФормы.мВыбраннаяФорма, мСтруктураДокУпПред);
Если СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено Тогда
ВосстановитьСохраненныеДанные();
ДатаПодписи = ТекущаяДатаСеанса();
Иначе
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы Тогда
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = Перечисления.ПорядкиОкругленияОтчетности.Окр1;
СтруктураРеквизитовФормы.мДелитель = 1;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = 2;
КопироватьДанныеФормы(мДеревоСтраницОтчета, мДеревоВыбранныхСтраниц);
КонецЕсли;
Модифицированность = Истина;
Иначе
ВосстановитьСохраненныеДанные();
Если ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСкопированаФорма) Тогда
СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено;
ДатаПодписи = ТекущаяДатаСеанса();
Модифицированность = Истина;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
РегламентированнаяОтчетность.БлокировкаИлиЗапретРедактированияОтчета(ЭтотОбъект);
КонецЕсли;
КонецЕсли;
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
НастройкиВидимости = РегламентированнаяОтчетность.НастройкиВидимостиЭлементовФормы(ЭтаФорма);
СтруктураРеквизитовФормы.Вставить("НастройкиВидимостиЭлементовФормы", НастройкиВидимости);
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуЗаполнить Тогда
Элементы.Заполнить.Видимость = Ложь;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуЗаполнить Тогда
Элементы.Заполнить.Видимость = СтруктураРеквизитовФормы.НастройкиВидимостиЭлементовФормы.ПостояннаяВидимость;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.ОтображатьКнопкуРасшифровать Тогда
Элементы.Расшифровать.Видимость = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюГруппаРасшифровать.Видимость = Ложь;
КонецЕсли;
ОбъектОтчета.ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено
Или СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация
ИЛИ СтруктураРеквизитовФормы.СформироватьФормуОтчетаАвтоматически Тогда
ЗаполнитьДатуВЯчейкахНаСервере();
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, , Истина);
Иначе
РегламентированнаяОтчетность.ПолучитьЗначениеОКВЭД(ДатаПодписи, СтруктураРеквизитовФормы);
КонецЕсли;
Для Каждого СтрокаУровня1 Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
НазваниеСтраницы = СтрокаУровня1.ИмяСтраницы;
МногостраничностьВРазделе = СтрокаУровня1.МногостраничностьВРазделе;
Если (СтруктураРеквизитовФормы.мДокументВосстановлен) И (МногостраничностьВРазделе) Тогда
Продолжить;
КонецЕсли;
УстановитьЦветФонаЯчейкиНаСервере(,, НазваниеСтраницы);
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура УстановитьДоступностьОбластей()
Если ТабличныйДокумент.Области.ПрПодп.Значение = "1" Тогда
ТабличныйДокумент.Области.ДокУпПред.Защита = Истина;
ТабличныйДокумент.Области.ДокУпПред.ЦветФона = СтруктураРеквизитовФормы.ЦветБелый;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура НачальныеОперацииСМногострочнымиБлоками()
Перем ИсходноеКоличествоСтрокГруппы;
Для Каждого ЭлементСтруктуры Из мСтруктураМногострочныхРазделов Цикл
ИмяГруппы = ЭлементСтруктуры.Ключ;
СтруктураГруппы = ЭтаФорма[ЭлементСтруктуры.Значение];
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
Для НСтр = 1 По ИсходноеКоличествоСтрокГруппы Цикл
СтруктураГруппы.Добавить();
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьДатуВЯчейкахНаСервере() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьДатуВЯчейкахНаКлиенте() Экспорт
ЗаполнитьДатуВЯчейках(ЭтаФорма);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ЗаполнитьДатуВЯчейках(Форма)
Форма.ТабличныйДокумент.Области.ДатаПодписи.Значение = Форма.ДатаПодписи;
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьСведенияОбОрганизации()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи,
Истина);
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьПустыеСтруктурыДанных()
СохрТабличныйДокумент = Новый ТабличныйДокумент;
СохрТабличныйДокумент.Вывести(ТабличныйДокумент);
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе
И (ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
ИначеЕсли Раздел.МногостраничностьВРазделе
И (ЭтаФорма[мСтруктураМногостраничныхРазделов[Раздел.ИмяСтраницы]][0].Данные.Количество() = 0) Тогда
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + Раздел.ИмяСтраницы));
СохранитьДанныеРаздела(Раздел.ИмяСтраницы, Ложь);
КонецЕсли;
КонецЦикла;
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(СохрТабличныйДокумент);
КонецПроцедуры
&НаСервере
Процедура СохранитьДанныеРаздела(НаимРаздела, ОчищатьРазделЕслиЕстьМногострочность, ИзменятьАктивнуюСтраницу = Истина)
Если НаимРаздела = "Таблица92" ИЛИ НаимРаздела = "Таблица1_1" ИЛИ НаимРаздела = "Таблица2" Тогда
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(НаимРаздела);
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
Иначе
ЭтаФорма["СтруктураДанных" + НаимРаздела] = СобратьДанныеТекущегоТаблПоля(ЭтаФорма, "ТабличныйДокумент");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция СобратьДанныеТекущегоТаблПоляНаСервере(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиенте
Функция СобратьДанныеТекущегоТаблПоляНаКлиенте(ИмяТабличногоПоля) Экспорт
Возврат СобратьДанныеТекущегоТаблПоля(ЭтаФорма, ИмяТабличногоПоля);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция СобратьДанныеТекущегоТаблПоля(Форма, ИмяТабличногоПоля) Экспорт
СтруктураДанныхПоля = Новый Структура;
Для Инд = 0 По Форма[ИмяТабличногоПоля].Области.Количество() - 1 Цикл
ТекущаяОбласть = Форма[ИмяТабличногоПоля].Области[Инд];
Если Не ТекущаяОбласть.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Продолжить;
КонецЕсли;
Если ТекущаяОбласть.СодержитЗначение <> Истина Тогда
Продолжить;
КонецЕсли;
ИмяПоказателя = ТекущаяОбласть.Имя;
ЗначениеПоказателя = ТекущаяОбласть.Значение;
СтруктураДанныхПоля.Вставить(ИмяПоказателя, ЗначениеПоказателя);
КонецЦикла;
Возврат СтруктураДанныхПоля;
КонецФункции
&НаКлиенте
Процедура ОчиститьТабличноеПолеНаКлиенте(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
Если ВыбТабличноеПолеИмя = "Таблица92"
ИЛИ ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчиститьТабличноеПолеНаСервере(ВыбТабличноеПолеИмя) Экспорт
ОчиститьТабличноеПоле(ЭтаФорма, ВыбТабличноеПолеИмя);
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры" , " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы" , " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего" , " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи" , "");
мСтруктураДокУпПред.Вставить("КемВыдан" , " ");
Если ВыбТабличноеПолеИмя = "Титульный" Тогда
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПоказатьПериод(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
СтруктураРеквизитовФормы);
КонецЕсли;
Если ВыбТабличноеПолеИмя = "Таблица92"
ИЛИ ВыбТабличноеПолеИмя = "Таблица1_1"
ИЛИ ВыбТабличноеПолеИмя = "Таблица2" Тогда
ОтрисоватьЗначкиУдаленияСтрок(ЭтаФорма.ТабличныйДокумент);
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя)
РегламентированнаяОтчетностьКлиентСервер.ОчиститьТабличноеПоле(Форма, ВыбТабличноеПолеИмя);
КонецПроцедуры
&НаСервере
Процедура ДатаПодписиПриИзмененииНаСервере()
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи, Истина);
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ЗаполнитьДатуВЯчейкахНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
КонецПроцедуры
&НаКлиенте
Процедура Обновить(Команда)
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
ОбновитьНаСервере();
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Ложь;
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура ОбновитьНаСервере()
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
ОбъектОтчета.ЗаполнитьСведенияОбОрганизации(СтруктураРеквизитовФормы.мВыбраннаяФорма,
ТабличныйДокумент,
мСтруктураДокУпПред,
СтруктураРеквизитовФормы,
ДатаПодписи);
СтруктураДанныхТаблица1.Вставить("П000010000503",
ОбъектОтчета.РазмерСтраховогоТарифа(СтруктураРеквизитовФормы.мВыбраннаяФорма,
СтруктураРеквизитовФормы));
РасчетВСтруктуре(ЭтаФорма, "Таблица1");
КонецПроцедуры
&НаКлиенте
Процедура РазделыОтчетаПриАктивизацииСтроки(Элемент)
Если Элемент.ТекущиеДанные = Неопределено
ИЛИ Элемент.ТекущаяСтрока = СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета Тогда
Возврат;
КонецЕсли;
КМенюТД = Элементы.ТабличныйДокумент.КонтекстноеМеню;
СтруктураРеквизитовФормы.ТекущаяСтрокаРазделовОтчета = Элемент.ТекущаяСтрока;
Если СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере Тогда
Если Элемент.ТекущиеДанные.РазделМногостраничный Тогда
Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета =
?(Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = Неопределено
ИЛИ Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета = 0, 1, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, Элемент.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета);
Иначе
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Истина;
КонецЕсли;
Элементы.Обновить.Доступность = ?(Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Титульный", Истина, Ложь);
Если Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица92"
ИЛИ Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица1_1"
ИЛИ Элемент.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим = "Таблица2" Тогда
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Истина;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Истина;
Иначе
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Видимость = Ложь;
КМенюТД.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюГруппаСтроки.ПодчиненныеЭлементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Видимость = Ложь;
КонецЕсли;
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТабличныйДокумент.Область(1, 1);
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетСтраницыВТабличныйДокументНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Истина);
ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета);
СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекРаздела;
КонецПроцедуры
&НаСервере
Процедура ВывестиМакетВТаблДокНаСервере(ИмяТекРаздела, НомерСтраницыРазделаОтчета)
ТабличныйДокумент.Очистить();
ТабличныйДокумент.Вывести(ОбъектОтчета(ЭтаФорма.ИмяФормы).ПолучитьМакет(Сред(ЭтаФорма.ИмяФормы, СтрНайти(ЭтаФорма.ИмяФормы, "ФормаОтчета")) + "_" + ИмяТекРаздела));
Если ОбщегоНазначения.ПодсистемаСуществует("РегламентированнаяОтчетность.Интерфейс85") Тогда
МодульРегламентированнаяОтчетностьИнтерфейс85 = ОбщегоНазначения.ОбщийМодуль("РегламентированнаяОтчетностьИнтерфейс85");
МодульРегламентированнаяОтчетностьИнтерфейс85.УстановитьТипОтображенияРедактируемойЯчейкиТабличногоДокумента(ТабличныйДокумент);
КонецЕсли;
ТекТабличноеПоле = ЭтаФорма.ТабличныйДокумент;
Если ИмяТекРаздела = "Таблица92" ИЛИ ИмяТекРаздела = "Таблица1_1" ИЛИ ИмяТекРаздела = "Таблица2" Тогда
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяТекРаздела);
СтруктураГруппы = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
Иначе
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
Исключение
КонецПопытки;
КонецЦикла;
КонецЕсли;
Если ИмяТекРаздела = "Титульный" Тогда
УстановитьДоступностьОбластей();
УстановитьЦветФонаЯчейкиНаСервере(,, ИмяТекРаздела);
Иначе
УстановитьЦветФонаЯчейкиНаСервере(,, ИмяТекРаздела);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОтрисоватьЗначкиУдаленияСтрок(ТабДок)
МассивОбластейСДопСтроками = Новый Массив;
Для Каждого ОбластьТД Из ТабДок.Области Цикл
Если СтрЧислоВхождений(ОбластьТД.Имя, "УдалитьСтроку") > 0 Тогда
Если СтрЧислоВхождений(ОбластьТД.Имя, "_2") > 0 Тогда
МассивОбластейСДопСтроками.Добавить(Лев(ОбластьТД.Имя, 26));
КонецЕсли;
КонецЕсли;
КонецЦикла;
Для Каждого ОбластьТД Из ТабДок.Области Цикл
Если СтрЧислоВхождений(ОбластьТД.Имя, "УдалитьСтроку") > 0 Тогда
Если МассивОбластейСДопСтроками.Найти(Лев(ОбластьТД.Имя, 26)) = Неопределено Тогда
ОбластьТД.Гиперссылка = Ложь;
ОбластьТД.Текст = "";
Иначе
ОбластьТД.Гиперссылка = Истина;
ОбластьТД.Текст = "х";
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиРазделВТабличныйДокументНаКлиенте(ИмяГруппы, СтруктураГруппы, ИмяТекРаздела) Экспорт
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
КонецПроцедуры
&НаСервере
Процедура ВывестиРазделВТабличныйДокументНаСервере(ИмяГруппы, СтруктураГруппы, ИмяТекРаздела) Экспорт
ВывестиРазделВТабличныйДокумент(ЭтаФорма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ВывестиРазделВТабличныйДокумент(Форма, ИмяГруппы, СтруктураГруппы, ИмяТекРаздела)
Перем ИсходноеКоличествоСтрокГруппы;
Форма.мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
ТекущееКоличествоСтрокГруппы = СтруктураГруппы.Количество();
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = Форма[ТекТабличноеПолеИмя];
Если ИсходноеКоличествоСтрокГруппы > ТекущееКоличествоСтрокГруппы Тогда
Для Инд = 1 По (ИсходноеКоличествоСтрокГруппы - ТекущееКоличествоСтрокГруппы) Цикл
СтруктураГруппы.Добавить();
КонецЦикла;
КонецЕсли;
Если ТекущееКоличествоСтрокГруппы > ИсходноеКоличествоСтрокГруппы Тогда
Форма.ДобавитьНеобходимоеКоличествоДопСтрокНаСервере(
ТекТабличноеПоле, ТекТабличноеПолеИмя, ИсходноеКоличествоСтрокГруппы,
ТекущееКоличествоСтрокГруппы, ИмяГруппы, СтруктураГруппы);
Форма[ТекТабличноеПолеИмя] = ТекТабличноеПоле;
КонецЕсли;
ВывестиЗначенияВМногострочнуюЧасть(Форма, СтруктураГруппы, ТекТабличноеПоле, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьОтчет(Команда)
Если Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
Возврат;
КонецЕсли;
СохранитьНаКлиенте();
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиенте(Автосохранение = Ложь, ВыполняемоеОповещение=Неопределено) Экспорт
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
Если ТабличныйДокумент.Области.НомерКорректировки.Значение = "" Тогда
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
КонецЕсли;
Вариант = Число(ТабличныйДокумент.Области.НомерКорректировки.Значение);
Иначе
Вариант = Число(СтруктураДанныхТитульный.НомерКорректировки);
КонецЕсли;
Если НЕ РегламентированнаяОтчетностьКлиент.ПриЗаписиРегламентированногоОтчетаНаКлиенте(ЭтаФорма, , Автосохранение, Вариант) Тогда
Возврат;
КонецЕсли;
ПодобныйОтчетСуществует = Ложь;
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = Ложь;
Если Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
НаименованиеТекущегоРаздела = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
Иначе
НаименованиеТекущегоРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
КонецЕсли;
РезультатСохранения = ПередСохранением(, ПодобныйОтчетСуществует, Вариант, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, Автосохранение, НаименованиеТекущегоРаздела);
ВидДокументаНомерКорректировкиИзменен = Неопределено;
Если ПодобныйОтчетСуществует И Автосохранение Тогда
Возврат;
КонецЕсли;
НуженВопросПередСохранением = (ПодобныйОтчетСуществует ИЛИ ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
Если НуженВопросПередСохранением Тогда
СохранитьНаКлиентеСВопросом(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, ПодобныйОтчетСуществует);
Иначе
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиентеСВопросом(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, ПодобныйОтчетСуществует)
Если ПодобныйОтчетСуществует Тогда
Кнопки = Новый СписокЗначений;
Кнопки.Добавить(КодВозвратаДиалога.Да, "Сохранить");
Кнопки.Добавить(КодВозвратаДиалога.Нет, "Отмена");
ТекстВопроса = СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Отчет с видом %1 уже существует.
|Сохранить отчет с таким же видом?'"), ?(Вариант = 0, """Первичный""", """Корректирующий/" + Вариант + """"));
ДополнительныеПараметры = Новый Структура("Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки", Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросСохранитьОтчетСТакимЖеВидомЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, Кнопки, , Кнопки.Получить(1).Значение);
Иначе
СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросСохранитьОтчетСТакимЖеВидомЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
Автосохранение = ДополнительныеПараметры.Автосохранение;
Вариант = ДополнительныеПараметры.Вариант;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = ДополнительныеПараметры.ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки;
Ответ = РезультатВопроса;
Если Ответ = КодВозвратаДиалога.Нет Тогда
Возврат;
КонецЕсли;
СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки);
КонецПроцедуры
&НаКлиенте
Процедура СохранитьНаКлиентеСВопросомПродолжение(Автосохранение, Вариант, ВыполняемоеОповещение, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки)
Если ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки Тогда
ПараметрыФормы = Новый Структура();
ПараметрыФормы.Вставить("ВидОтчета", Вариант);
ФормаВопроса = РегламентированнаяОтчетностьКлиент.ПолучитьОбщуюФормуПоИмени("ВопросПриИзмененииВидаДокументаНомераКорректировки", ПараметрыФормы);
ФормаВопроса.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ДополнительныеПараметры = Новый Структура("Автосохранение, Вариант, ВыполняемоеОповещение", Автосохранение, Вариант, ВыполняемоеОповещение);
ОписаниеОповещения = Новый ОписаниеОповещения("ВопросПриИзмененииВидаДокументаЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФормаВопроса.ОписаниеОповещенияОЗакрытии = ОписаниеОповещения;
ФормаВопроса.Открыть();
Иначе
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сохраняется %1...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Записать);
РезультатСохранения = Сохранить(Автосохранение, , Вариант, Ложь, Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПриИзмененииВидаДокументаЗавершение(КодВозврата, ДополнительныеПараметры) Экспорт
Автосохранение = ДополнительныеПараметры.Автосохранение;
Вариант = ДополнительныеПараметры.Вариант;
ВыполняемоеОповещение = ДополнительныеПараметры.ВыполняемоеОповещение;
Если КодВозврата = КодВозвратаДиалога.Да
ИЛИ КодВозврата = КодВозвратаДиалога.Нет Тогда
ВидДокументаНомерКорректировкиИзменен = ?(КодВозврата = КодВозвратаДиалога.Да, Истина, Ложь);
Иначе
Возврат;
КонецЕсли;
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(НСтр("ru='Сохраняется %1...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Записать);
РезультатСохранения = Сохранить(Автосохранение, , Вариант, ВидДокументаНомерКорректировкиИзменен, Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим);
ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСохраненияНаКлиенте(ВыполняемоеОповещение, РезультатСохранения)
КлючУникальности = СтруктураРеквизитовФормы.мСохраненныйДок;
Если РезультатСохранения Тогда
РегламентированнаяОтчетностьКлиент.ПослеЗаписиРегламентированногоОтчета(ЭтаФорма);
Если ВыполняемоеОповещение <> Неопределено Тогда
ВыполнитьОбработкуОповещения(ВыполняемоеОповещение);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ПередСохранением(КодИФНС = "не применимо", ПодобныйОтчетСуществует, Вариант, ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки, Автосохранение, НаимТекРаздела)
Если РегламентированнаяОтчетность.БылиИзмененыКлючевыеРеквизитыОтчета(ЭтаФорма, КодИФНС)
И РегламентированнаяОтчетность.СуществуетДокументСАналогичнымиРеквизитами(ЭтаФорма, КодИФНС) Тогда
ПодобныйОтчетСуществует = Истина;
КонецЕсли;
СтруктураРеквизитовФормы.мЗаписываетсяНовыйДокумент = (СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено ИЛИ СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено);
Если Вариант <> Неопределено И ((СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено) ИЛИ (СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено) ИЛИ (Вариант <> СтруктураРеквизитовФормы.мВариант)) Тогда
Если СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено ИЛИ СтруктураРеквизитовФормы.мСкопированаФорма <> Неопределено Тогда
ИначеЕсли Вариант <> СтруктураРеквизитовФормы.мВариант Тогда
ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки = Истина;
КонецЕсли;
КонецЕсли;
Если ПодобныйОтчетСуществует
ИЛИ ОткрытьФормуВопросаПриИзмененииВидаДокументаНомераКорректировки Тогда
Возврат Ложь;
КонецЕсли;
Возврат Сохранить(Автосохранение, , Вариант, , НаимТекРаздела);
КонецФункции
&НаСервере
Функция Сохранить(Автосохранение = Ложь, КодИФНС = "не применимо", Вариант,
ВидДокументаНомерКорректировкиИзменен = Неопределено, НаимТекРаздела) Экспорт
ДанныеДляРазблокирования = Неопределено;
Если ОбщегоНазначенияКлиентСервер.СвойствоСтруктуры(СтруктураРеквизитовФормы, "ЗаблокированоВДругомСеансе", Ложь) Тогда
Возврат Ложь;
КонецЕсли;
Если НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы Тогда
ДанныеДляРазблокирования = Новый Структура("Ключ,ИдФормы",
СтруктураРеквизитовФормы.мСохраненныйДок, ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.ПолучитьОбъект();
КонецЕсли;
Если НЕ РегламентированнаяОтчетность.ПриЗаписиРегламентированногоОтчетаНаСервере(
ЭтаФорма, КодИФНС, Автосохранение, Вариант, ВидДокументаНомерКорректировкиИзменен,
СтруктураРеквизитовФормы.мСохраненныйДок) Тогда
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Возврат Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мВариант = Вариант;
СохранитьДанныеРаздела(НаимТекРаздела, Ложь);
ЗаполнитьПустыеСтруктурыДанных();
ОбъектОтчета = ОбъектОтчета(ЭтаФорма.ИмяФормы);
РазделыРеглОтчета = ОбъектОтчета.РазделыРеглОтчета(СтруктураРеквизитовФормы.мВыбраннаяФорма);
РазделыРеглОтчета.Титульный.Данные = СтруктураДанныхТитульный;
РазделыРеглОтчета.Таблица92.Данные = СтруктураДанныхТаблица92;
РазделыРеглОтчета.Таблица1.Данные = СтруктураДанныхТаблица1;
РазделыРеглОтчета.Таблица1_1.Данные = СтруктураДанныхТаблица1_1;
РазделыРеглОтчета.Таблица2.Данные = СтруктураДанныхТаблица2;
РазделыРеглОтчета.Таблица3.Данные = СтруктураДанныхТаблица3;
РазделыРеглОтчета.Таблица4.Данные = СтруктураДанныхТаблица4;
РазделыРеглОтчета.Таблица92.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица92.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
РазделыРеглОтчета.Таблица1_1.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица1_1.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
РазделыРеглОтчета.Таблица2.ДанныеДопСтрок =
ДанныеФормыВЗначение(ЭтаФорма[РазделыРеглОтчета.Таблица2.ИдентификаторДопСтрок], Тип("ТаблицаЗначений"));
СтруктураВариантыЗаполнения = Новый Структура;
Для Каждого ВариантЗаполнения Из мСтруктураВариантыЗаполнения Цикл
МассивВариантовЗаполненияСтраниц = Новый Массив;
Для Каждого СтрокаТаблицыВариантовЗаполнения Из ЭтаФорма["ТаблицаВариантыЗаполнения" + ВариантЗаполнения.Ключ] Цикл
МассивВариантовЗаполненияСтраниц.Добавить(ДанныеФормыВЗначение(
СтрокаТаблицыВариантовЗаполнения.ТаблицаВариантовЗаполнения, Тип("ТаблицаЗначений")));
КонецЦикла;
СтруктураВариантыЗаполнения.Вставить(ВариантЗаполнения.Ключ, МассивВариантовЗаполненияСтраниц);
КонецЦикла;
ПараметрыЗаписи = Новый Структура;
ПараметрыЗаписи.Вставить("ИсточникОтчета", Метаданные.Отчеты[Сред(Лев(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""),
СтрНайти(СтрЗаменить(ЭтаФорма.ИмяФормы, "Внешний", ""), ".Форма.")
- 1), 7)].Имя);
ПараметрыЗаписи.Вставить("ИмяФормыОтчета", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыЗаписи.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыЗаписи.Вставить("ДатаНачала", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыЗаписи.Вставить("ДатаОкончания", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыЗаписи.Вставить("СохраняемыйРеглОтчет", СтруктураРеквизитовФормы.мСохраненныйДок);
ПараметрыЗаписи.Вставить("ДатаПодписи", ДатаПодписи);
ПараметрыЗаписи.Вставить("ЕдиницаИзмерения", СтруктураРеквизитовФормы.ЕдиницаИзмерения);
ПараметрыЗаписи.Вставить("ТочностьЕдиницыИзмерения", СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения);
ПараметрыЗаписи.Вставить("Комментарий", Комментарий);
ПараметрыЗаписи.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыЗаписи.Вставить("СтруктураВариантыЗаполнения", СтруктураВариантыЗаполнения);
ПараметрыЗаписи.Вставить("ДокументУпПред", мСтруктураДокУпПред);
ПараметрыЗаписи.Вставить("ВерсияФормы", СтруктураРеквизитовФормы.мВерсияФормы);
ПараметрыЗаписи.Вставить("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
ПараметрыЗаписи.Вставить("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
ПараметрыЗаписи.Вставить("ФлажокОтклАвтоРасчет", СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыЗаписи.Вставить("ФлПроверятьСоотношенияПриПечатиИВыгрузки",
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
ПараметрыЗаписи.Вставить("ДеревоСтраницОтчета", РеквизитФормыВЗначение("мДеревоСтраницОтчета"));
ПараметрыЗаписи.Вставить("Вариант", СтруктураРеквизитовФормы.мВариант);
ПараметрыЗаписи.Вставить("РазделыОтчета", РазделыРеглОтчета);
ПараметрыЗаписи.Вставить("НаименованиеОтчета", СтруктураРеквизитовФормы.НаименованиеОтчета);
РегламентированнаяОтчетность.ПередЗаписьюНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
Если ОбъектОтчета.ЗаписатьДокумент(СтруктураРеквизитовФормы.мВыбраннаяФорма, ПараметрыЗаписи) = Ложь Тогда
Если НЕ Автосохранение Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = ПараметрыЗаписи.Ошибки[0];
Сообщение.Сообщить();
КонецЕсли;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Возврат Ложь;
КонецЕсли;
РегламентированнаяОтчетность.ПослеЗаписиНаСервере(ЭтотОбъект,
СтруктураРеквизитовФормы.мСохраненныйДок, Новый Структура);
РегламентированнаяОтчетность.СохранитьСтатусОтправкиРеглОтчета(ЭтаФорма);
Модифицированность = Ложь;
СтруктураРеквизитовФормы.мСохраненныйДок = СтруктураРеквизитовФормы.мСохраненныйДок.Ссылка;
Если НЕ СтруктураРеквизитовФормы.мБезОткрытияФормы
И НЕ СтруктураРеквизитовФормы.мСохраненныйДок = Неопределено Тогда
ЗаблокироватьДанныеДляРедактирования(СтруктураРеквизитовФормы.мСохраненныйДок, , ЭтаФорма.УникальныйИдентификатор);
КонецЕсли;
Если ДанныеДляРазблокирования <> Неопределено Тогда
РазблокироватьДанныеДляРедактирования(ДанныеДляРазблокирования.Ключ, ДанныеДляРазблокирования.ИдФормы);
КонецЕсли;
Возврат Истина;
КонецФункции
&НаСервере
Процедура ВосстановитьСохраненныеДанные()
Перем ДанныеМногострочныхРазделов;
Перем ДанныеМногостраничныхРазделов;
Перем ДанныеВариановАвтоЗаполнения;
Перем ПоказателиОтчета;
Перем ВерсияФормы;
Перем АвторасчетОтключен;
Перем ТаблицаМногостраничногоДокумента;
Если СтруктураРеквизитовФормы.Организация <> СтруктураРеквизитовФормы.мСохраненныйДок.Организация
И СтруктураРеквизитовФормы.Организация <> РегламентированнаяОтчетностьКлиентСервер.ПустоеЗначениеТипа("СправочникСсылка.Организации")
И СтруктураРеквизитовФормы.Организация <> Неопределено Тогда
СтруктураРеквизитовФормы.мВПрограммеИзмененаОрганизация = Истина;
Иначе
СтруктураРеквизитовФормы.Организация = СтруктураРеквизитовФормы.мСохраненныйДок.Организация;
КонецЕсли;
ДатаПодписи = СтруктураРеквизитовФормы.мСохраненныйДок.ДатаПодписи;
СтруктураРеквизитовФормы.ЕдиницаИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ЕдиницаИзмерения;
СтруктураРеквизитовФормы.ТочностьЕдиницыИзмерения = СтруктураРеквизитовФормы.мСохраненныйДок.ТочностьЕдиницыИзмерения;
Комментарий = СтруктураРеквизитовФормы.мСохраненныйДок.Комментарий;
СписокСохранения = СтруктураРеквизитовФормы.мСохраненныйДок.ДанныеОтчета.Получить();
ДеревоНастройкиСтраниц = СтруктураРеквизитовФормы.мСохраненныйДок.ДеревоНастройкиСтраниц.Получить();
Если НЕ ДеревоНастройкиСтраниц = Неопределено Тогда
Счетчик = 0;
Для Каждого СтрокаДерева Из ДеревоНастройкиСтраниц.Строки Цикл
ЭлементмДеревоСтраницОтчета = мДеревоСтраницОтчета.ПолучитьЭлементы().Получить(Счетчик);
Если СтрокаДерева.ИмяСтраницы = "Таблицы3_4" Тогда
СтрокаДерева.ИмяСтраницы = "Таблица3_4";
КонецЕсли;
Если СтрокаДерева.ИмяСтраницы = ЭлементмДеревоСтраницОтчета.ИмяСтраницы Тогда
Если НЕ СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление Тогда
СтрокаДерева.Представление = ЭлементмДеревоСтраницОтчета.Представление;
КонецЕсли;
Иначе
Продолжить;
КонецЕсли;
Счетчик = Счетчик + 1;
КонецЦикла;
Если ДеревоНастройкиСтраниц.Строки.Количество() > 1
И ДеревоНастройкиСтраниц.Строки[1].ИмяСтраницы <> "Таблица92" Тогда
НоваяСтрока = ДеревоНастройкиСтраниц.Строки.Вставить(1);
НоваяСтрока.ИмяСтраницы = "Таблица92";
НоваяСтрока.Представление = "Платежи";
НоваяСтрока.ОриентацияСтраницы = "Портрет";
НоваяСтрока.ВыводНаПечать = 0;
НоваяСтрока.ПоказатьСтраницу = 1;
КонецЕсли;
ЗначениеВРеквизитФормы(ДеревоНастройкиСтраниц.Скопировать(), "мДеревоСтраницОтчета");
КонецЕсли;
Если СписокСохранения.Свойство( "ДанныеМногострочныхРазделов", ДанныеМногострочныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногострочныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногострочныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, ЭтаФорма[НайденноеЗначение])
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеМногостраничныхРазделов", ДанныеМногостраничныхРазделов) Тогда
Для Каждого ЭлементСтруктуры Из ДанныеМногостраничныхРазделов Цикл
НайденноеЗначение = Неопределено;
мСтруктураМногостраничныхРазделов.Свойство(ЭлементСтруктуры.Ключ, НайденноеЗначение);
Если НЕ НайденноеЗначение = Неопределено Тогда
НайденноеЗначение = ЭтаФорма[НайденноеЗначение];
ЗначениеВДанныеФормы(ЭлементСтруктуры.Значение, НайденноеЗначение);
Если НайденноеЗначение[0].Свойство("Данные") Тогда
Для Каждого СтрокаТаблЗнач Из НайденноеЗначение Цикл
Если ТипЗнч(СтрокаТаблЗнач.Данные) = Тип("СписокЗначений") Тогда
СтрокаТаблЗнач.Данные.Очистить();
СтрокаТаблЗнач.Данные.Добавить(ЭлементСтруктуры.Значение[НайденноеЗначение.Индекс(СтрокаТаблЗнач)].Данные);
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если НайденноеЗначение[0].Свойство("ДанныеДопСтрок") Тогда
Ном = 0;
Для Каждого СтрокаТаблЗнач Из ЭлементСтруктуры.Значение Цикл
Если ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("Структура") Тогда
Для Каждого ЭлСтруктуры Из СтрокаТаблЗнач.ДанныеДопСтрок Цикл
ТаблЗнач = ЭлСтруктуры.Значение;
ЭлСтруктуры.Значение = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(ТаблЗнач, ЭлСтруктуры.Значение);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(ЭлСтруктуры.Значение);
КонецЦикла;
ИначеЕсли ТипЗнч(СтрокаТаблЗнач.ДанныеДопСтрок) = Тип("ТаблицаЗначений") Тогда
СтрокаТаблЗначДанныеДопСтрок = ЭтаФорма["Хранилище" + ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ЭлементСтруктуры.Ключ)].Добавить().Таблица;
ЗначениеВДанныеФормы(СтрокаТаблЗнач.ДанныеДопСтрок, СтрокаТаблЗначДанныеДопСтрок);
НайденноеЗначение[Ном].ДанныеДопСтрок.Добавить(СтрокаТаблЗначДанныеДопСтрок, "ДанныеФормыКоллекцияТаблицаДопСтрокРаздела");
КонецЕсли;
Ном = Ном + 1;
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Если СписокСохранения.Свойство("ДанныеВариантовАвтоЗаполнения", ДанныеВариановАвтоЗаполнения) Тогда
Если НЕ ДанныеВариановАвтоЗаполнения = Неопределено Тогда
мСтруктураВариантыЗаполнения.Очистить();
Для Каждого ЭлементСтруктуры Из ДанныеВариановАвтоЗаполнения Цикл
НаименованиеРаздела = ЭлементСтруктуры.Ключ;
Если ЭлементСтруктуры.Ключ = "Таблицы3_4" Тогда
НаименованиеРаздела = "Таблица3_4";
КонецЕсли;
мСтруктураВариантыЗаполнения.Вставить(НаименованиеРаздела, ЭлементСтруктуры.Ключ);
ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Очистить();
Для Каждого ЭлементМассива Из ЭлементСтруктуры.Значение Цикл
ТаблВарЗаполнения = ЭтаФорма["ТаблицаВариантыЗаполнения" + НаименованиеРаздела].Добавить().ТаблицаВариантовЗаполнения;
ЗначениеВДанныеФормы(ЭлементМассива, ТаблВарЗаполнения);
КонецЦикла;
КонецЦикла;
Если НЕ мСтруктураВариантыЗаполнения.Свойство("Таблица92") Тогда
мСтруктураВариантыЗаполнения.Вставить("Таблица92", "Таблица92");
КонецЕсли;
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство("ФлПодсчетСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
СписокСохранения.Свойство("ФлПроверятьСоотношенияПриПечатиИВыгрузки", СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = ?(СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Неопределено, Ложь, СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
СписокСохранения.Свойство("ФлОтклВыборЗначений", СтруктураРеквизитовФормы.мАвтоВыборКодов);
Если СтруктураРеквизитовФормы.мАвтоВыборКодов = Неопределено Тогда
СтруктураРеквизитовФормы.мАвтоВыборКодов = Ложь;
КонецЕсли;
СписокСохранения.Свойство("АвторасчетОтключен", АвторасчетОтключен);
Если АвторасчетОтключен = Неопределено Тогда
СписокСохранения.Свойство("Автозаполнение", АвторасчетОтключен);
КонецЕсли;
Если НЕ АвторасчетОтключен = Неопределено Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = АвторасчетОтключен;
КонецЕсли;
СписокСохранения.Свойство("ДокументУпПред", мСтруктураДокУпПред);
Если мСтруктураДокУпПред = Неопределено Тогда
мСтруктураДокУпПред = Новый Структура;
мСтруктураДокУпПред.Вставить("НаименованиеУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("СерияРимскиеЦифры", " ");
мСтруктураДокУпПред.Вставить("СерияРусскиеБуквы", " ");
мСтруктураДокУпПред.Вставить("НомерУдостоверяющего", " ");
мСтруктураДокУпПред.Вставить("ДатаВыдачи", "");
мСтруктураДокУпПред.Вставить("КемВыдан", " ");
КонецЕсли;
Если СписокСохранения.Свойство("ВерсияФормы", ВерсияФормы) Тогда
Если ВерсияФормы <> СтруктураРеквизитовФормы.мВерсияФормы Тогда
СтруктураРеквизитовФормы.ФлагСохранения = Истина;
ОбновитьПользовательскиеНастройки();
КонецЕсли;
КонецЕсли;
СписокСохранения.Свойство("ПоказателиОтчета", ПоказателиОтчета);
СформироватьДеревоРазделовОтчетаНаСервере();
Префикс = "ПолеТабличногоДокумента";
Для Каждого Раздел Из мСвойстваРазделовДекларации.ПолучитьЭлементы() Цикл
Если НЕ Раздел.МногостраничностьВРазделе Тогда
СтароеНаименованиеРаздела = Раздел.ИмяСтраницы;
Если СтароеНаименованиеРаздела = "Таблица3_4"
И НЕ ПоказателиОтчета.Свойство(Префикс + СтароеНаименованиеРаздела) Тогда
СтароеНаименованиеРаздела = "Таблицы3_4";
КонецЕсли;
Если НЕ ПоказателиОтчета.Свойство(Префикс + СтароеНаименованиеРаздела) Тогда
Продолжить;
КонецЕсли;
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] = ПоказателиОтчета[Префикс + СтароеНаименованиеРаздела];
Для Каждого ЭлементСтруктуры Из ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы] Цикл
Если НЕ ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Свойство(ЭлементСтруктуры.Ключ) Тогда
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Вставить(ЭлементСтруктуры.Ключ, ЭлементСтруктуры.Значение);
ЭтаФорма["СтруктураДанных" + Раздел.ИмяСтраницы].Удалить(ЭлементСтруктуры.Ключ);
ЭтаФорма[Лев(ЭлементСтруктуры.Ключ, 11)][Число(Прав(ЭлементСтруктуры.Ключ, 1)) - 1][Лев(ЭлементСтруктуры.Ключ, 13)]
= ЭлементСтруктуры.Значение;
КонецЕсли;
КонецЦикла;
КонецЕсли;
КонецЦикла;
ВосстановитьСведенияОбОрганизацииИзТитульногоЛистаСтарогоОбразца(ПоказателиОтчета);
ИмяТекРаздела = "Титульный";
Для Каждого ЭлСтруктуры Из ЭтаФорма["СтруктураДанных" + ИмяТекРаздела] Цикл
Попытка
Если ТабличныйДокумент.Области.Найти(ЭлСтруктуры.Ключ).Имя = "ДатаПодписи" Тогда
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ДатаПодписи;
Иначе
ТабличныйДокумент.Области[ЭлСтруктуры.Ключ].Значение = ЭлСтруктуры.Значение;
КонецЕсли;
Исключение
КонецПопытки;
КонецЦикла;
РегламентированнаяОтчетность.ОперацииПриВосстановленииРегламентированногоОтчета(ЭтаФорма);
СтруктураРеквизитовФормы.мДелитель = 1;
КопироватьДанныеФормы(мДеревоСтраницОтчета, мДеревоВыбранныхСтраниц);
ПривестиВСоответствиеЗначенияИзДопСтрокСтруктурамДанныхРазделов();
Модифицированность = Ложь;
СтруктураРеквизитовФормы.мДокументВосстановлен = Истина;
КонецПроцедуры
&НаСервере
Процедура ВосстановитьСведенияОбОрганизацииИзТитульногоЛистаСтарогоОбразца(ПоказателиОтчета)
ПоказателиТаблПоле = ПоказателиОтчета["ПолеТабличногоДокументаТитульный"];
Для Каждого Показатель Из ПоказателиТаблПоле Цикл
ИмяПоказателя = Показатель.Ключ;
Если ИмяПоказателя = "ОргФССКод_1" Тогда
СтруктураДанныхТитульный.Вставить("ОргФССКод");
Для Ном = 1 По 10 Цикл
СтруктураДанныхТитульный.ОргФССКод = СокрЛП(
СтруктураДанныхТитульный.ОргФССКод) + ПоказателиТаблПоле["ОргФССКод_" + Ном];
СтруктураДанныхТитульный.Удалить("ОргФССКод_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "КодПодчиненности_1" Тогда
СтруктураДанныхТитульный.Вставить("КодПодчиненности");
Для Ном = 1 По 5 Цикл
СтруктураДанныхТитульный.КодПодчиненности = СокрЛП(
СтруктураДанныхТитульный.КодПодчиненности) + ПоказателиТаблПоле["КодПодчиненности_" + Ном];
СтруктураДанныхТитульный.Удалить("КодПодчиненности_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ИНН1" Тогда
СтруктураДанныхТитульный.Вставить("ИНН");
Для Ном = 1 По 12 Цикл
СтруктураДанныхТитульный.ИНН = СокрЛП(СтруктураДанныхТитульный.ИНН) + ПоказателиТаблПоле["ИНН" + Ном];
СтруктураДанныхТитульный.Удалить("ИНН" + Ном);
КонецЦикла;
Если Лев(СтруктураДанныхТитульный.ИНН, 2) = "00" Тогда
СтруктураДанныхТитульный.ИНН = Сред(СтруктураДанныхТитульный.ИНН, 3);
КонецЕсли;
ИначеЕсли ИмяПоказателя = "КПП1" Тогда
СтруктураДанныхТитульный.Вставить("КПП");
Для Ном = 1 По 9 Цикл
СтруктураДанныхТитульный.КПП = СокрЛП(СтруктураДанныхТитульный.КПП) + ПоказателиТаблПоле["КПП" + Ном];
СтруктураДанныхТитульный.Удалить("КПП" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОГРН1" Тогда
СтруктураДанныхТитульный.Вставить("ОГРН");
Для Ном = 1 По 15 Цикл
СтруктураДанныхТитульный.ОГРН = СокрЛП(СтруктураДанныхТитульный.ОГРН) + ПоказателиТаблПоле["ОГРН" + Ном];
СтруктураДанныхТитульный.Удалить("ОГРН" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ТелОрганизации1" Тогда
СтруктураДанныхТитульный.Вставить("ТелОрганизации");
Для Ном = 1 По 15 Цикл
СтруктураДанныхТитульный.ТелОрганизации = СокрЛП(
СтруктураДанныхТитульный.ТелОрганизации) + ПоказателиТаблПоле["ТелОрганизации" + Ном];
СтруктураДанныхТитульный.Удалить("ТелОрганизации" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОКВЭД1" Тогда
СтруктураДанныхТитульный.Вставить("ОКВЭД");
Для Ном = 1 По 8 Цикл
Если ПоказателиТаблПоле.Свойство("ОКВЭД" + Ном) Тогда
СтруктураДанныхТитульный.ОКВЭД = СокрЛП(СтруктураДанныхТитульный.ОКВЭД) + ПоказателиТаблПоле["ОКВЭД" + Ном];
СтруктураДанныхТитульный.Удалить("ОКВЭД" + Ном);
КонецЕсли;
КонецЦикла;
СтруктураДанныхТитульный.ОКВЭД = СокрЛП(СтруктураДанныхТитульный.ОКВЭД);
Если СтрДлина(СтруктураДанныхТитульный.ОКВЭД) > 4 Тогда
СтруктураДанныхТитульный.ОКВЭД = Лев(СтруктураДанныхТитульный.ОКВЭД, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 3, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 5);
ИначеЕсли СтрДлина(СтруктураДанныхТитульный.ОКВЭД) > 2 Тогда
СтруктураДанныхТитульный.ОКВЭД = Лев(СтруктураДанныхТитульный.ОКВЭД, 2)
+ "."
+ Сред(СтруктураДанныхТитульный.ОКВЭД, 3);
КонецЕсли;
ИначеЕсли ИмяПоказателя = "НомерКорректировки1" Тогда
СтруктураДанныхТитульный.Вставить("НомерКорректировки");
Для Ном = 1 По 3 Цикл
СтруктураДанныхТитульный.НомерКорректировки = СокрЛП(
СтруктураДанныхТитульный.НомерКорректировки) + ПоказателиТаблПоле["НомерКорректировки" + Ном];
СтруктураДанныхТитульный.Удалить("НомерКорректировки" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "Период_1" Тогда
СтруктураДанныхТитульный.Вставить("Период");
Для Ном = 1 По 2 Цикл
СтруктураДанныхТитульный.Период = СокрЛП(
СтруктураДанныхТитульный.Период) + ПоказателиТаблПоле["Период_" + Ном];
СтруктураДанныхТитульный.Удалить("Период_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ОтчетГод1" Тогда
СтруктураДанныхТитульный.Вставить("ОтчетГод");
Для Ном = 1 По 4 Цикл
СтруктураДанныхТитульный.ОтчетГод = СокрЛП(
СтруктураДанныхТитульный.ОтчетГод) + ПоказателиТаблПоле["ОтчетГод" + Ном];
СтруктураДанныхТитульный.Удалить("ОтчетГод" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислФизЛицВыпл_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислФизЛицВыпл");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислФизЛицВыпл = СокрЛП(
СтруктураДанныхТитульный.ЧислФизЛицВыпл) + ПоказателиТаблПоле["ЧислФизЛицВыпл_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислФизЛицВыпл_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислРаботников_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислРаботников");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислРаботников = СокрЛП(
СтруктураДанныхТитульный.ЧислРаботников) + ПоказателиТаблПоле["ЧислРаботников_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислРаботников_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислИнвалидов_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислИнвалидов");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислИнвалидов = СокрЛП(
СтруктураДанныхТитульный.ЧислИнвалидов) + ПоказателиТаблПоле["ЧислИнвалидов_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислИнвалидов_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "ЧислВред_1" Тогда
СтруктураДанныхТитульный.Вставить("ЧислВред");
Для Ном = 1 По 6 Цикл
СтруктураДанныхТитульный.ЧислВред = СокрЛП(
СтруктураДанныхТитульный.ЧислВред) + ПоказателиТаблПоле["ЧислВред_" + Ном];
СтруктураДанныхТитульный.Удалить("ЧислВред_" + Ном);
КонецЦикла;
ИначеЕсли ИмяПоказателя = "СПриложением1" Тогда
СтруктураДанныхТитульный.Вставить("СПриложением");
Для Ном = 1 По 3 Цикл
СтруктураДанныхТитульный.СПриложением = СокрЛП(
СтруктураДанныхТитульный.СПриложением) + ПоказателиТаблПоле["СПриложением" + Ном];
СтруктураДанныхТитульный.Удалить("СПриложением" + Ном);
КонецЦикла;
КонецЕсли;
КонецЦикла;
ЗаполнитьДатуВЯчейкахНаСервере();
КонецПроцедуры
&НаСервере
Процедура ПривестиВСоответствиеЗначенияИзДопСтрокСтруктурамДанныхРазделов()
СохранитьОтчет = Ложь;
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица92, П0009200001) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица92, П0009200001);
СохранитьОтчет = Истина;
КонецЕсли;
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица1_1, П0001100001) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица1_1, П0001100001);
СохранитьОтчет = Истина;
КонецЕсли;
Если НЕ РегламентированнаяОтчетность.ЗначенияИзДопСтрокСоответствуютСтруктуреДанныхРаздела(
СтруктураДанныхТаблица2, П0000200001) Тогда
РегламентированнаяОтчетность.ЗаполнитьСтруктуруДанныхРазделаЗначениямиИзДопСтрок(
СтруктураДанныхТаблица2, П0000200001);
СохранитьОтчет = Истина;
КонецЕсли;
Если СохранитьОтчет Тогда
Сохранить( , , СтруктураРеквизитовФормы.ВидДокумента * НомерКорректировки, , "Титульный");
КонецЕсли;
КонецПроцедуры
&НаСервере
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаСервере(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы92", СтруктураРеквизитовФормы.ИдГруппы92);
ИдГрупп.Вставить("ИдГруппы11", СтруктураРеквизитовФормы.ИдГруппы11);
ИдГрупп.Вставить("ИдГруппы2", СтруктураРеквизитовФормы.ИдГруппы2);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиенте
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаКлиенте(ИмяЛиста = Неопределено, ТекущаяОбласть = Неопределено) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы92", СтруктураРеквизитовФормы.ИдГруппы92);
ИдГрупп.Вставить("ИдГруппы11", СтруктураРеквизитовФормы.ИдГруппы11);
ИдГрупп.Вставить("ИдГруппы2", СтруктураРеквизитовФормы.ИдГруппы2);
Возврат ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста, , ИдГрупп, ТекущаяОбласть);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьИдМногострочногоРазделаПоАктивнойСтранице(ИмяЛиста = Неопределено, ТекущаяСтраница = Неопределено, ИдГрупп, ТекущаяОбласть = Неопределено)
Перем ИмяГруппы;
Если ИмяЛиста = Неопределено Тогда
ИмяТекущейСтраницыПанели = ТекущаяСтраница.Имя;
Иначе
ИмяТекущейСтраницыПанели = ИмяЛиста;
КонецЕсли;
Если ИмяТекущейСтраницыПанели = "Таблица92" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы92;
ИначеЕсли ИмяТекущейСтраницыПанели = "Таблица1_1" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы11;
ИначеЕсли ИмяТекущейСтраницыПанели = "Таблица2" Тогда
ИмяГруппы = ИдГрупп.ИдГруппы2;
КонецЕсли;
Возврат ИмяГруппы;
КонецФункции
&НаСервере
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаСервере(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы92", СтруктураРеквизитовФормы.ИдГруппы92);
ИдГрупп.Вставить("ИдГруппы11", СтруктураРеквизитовФормы.ИдГруппы11);
ИдГрупп.Вставить("ИдГруппы2", СтруктураРеквизитовФормы.ИдГруппы2);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиенте
Функция ОпределитьТабличноеПолеПоИдМногострочногоРазделаНаКлиенте(ИдГруппы) Экспорт
ИдГрупп = Новый Структура;
ИдГрупп.Вставить("ИдГруппы92", СтруктураРеквизитовФормы.ИдГруппы92);
ИдГрупп.Вставить("ИдГруппы11", СтруктураРеквизитовФормы.ИдГруппы11);
ИдГрупп.Вставить("ИдГруппы2", СтруктураРеквизитовФормы.ИдГруппы2);
Возврат ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ОпределитьТабличноеПолеПоИдМногострочногоРаздела(ИдГруппы, ИдГрупп) Экспорт
Перем ТекТабличноеПоле;
Если ИдГруппы = ИдГрупп.ИдГруппы92 Тогда
ТекТабличноеПоле = "Таблица92";
ИначеЕсли ИдГруппы = ИдГрупп.ИдГруппы11 Тогда
ТекТабличноеПоле = "Таблица1_1";
ИначеЕсли ИдГруппы = ИдГрупп.ИдГруппы2 Тогда
ТекТабличноеПоле = "Таблица2";
КонецЕсли;
Возврат ТекТабличноеПоле;
КонецФункции
&НаСервере
Процедура ОбновитьСтруктуруМногострочногоРазделаНаСервере(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура ОбновитьСтруктуруМногострочногоРазделаНаКлиенте(ИмяГруппы) Экспорт
ОбновитьСтруктуруМногострочногоРаздела(ЭтаФорма, ИмяГруппы);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОбновитьСтруктуруМногострочногоРаздела(Форма, ИмяГруппы)
Перем СтруктураГруппы;
Форма.мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = Форма[СтруктураГруппы];
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = Форма[ТекТабличноеПолеИмя];
Для НСтр = 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.Значение;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000010000803, ОбластьИмя) > 0 Тогда
ТДО.П000010000803.Значение = Окр(ТДО.П000010000503.Значение * (1
+ ТДО.П000010000703.Значение / 100 - ТДО.П000010000603.Значение / 100), 3);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица1_1" Тогда
ТДО.П00011ОСВЭД08.Значение = Окр(ТДО.П00011ОСВЭД05.Значение * (1
+ ТДО.П00011ОСВЭД07.Значение / 100 - ТДО.П00011ОСВЭД06.Значение / 100), 3);
ТДО.П00011ОСВЭД21.Значение = ТДО.П00011ОСВЭД22.Значение
+ ТДО.П00011ОСВЭД23.Значение + ТДО.П00011ОСВЭД24.Значение;
ТДО.П00011ОСВЭД09.Значение
= ТДО.П00011ОСВЭД11.Значение + ТДО.П00011ОСВЭД13.Значение
+ ТДО.П00011ОСВЭД15.Значение + ТДО.П00011ОСВЭД17.Значение;
ТДО.П00011ОСВЭД10.Значение
= ТДО.П00011ОСВЭД12.Значение + ТДО.П00011ОСВЭД14.Значение
+ ТДО.П00011ОСВЭД16.Значение + ТДО.П00011ОСВЭД18.Значение;
ТДО.П00011ОСВЭД19.Значение
= ТДО.П00011ОСВЭД20.Значение + ТДО.П00011ОСВЭД21.Значение;
П00011ВСЕГО09 = ТДО.П00011ОСВЭД09.Значение;
П00011ВСЕГО10 = ТДО.П00011ОСВЭД10.Значение;
П00011ВСЕГО11 = ТДО.П00011ОСВЭД11.Значение;
П00011ВСЕГО12 = ТДО.П00011ОСВЭД12.Значение;
П00011ВСЕГО13 = ТДО.П00011ОСВЭД13.Значение;
П00011ВСЕГО14 = ТДО.П00011ОСВЭД14.Значение;
П00011ВСЕГО15 = ТДО.П00011ОСВЭД15.Значение;
П00011ВСЕГО16 = ТДО.П00011ОСВЭД16.Значение;
П00011ВСЕГО17 = ТДО.П00011ОСВЭД17.Значение;
П00011ВСЕГО18 = ТДО.П00011ОСВЭД18.Значение;
П00011ВСЕГО19 = ТДО.П00011ОСВЭД19.Значение;
П00011ВСЕГО20 = ТДО.П00011ОСВЭД20.Значение;
П00011ВСЕГО21 = ТДО.П00011ОСВЭД21.Значение;
П00011ВСЕГО22 = ТДО.П00011ОСВЭД22.Значение;
П00011ВСЕГО23 = ТДО.П00011ОСВЭД23.Значение;
П00011ВСЕГО24 = ТДО.П00011ОСВЭД24.Значение;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы11, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
ТДО["П000110000121_" + Постфикс].Значение = ТДО["П000110000122_" + Постфикс].Значение
+ ТДО["П000110000123_" + Постфикс].Значение + ТДО["П000110000124_" + Постфикс].Значение;
ТДО["П000110000109_" + Постфикс].Значение
= ТДО["П000110000111_" + Постфикс].Значение + ТДО["П000110000113_" + Постфикс].Значение
+ ТДО["П000110000115_" + Постфикс].Значение + ТДО["П000110000117_" + Постфикс].Значение;
ТДО["П000110000110_" + Постфикс].Значение
= ТДО["П000110000112_" + Постфикс].Значение + ТДО["П000110000114_" + Постфикс].Значение
+ ТДО["П000110000116_" + Постфикс].Значение + ТДО["П000110000118_" + Постфикс].Значение;
ТДО["П000110000119_" + Постфикс].Значение
= ТДО["П000110000120_" + Постфикс].Значение + ТДО["П000110000121_" + Постфикс].Значение;
П00011ВСЕГО09 = П00011ВСЕГО09 + ТДО["П000110000109_" + Постфикс].Значение;
П00011ВСЕГО10 = П00011ВСЕГО10 + ТДО["П000110000110_" + Постфикс].Значение;
П00011ВСЕГО11 = П00011ВСЕГО11 + ТДО["П000110000111_" + Постфикс].Значение;
П00011ВСЕГО12 = П00011ВСЕГО12 + ТДО["П000110000112_" + Постфикс].Значение;
П00011ВСЕГО13 = П00011ВСЕГО13 + ТДО["П000110000113_" + Постфикс].Значение;
П00011ВСЕГО14 = П00011ВСЕГО14 + ТДО["П000110000114_" + Постфикс].Значение;
П00011ВСЕГО15 = П00011ВСЕГО15 + ТДО["П000110000115_" + Постфикс].Значение;
П00011ВСЕГО16 = П00011ВСЕГО16 + ТДО["П000110000116_" + Постфикс].Значение;
П00011ВСЕГО17 = П00011ВСЕГО17 + ТДО["П000110000117_" + Постфикс].Значение;
П00011ВСЕГО18 = П00011ВСЕГО18 + ТДО["П000110000118_" + Постфикс].Значение;
П00011ВСЕГО19 = П00011ВСЕГО19 + ТДО["П000110000119_" + Постфикс].Значение;
П00011ВСЕГО20 = П00011ВСЕГО20 + ТДО["П000110000120_" + Постфикс].Значение;
П00011ВСЕГО21 = П00011ВСЕГО21 + ТДО["П000110000121_" + Постфикс].Значение;
П00011ВСЕГО22 = П00011ВСЕГО22 + ТДО["П000110000122_" + Постфикс].Значение;
П00011ВСЕГО23 = П00011ВСЕГО23 + ТДО["П000110000123_" + Постфикс].Значение;
П00011ВСЕГО24 = П00011ВСЕГО24 + ТДО["П000110000124_" + Постфикс].Значение;
КонецЦикла;
ТДО.П00011ВСЕГО09.Значение = П00011ВСЕГО09;
ТДО.П00011ВСЕГО10.Значение = П00011ВСЕГО10;
ТДО.П00011ВСЕГО11.Значение = П00011ВСЕГО11;
ТДО.П00011ВСЕГО12.Значение = П00011ВСЕГО12;
ТДО.П00011ВСЕГО13.Значение = П00011ВСЕГО13;
ТДО.П00011ВСЕГО14.Значение = П00011ВСЕГО14;
ТДО.П00011ВСЕГО15.Значение = П00011ВСЕГО15;
ТДО.П00011ВСЕГО16.Значение = П00011ВСЕГО16;
ТДО.П00011ВСЕГО17.Значение = П00011ВСЕГО17;
ТДО.П00011ВСЕГО18.Значение = П00011ВСЕГО18;
ТДО.П00011ВСЕГО19.Значение = П00011ВСЕГО19;
ТДО.П00011ВСЕГО20.Значение = П00011ВСЕГО20;
ТДО.П00011ВСЕГО21.Значение = П00011ВСЕГО21;
ТДО.П00011ВСЕГО22.Значение = П00011ВСЕГО22;
ТДО.П00011ВСЕГО23.Значение = П00011ВСЕГО23;
ТДО.П00011ВСЕГО24.Значение = П00011ВСЕГО24;
ИначеЕсли ИмяТекущегоРаздела = "Таблица2" Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020000108, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
ТДО["П000020000108_" + Постфикс].Значение = ТДО["П000020000110_" + Постфикс].Значение
+ ТДО["П000020000112_" + Постфикс].Значение + ТДО["П000020000114_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020000109, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
ТДО["П000020000109_" + Постфикс].Значение = ТДО["П000020000111_" + Постфикс].Значение
+ ТДО["П000020000113_" + Постфикс].Значение + ТДО["П000020000115_" + Постфикс].Значение;
КонецЦикла;
КонецЕсли;
КонецЕсли;
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000020000119, ОбластьИмя) > 0 Тогда
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
ТДО["П000020000119_" + Постфикс].Значение = Окр(ТДО["П000020000116_" + Постфикс].Значение * (1
+ ТДО["П000020000118_" + Постфикс].Значение / 100 - ТДО["П000020000117_" + Постфикс].Значение / 100), 3);
КонецЦикла;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица3" Тогда
Если НЕ ЗначениеЗаполнено(ОбластьИмя) ИЛИ СтрЧислоВхождений(
Форма.СтруктураЗависимыхЯчеекДляАвторасчета.П000030000403, ОбластьИмя) > 0 Тогда
ТДО.П000030000403.Значение = ТДО.П000030000103.Значение + ТДО.П000030000303.Значение;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "" Тогда
РасчетВСтруктуре(Форма, "Таблица1");
РасчетВСтруктуре(Форма, "Таблица1_1");
РасчетВСтруктуре(Форма, "Таблица2");
РасчетВСтруктуре(Форма, "Таблица3");
КонецЕсли;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура РасчетВСтруктуре(Форма, ИмяТекущегоРаздела)
Перем ТаблицаБлока;
Если Форма.СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Возврат;
КонецЕсли;
ТДО = Форма.ТабличныйДокумент.Области;
Если ИмяТекущегоРаздела = "Таблица1" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000010000303 = ТДО.П000010000103.Значение - ТДО.П000010000203.Значение;
СтруктураДанныхРаздела.П000010000304 = ТДО.П000010000104.Значение - ТДО.П000010000204.Значение;
СтруктураДанныхРаздела.П000010000305 = ТДО.П000010000105.Значение - ТДО.П000010000205.Значение;
СтруктураДанныхРаздела.П000010000306 = ТДО.П000010000106.Значение - ТДО.П000010000206.Значение;
СтруктураДанныхРаздела.П000010000803 = Окр(ТДО.П000010000503.Значение * (1
+ ТДО.П000010000703.Значение / 100 - ТДО.П000010000603.Значение / 100), 3);
ТДО.П000010000303.Значение = СтруктураДанныхРаздела.П000010000303;
ТДО.П000010000304.Значение = СтруктураДанныхРаздела.П000010000304;
ТДО.П000010000305.Значение = СтруктураДанныхРаздела.П000010000305;
ТДО.П000010000306.Значение = СтруктураДанныхРаздела.П000010000306;
ТДО.П000010000803.Значение = СтруктураДанныхРаздела.П000010000803;
Иначе
СтруктураДанныхРаздела.П000010000303 = СтруктураДанныхРаздела.П000010000103 - СтруктураДанныхРаздела.П000010000203;
СтруктураДанныхРаздела.П000010000304 = СтруктураДанныхРаздела.П000010000104 - СтруктураДанныхРаздела.П000010000204;
СтруктураДанныхРаздела.П000010000305 = СтруктураДанныхРаздела.П000010000105 - СтруктураДанныхРаздела.П000010000205;
СтруктураДанныхРаздела.П000010000306 = СтруктураДанныхРаздела.П000010000106 - СтруктураДанныхРаздела.П000010000206;
СтруктураДанныхРаздела.П000010000803 = Окр(СтруктураДанныхРаздела.П000010000503 * (1
+ СтруктураДанныхРаздела.П000010000703 / 100 - СтруктураДанныхРаздела.П000010000603 / 100), 3);
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица1_1" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П00011ОСВЭД08 = Окр(ТДО.П00011ОСВЭД05.Значение * (1
+ ТДО.П00011ОСВЭД07.Значение / 100 - ТДО.П00011ОСВЭД06.Значение / 100), 3);
СтруктураДанныхРаздела.П00011ОСВЭД21 = ТДО.П00011ОСВЭД22.Значение
+ ТДО.П00011ОСВЭД23.Значение + ТДО.П00011ОСВЭД24.Значение;
ТДО.П00011ОСВЭД08.Значение = СтруктураДанныхРаздела.П00011ОСВЭД08;
ТДО.П00011ОСВЭД21.Значение = СтруктураДанныхРаздела.П00011ОСВЭД21;
СтруктураДанныхРаздела.П00011ОСВЭД09
= ТДО.П00011ОСВЭД11.Значение + ТДО.П00011ОСВЭД13.Значение
+ ТДО.П00011ОСВЭД15.Значение + ТДО.П00011ОСВЭД17.Значение;
СтруктураДанныхРаздела.П00011ОСВЭД10
= ТДО.П00011ОСВЭД12.Значение + ТДО.П00011ОСВЭД14.Значение
+ ТДО.П00011ОСВЭД16.Значение + ТДО.П00011ОСВЭД18.Значение;
СтруктураДанныхРаздела.П00011ОСВЭД19
= ТДО.П00011ОСВЭД20.Значение + ТДО.П00011ОСВЭД21.Значение;
ТДО.П00011ОСВЭД09.Значение = СтруктураДанныхРаздела.П00011ОСВЭД09;
ТДО.П00011ОСВЭД10.Значение = СтруктураДанныхРаздела.П00011ОСВЭД10;
ТДО.П00011ОСВЭД19.Значение = СтруктураДанныхРаздела.П00011ОСВЭД19;
П00011ВСЕГО09 = ТДО.П00011ОСВЭД09.Значение;
П00011ВСЕГО10 = ТДО.П00011ОСВЭД10.Значение;
П00011ВСЕГО11 = ТДО.П00011ОСВЭД11.Значение;
П00011ВСЕГО12 = ТДО.П00011ОСВЭД12.Значение;
П00011ВСЕГО13 = ТДО.П00011ОСВЭД13.Значение;
П00011ВСЕГО14 = ТДО.П00011ОСВЭД14.Значение;
П00011ВСЕГО15 = ТДО.П00011ОСВЭД15.Значение;
П00011ВСЕГО16 = ТДО.П00011ОСВЭД16.Значение;
П00011ВСЕГО17 = ТДО.П00011ОСВЭД17.Значение;
П00011ВСЕГО18 = ТДО.П00011ОСВЭД18.Значение;
П00011ВСЕГО19 = ТДО.П00011ОСВЭД19.Значение;
П00011ВСЕГО20 = ТДО.П00011ОСВЭД20.Значение;
П00011ВСЕГО21 = ТДО.П00011ОСВЭД21.Значение;
П00011ВСЕГО22 = ТДО.П00011ОСВЭД22.Значение;
П00011ВСЕГО23 = ТДО.П00011ОСВЭД23.Значение;
П00011ВСЕГО24 = ТДО.П00011ОСВЭД24.Значение;
Иначе
СтруктураДанныхРаздела.П00011ОСВЭД08 = Окр(СтруктураДанныхРаздела.П00011ОСВЭД05 * (1
+ СтруктураДанныхРаздела.П00011ОСВЭД07 / 100 - СтруктураДанныхРаздела.П00011ОСВЭД06 / 100), 3);
СтруктураДанныхРаздела.П00011ОСВЭД21 = СтруктураДанныхРаздела.П00011ОСВЭД22
+ СтруктураДанныхРаздела.П00011ОСВЭД23 + СтруктураДанныхРаздела.П00011ОСВЭД24;
СтруктураДанныхРаздела.П00011ОСВЭД09
= СтруктураДанныхРаздела.П00011ОСВЭД11 + СтруктураДанныхРаздела.П00011ОСВЭД13
+ СтруктураДанныхРаздела.П00011ОСВЭД15 + СтруктураДанныхРаздела.П00011ОСВЭД17;
СтруктураДанныхРаздела.П00011ОСВЭД10
= СтруктураДанныхРаздела.П00011ОСВЭД12 + СтруктураДанныхРаздела.П00011ОСВЭД14
+ СтруктураДанныхРаздела.П00011ОСВЭД16 + СтруктураДанныхРаздела.П00011ОСВЭД18;
СтруктураДанныхРаздела.П00011ОСВЭД19
= СтруктураДанныхРаздела.П00011ОСВЭД20 + СтруктураДанныхРаздела.П00011ОСВЭД21;
П00011ВСЕГО09 = СтруктураДанныхРаздела.П00011ОСВЭД09;
П00011ВСЕГО10 = СтруктураДанныхРаздела.П00011ОСВЭД10;
П00011ВСЕГО11 = СтруктураДанныхРаздела.П00011ОСВЭД11;
П00011ВСЕГО12 = СтруктураДанныхРаздела.П00011ОСВЭД12;
П00011ВСЕГО13 = СтруктураДанныхРаздела.П00011ОСВЭД13;
П00011ВСЕГО14 = СтруктураДанныхРаздела.П00011ОСВЭД14;
П00011ВСЕГО15 = СтруктураДанныхРаздела.П00011ОСВЭД15;
П00011ВСЕГО16 = СтруктураДанныхРаздела.П00011ОСВЭД16;
П00011ВСЕГО17 = СтруктураДанныхРаздела.П00011ОСВЭД17;
П00011ВСЕГО18 = СтруктураДанныхРаздела.П00011ОСВЭД18;
П00011ВСЕГО19 = СтруктураДанныхРаздела.П00011ОСВЭД19;
П00011ВСЕГО20 = СтруктураДанныхРаздела.П00011ОСВЭД20;
П00011ВСЕГО21 = СтруктураДанныхРаздела.П00011ОСВЭД21;
П00011ВСЕГО22 = СтруктураДанныхРаздела.П00011ОСВЭД22;
П00011ВСЕГО23 = СтруктураДанныхРаздела.П00011ОСВЭД23;
П00011ВСЕГО24 = СтруктураДанныхРаздела.П00011ОСВЭД24;
КонецЕсли;
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы11, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
ТДО["П000110000121_" + Постфикс].Значение = ТДО["П000110000122_" + Постфикс].Значение
+ ТДО["П000110000123_" + Постфикс].Значение + ТДО["П000110000124_" + Постфикс].Значение;
ТДО["П000110000109_" + Постфикс].Значение
= ТДО["П000110000111_" + Постфикс].Значение + ТДО["П000110000113_" + Постфикс].Значение
+ ТДО["П000110000115_" + Постфикс].Значение + ТДО["П000110000117_" + Постфикс].Значение;
ТДО["П000110000110_" + Постфикс].Значение
= ТДО["П000110000112_" + Постфикс].Значение + ТДО["П000110000114_" + Постфикс].Значение
+ ТДО["П000110000116_" + Постфикс].Значение + ТДО["П000110000118_" + Постфикс].Значение;
ТДО["П000110000119_" + Постфикс].Значение
= ТДО["П000110000120_" + Постфикс].Значение + ТДО["П000110000121_" + Постфикс].Значение;
П00011ВСЕГО09 = П00011ВСЕГО09 + ТДО["П000110000109_" + Постфикс].Значение;
П00011ВСЕГО10 = П00011ВСЕГО10 + ТДО["П000110000110_" + Постфикс].Значение;
П00011ВСЕГО11 = П00011ВСЕГО11 + ТДО["П000110000111_" + Постфикс].Значение;
П00011ВСЕГО12 = П00011ВСЕГО12 + ТДО["П000110000112_" + Постфикс].Значение;
П00011ВСЕГО13 = П00011ВСЕГО13 + ТДО["П000110000113_" + Постфикс].Значение;
П00011ВСЕГО14 = П00011ВСЕГО14 + ТДО["П000110000114_" + Постфикс].Значение;
П00011ВСЕГО15 = П00011ВСЕГО15 + ТДО["П000110000115_" + Постфикс].Значение;
П00011ВСЕГО16 = П00011ВСЕГО16 + ТДО["П000110000116_" + Постфикс].Значение;
П00011ВСЕГО17 = П00011ВСЕГО17 + ТДО["П000110000117_" + Постфикс].Значение;
П00011ВСЕГО18 = П00011ВСЕГО18 + ТДО["П000110000118_" + Постфикс].Значение;
П00011ВСЕГО19 = П00011ВСЕГО19 + ТДО["П000110000119_" + Постфикс].Значение;
П00011ВСЕГО20 = П00011ВСЕГО20 + ТДО["П000110000120_" + Постфикс].Значение;
П00011ВСЕГО21 = П00011ВСЕГО21 + ТДО["П000110000121_" + Постфикс].Значение;
П00011ВСЕГО22 = П00011ВСЕГО22 + ТДО["П000110000122_" + Постфикс].Значение;
П00011ВСЕГО23 = П00011ВСЕГО23 + ТДО["П000110000123_" + Постфикс].Значение;
П00011ВСЕГО24 = П00011ВСЕГО24 + ТДО["П000110000124_" + Постфикс].Значение;
Иначе
СтрБлока = ТаблицаБлока[Ном - 1];
СтрБлока["П000110000121"] = СтрБлока["П000110000122"]
+ СтрБлока["П000110000123"] + СтрБлока["П000110000124"];
СтруктураДанныхРаздела["П000110000121_" + Постфикс] = СтрБлока["П000110000121"];
СтрБлока["П000110000109"]
= СтрБлока["П000110000111"] + СтрБлока["П000110000113"]
+ СтрБлока["П000110000115"] + СтрБлока["П000110000117"];
СтруктураДанныхРаздела["П000110000109_" + Постфикс] = СтрБлока["П000110000109"];
СтрБлока["П000110000110"]
= СтрБлока["П000110000112"] + СтрБлока["П000110000114"]
+ СтрБлока["П000110000116"] + СтрБлока["П000110000118"];
СтруктураДанныхРаздела["П000110000110_" + Постфикс] = СтрБлока["П000110000110"];
СтрБлока["П000110000119"]
= СтрБлока["П000110000120"] + СтрБлока["П000110000121"];
СтруктураДанныхРаздела["П000110000119_" + Постфикс] = СтрБлока["П000110000119"];
П00011ВСЕГО09 = П00011ВСЕГО09 + СтрБлока["П000110000109"];
П00011ВСЕГО10 = П00011ВСЕГО10 + СтрБлока["П000110000110"];
П00011ВСЕГО11 = П00011ВСЕГО11 + СтрБлока["П000110000111"];
П00011ВСЕГО12 = П00011ВСЕГО12 + СтрБлока["П000110000112"];
П00011ВСЕГО13 = П00011ВСЕГО13 + СтрБлока["П000110000113"];
П00011ВСЕГО14 = П00011ВСЕГО14 + СтрБлока["П000110000114"];
П00011ВСЕГО15 = П00011ВСЕГО15 + СтрБлока["П000110000115"];
П00011ВСЕГО16 = П00011ВСЕГО16 + СтрБлока["П000110000116"];
П00011ВСЕГО17 = П00011ВСЕГО17 + СтрБлока["П000110000117"];
П00011ВСЕГО18 = П00011ВСЕГО18 + СтрБлока["П000110000118"];
П00011ВСЕГО19 = П00011ВСЕГО19 + СтрБлока["П000110000119"];
П00011ВСЕГО20 = П00011ВСЕГО20 + СтрБлока["П000110000120"];
П00011ВСЕГО21 = П00011ВСЕГО21 + СтрБлока["П000110000121"];
П00011ВСЕГО22 = П00011ВСЕГО22 + СтрБлока["П000110000122"];
П00011ВСЕГО23 = П00011ВСЕГО23 + СтрБлока["П000110000123"];
П00011ВСЕГО24 = П00011ВСЕГО24 + СтрБлока["П000110000124"];
КонецЕсли;
КонецЦикла;
СтруктураДанныхРаздела.П00011ВСЕГО09 = П00011ВСЕГО09;
СтруктураДанныхРаздела.П00011ВСЕГО10 = П00011ВСЕГО10;
СтруктураДанныхРаздела.П00011ВСЕГО11 = П00011ВСЕГО11;
СтруктураДанныхРаздела.П00011ВСЕГО12 = П00011ВСЕГО12;
СтруктураДанныхРаздела.П00011ВСЕГО13 = П00011ВСЕГО13;
СтруктураДанныхРаздела.П00011ВСЕГО14 = П00011ВСЕГО14;
СтруктураДанныхРаздела.П00011ВСЕГО15 = П00011ВСЕГО15;
СтруктураДанныхРаздела.П00011ВСЕГО16 = П00011ВСЕГО16;
СтруктураДанныхРаздела.П00011ВСЕГО17 = П00011ВСЕГО17;
СтруктураДанныхРаздела.П00011ВСЕГО18 = П00011ВСЕГО18;
СтруктураДанныхРаздела.П00011ВСЕГО19 = П00011ВСЕГО19;
СтруктураДанныхРаздела.П00011ВСЕГО20 = П00011ВСЕГО20;
СтруктураДанныхРаздела.П00011ВСЕГО21 = П00011ВСЕГО21;
СтруктураДанныхРаздела.П00011ВСЕГО22 = П00011ВСЕГО22;
СтруктураДанныхРаздела.П00011ВСЕГО23 = П00011ВСЕГО23;
СтруктураДанныхРаздела.П00011ВСЕГО24 = П00011ВСЕГО24;
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
ТДО.П00011ВСЕГО09.Значение = П00011ВСЕГО09;
ТДО.П00011ВСЕГО10.Значение = П00011ВСЕГО10;
ТДО.П00011ВСЕГО11.Значение = П00011ВСЕГО11;
ТДО.П00011ВСЕГО12.Значение = П00011ВСЕГО12;
ТДО.П00011ВСЕГО13.Значение = П00011ВСЕГО13;
ТДО.П00011ВСЕГО14.Значение = П00011ВСЕГО14;
ТДО.П00011ВСЕГО15.Значение = П00011ВСЕГО15;
ТДО.П00011ВСЕГО16.Значение = П00011ВСЕГО16;
ТДО.П00011ВСЕГО17.Значение = П00011ВСЕГО17;
ТДО.П00011ВСЕГО18.Значение = П00011ВСЕГО18;
ТДО.П00011ВСЕГО19.Значение = П00011ВСЕГО19;
ТДО.П00011ВСЕГО20.Значение = П00011ВСЕГО20;
ТДО.П00011ВСЕГО21.Значение = П00011ВСЕГО21;
ТДО.П00011ВСЕГО22.Значение = П00011ВСЕГО22;
ТДО.П00011ВСЕГО23.Значение = П00011ВСЕГО23;
ТДО.П00011ВСЕГО24.Значение = П00011ВСЕГО24;
КонецЕсли;
ИначеЕсли ИмяТекущегоРаздела = "Таблица2" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Форма.мСтруктураМногострочныхРазделов.Свойство(Форма.СтруктураРеквизитовФормы.ИдГруппы2, ТаблицаБлока);
ТаблицаБлока = Форма[ТаблицаБлока];
Для Ном = 1 По ТаблицаБлока.Количество() Цикл
Постфикс = Формат(Ном, "ЧГ=");
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
ТДО["П000020000108_" + Постфикс].Значение = ТДО["П000020000110_" + Постфикс].Значение
+ ТДО["П000020000112_" + Постфикс].Значение + ТДО["П000020000114_" + Постфикс].Значение;
ТДО["П000020000109_" + Постфикс].Значение = ТДО["П000020000111_" + Постфикс].Значение
+ ТДО["П000020000113_" + Постфикс].Значение + ТДО["П000020000115_" + Постфикс].Значение;
КонецЕсли;
ТДО["П000020000119_" + Постфикс].Значение = Окр(ТДО["П000020000116_" + Постфикс].Значение * (1
+ ТДО["П000020000118_" + Постфикс].Значение / 100 - ТДО["П000020000117_" + Постфикс].Значение / 100), 3);
Иначе
СтрБлока = ТаблицаБлока[Ном - 1];
Если Форма.СтруктураРеквизитовФормы.ПериодОтчетаВходитВПервыйКвартал Тогда
СтрБлока["П000020000108"] = СтрБлока["П000020000110"] + СтрБлока["П000020000112"] + СтрБлока["П000020000114"];
СтруктураДанныхРаздела["П000020000108_" + Постфикс] = СтрБлока["П000020000108"];
СтрБлока["П000020000109"] = СтрБлока["П000020000111"] + СтрБлока["П000020000113"] + СтрБлока["П000020000115"];
СтруктураДанныхРаздела["П000020000109_" + Постфикс] = СтрБлока["П000020000109"];
КонецЕсли;
СтрБлока["П000020000119"] = Окр(СтрБлока["П000020000116"] * (1
+ СтрБлока["П000020000118"] / 100 - СтрБлока["П000020000117"] / 100), 3);
СтруктураДанныхРаздела["П000020000119_" + Постфикс] = СтрБлока["П000020000119"];
КонецЕсли;
КонецЦикла;
ИначеЕсли ИмяТекущегоРаздела = "Таблица3" Тогда
СтруктураДанныхРаздела = Форма["СтруктураДанных" + ИмяТекущегоРаздела];
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = ИмяТекущегоРаздела Тогда
СтруктураДанныхРаздела.П000030000403 = ТДО.П000030000103.Значение + ТДО.П000030000303.Значение;
ТДО.П000030000403.Значение = СтруктураДанныхРаздела.П000030000403;
Иначе
СтруктураДанныхРаздела.П000030000403 = СтруктураДанныхРаздела.П000030000103 + СтруктураДанныхРаздела.П000030000303;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ДобавитьСтроку()
ТекТабличноеПоле = ТабличныйДокумент;
ТекущаяОбласть = ЭтаФорма["ТабличныйДокумент"].ТекущаяОбласть;
ТекРаздел = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
Если ТекущаяОбласть.Имя = "ДобавитьСтроку" ИЛИ ТекущаяОбласть.Имя = "ДобавитьСтрокуЗначок" Тогда
ИмяПараметраАктивнойОбласти = Лев(СтрЗаменить(ТекущаяОбласть.Имя, "ДобавитьСтроку", ""), 11);
КонецЕсли;
ИмяГруппы = ОпределитьИдМногострочногоРазделаПоАктивнойСтраницеНаКлиенте(
Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим,
ИмяПараметраАктивнойОбласти);
Если ИмяГруппы = Неопределено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Не выбран многострочный раздел, в который необходимо добавить строку.'");
Сообщение.Сообщить();
Возврат;
КонецЕсли;
ВставитьДополнительнуюСтроку(Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим, ИмяГруппы);
КонецПроцедуры
&НаКлиенте
Процедура УдалитьСтроку()
ТекТабличноеПоле = ЭтаФорма["ТабличныйДокумент"];
ТекущаяОбласть = ТекТабличноеПоле.ТекущаяОбласть;
ИмяГруппы = РегламентированнаяОтчетностьКлиент.РазделТекущейОбласти(ЭтаФорма, ТекущаяОбласть);
Если ИмяГруппы = Неопределено Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Не выбрана удаляемая строка многострочного раздела.'");
Сообщение.Сообщить();
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("УдалитьСтрокуЗавершение", ЭтотОбъект);
ТекстВопроса = НСтр("ru='Удалить выбранную строку?'");
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Да);
КонецПроцедуры
&НаКлиенте
Процедура УдалитьСтрокуЗавершение(Ответ, ДополнительныеПараметры) Экспорт
Если Ответ <> КодВозвратаДиалога.Да Тогда
Возврат;
КонецЕсли;
УдалитьДополнительнуюСтрокуНаСервере();
КонецПроцедуры
&НаСервере
Процедура ВставитьДополнительнуюСтроку(ТекущаяСтраница, ИмяГруппы)
Перем СтруктураГруппы;
Перем МаксимальноеКоличествоСтрокГруппы;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, МаксимальноеКоличествоСтрокГруппы);
ТекТабличноеПолеИмя = "ТабличныйДокумент";
ТекТабличноеПоле = ЭтаФорма[ТекТабличноеПолеИмя];
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
КолСтрок = СтруктураГруппы.Количество();
КолСтрокСтр = Формат(КолСтрок, "ЧГ=");
КолСтрокСтр1 = Формат(КолСтрок + 1, "ЧГ=");
ИмяПервойЯчейкиПоследнейСтроки = "УдалитьСтроку" + ИмяГруппы + "01_" + КолСтрокСтр;
ОбластьЯчейки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПоследнейСтроки];
ИмяПервойЯчейкиПервойСтроки = "УдалитьСтроку" + ИмяГруппы + "01_1";
ОбластьПервойЯчейкиПервойСтроки = ТекТабличноеПоле.Области[ИмяПервойЯчейкиПервойСтроки];
ВерхОбластиМногострочнойЧасти = ОбластьПервойЯчейкиПервойСтроки.Верх;
ВысотаСтроки = МаксимальноеКоличествоСтрокГруппы;
НомерПоследнейСтроки = СтруктураГруппы.Количество();
НомерВерхЯчейкиОбласти = ОбластьЯчейки.Верх;
НомерНижнЯчейкиОбласти = ОбластьЯчейки.Низ;
ИсходнаяОбластьМСЧ = ТекТабличноеПоле.Область(ВерхОбластиМногострочнойЧасти, , НомерНижнЯчейкиОбласти, );
ИмяОбластиМСЧ = ИсходнаяОбластьМСЧ.Имя;
ИсходнаяОбластьМСЧ.Имя = Неопределено;
СдвигСтрок = НомерНижнЯчейкиОбласти - НомерВерхЯчейкиОбласти + 1;
НомерВерхЯчейкиНовойОбласти = НомерВерхЯчейкиОбласти + СдвигСтрок;
НомерНижнЯчейкиНовойОбласти = НомерНижнЯчейкиОбласти + СдвигСтрок;
СпециальногоДобавленияСтроки(
ТекТабличноеПоле, ТекТабличноеПолеИмя, ИмяГруппы, НомерВерхЯчейкиОбласти, НомерНижнЯчейкиОбласти,
СтруктураГруппы, НомерПоследнейСтроки, ВерхОбластиМногострочнойЧасти, ВысотаСтроки, ИмяОбластиМСЧ);
ЭтаФорма[ТекТабличноеПолеИмя] = ТекТабличноеПоле;
ИмяТекущейОбласти = ИмяГруппы + "01_" + КолСтрокСтр1;
ЭтаФорма.Элементы[ТекТабличноеПолеИмя].ТекущаяОбласть = ТекТабличноеПоле.Области[ИмяТекущейОбласти];
ЭтаФорма.ТекущийЭлемент = ЭтаФорма.Элементы[ТекТабличноеПолеИмя];
ЭтаФорма[ИмяГруппы].Добавить();
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура УдалитьДополнительнуюСтрокуНаСервере(СпециальноеДобавление = Ложь, ИмяКолонкиНомера = Неопределено) Экспорт
ТекущаяСтраница = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
ТекТабличноеПоле = ТабличныйДокумент;
ТекущаяОбласть = Элементы["ТабличныйДокумент"].ТекущаяОбласть;
ИмяГруппы = РегламентированнаяОтчетностьВызовСервера.РазделТекущейОбластиНаСервере(ЭтаФорма, ТекущаяОбласть);
ПараметрыУдаления = Новый Структура;
ПараметрыУдаления.Вставить("СпециальноеДобавление", СпециальноеДобавление);
ПараметрыУдаления.Вставить("ИмяКолонкиНомера", ИмяКолонкиНомера);
ПараметрыУдаления.Вставить("ИмяГруппы", ИмяГруппы);
ПараметрыУдаления.Вставить("ТекущаяСтраница", ТекущаяСтраница);
УдалитьДополнительнуюСтроку(ПараметрыУдаления);
РасчетНаСервере();
Модифицированность = Истина;
КонецПроцедуры
&НаСервере
Процедура УдалитьДополнительнуюСтроку(ПараметрыУдаления)
Перем ИсходноеКоличествоСтрокГруппы;
Перем СтруктураГруппы;
СпециальноеДобавление = ПараметрыУдаления.СпециальноеДобавление;
ИмяКолонкиНомера = ПараметрыУдаления.ИмяКолонкиНомера;
ИмяГруппы = ПараметрыУдаления.ИмяГруппы;
ТекущаяСтраница = ПараметрыУдаления.ТекущаяСтраница;
мСтруктураИсхКолвоСтрокРазделов.Свойство(ИмяГруппы, ИсходноеКоличествоСтрокГруппы);
ТекТабличноеПоле = ТабличныйДокумент;
мСтруктураМногострочныхРазделов.Свойство(ИмяГруппы, СтруктураГруппы);
СтруктураГруппы = ЭтаФорма[СтруктураГруппы];
ТекущаяОбласть = Элементы.ТабличныйДокумент.ТекущаяОбласть;
ИмяЯчейки = ТекущаяОбласть.Имя;
НомУдаляемойСтроки = Число(Сред(ИмяЯчейки, СтрНайти(ИмяЯчейки, "_") + 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_" + Формат(НомТекущейСтроки, "ЧГ=");
Элементы.ТабличныйДокумент.ТекущаяОбласть = ТекТабличноеПоле.Области[ИмяТекущейОбласти];
ТекущийЭлемент = Элементы.ТабличныйДокумент;
ОтрисоватьЗначкиУдаленияСтрок(ТекТабличноеПоле);
КонецПроцедуры
&НаСервере
Процедура ДобавитьНеобходимоеКоличествоДопСтрокНаСервере(ТекТабличноеПоле, ТекТабличноеПолеИмя, ИсходноеКоличествоСтрокГруппы, ТекущееКоличествоСтрокГруппы, ИмяГруппы, СтруктураГруппы) Экспорт
ИмяПервойЯчейкиПервойСтроки = ИмяГруппы + "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].Свойство(КолонкаТаблицыИмя) Тогда
ИмяЯчейки = КолонкаТаблицыИмя + "_" + НомерСтрокиВФормеТаблицы;
ОбластьЯчейкиТаблицы = ПолеТабличногоДокумента.Области[ИмяЯчейки];
ЗначениеЯчейки = СтрокаТаблицы[КолонкаТаблицыИмя];
Если ОбластьЯчейкиТаблицы.СодержитЗначение = Истина Тогда
ОбластьЯчейкиТаблицы.Значение = ЗначениеЯчейки;
Иначе
ОбластьЯчейкиТаблицы.Текст = ЗначениеЯчейки;
КонецЕсли;
КонецЕсли;
КонецЦикла;
КонецЦикла;
КонецПроцедуры
&НаКлиенте
Процедура Очистить(ВыполняемоеОповещение = Неопределено) Экспорт
РегламентированнаяОтчетностьКлиент.Очистить(ЭтаФорма, ВыполняемоеОповещение);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьОтчет(Команда)
РегламентированнаяОтчетностьКлиент.МеханизмыОчисткиРегламентированныхОтчетов(ЭтаФорма, "ОчиститьВесьОтчет");
КонецПроцедуры
&НаСервере
Процедура ОчиститьНаСервере() Экспорт
СтруктураДанныхТаблица92.Очистить();
СтруктураДанныхТаблица1.Очистить();
СтруктураДанныхТаблица1_1.Очистить();
СтруктураДанныхТаблица2.Очистить();
СтруктураДанныхТаблица3.Очистить();
СтруктураДанныхТаблица4.Очистить();
Для Каждого мнгРаздел Из мСтруктураМногострочныхРазделов Цикл
ЭтаФорма[мнгРаздел.Ключ].Очистить();
КонецЦикла;
НачальныеОперацииСМногострочнымиБлоками();
ЗаполнитьПустыеСтруктурыДанных();
Если НЕ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ОчиститьТабличноеПолеНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ВывестиМакетСтраницыВТабличныйДокументНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела);
РегламентированнаяОтчетностьКлиентСервер.ОчиститьВариантыЗаполнения(ЭтаФорма);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
ИзменитьВариантыЗаполненияПоказателейТаблица2(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницу(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ОчиститьТекущуюСтраницуЗавершение", ЭтотОбъект);
РегламентированнаяОтчетностьКлиент.МеханизмыОчисткиРегламентированныхОтчетов(
ЭтаФорма, "ОчиститьТекущийЭкземплярМногостраничногоРаздела"
+ Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим,
ОписаниеОповещения);
КонецПроцедуры
&НаКлиенте
Процедура ОчиститьТекущуюСтраницуЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный" Тогда
ЗначениеКорректировки = ТабличныйДокумент.Области.НомерКорректировки.Значение;
Если НЕ ЗначениеЗаполнено(ЗначениеКорректировки) Тогда
ТабличныйДокумент.Области.НомерКорректировки.Значение = "000";
ЗначениеКорректировки = 0;
КонецЕсли;
НомерКорректировки = ЗначениеКорректировки;
СтруктураРеквизитовФормы.ВидДокумента = ?(ЗначениеКорректировки = 0, 0, 1);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ОчисткаРегламентированногоОтчетаНаСервере(ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста, РежимОчистки, Многостраничность, КолВоСтраницВРазделе) Экспорт
УдалятьсяВсеДопЭкземпляры = Ложь;
Если СтрНайти(РежимОчистки, "ОчиститьТекущийРаздел") > 0 Тогда
Если (Многостраничность) И (КолВоСтраницВРазделе > 1) Тогда
ОчиститьПоказателиОтчетаЗаполняемыеИзИБНаСервере(ИмяСтраницы);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
УдалятьсяВсеДопЭкземпляры = Истина;
Иначе
ОчиститьТабличноеПолеНаСервере(ИмяСтраницы);
КонецЕсли;
СформироватьДеревоРазделовОтчетаНаСервере();
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
ИначеЕсли СтрНайти(РежимОчистки, "ОчиститьТекущийЭкземплярМногостраничногоРаздела") > 0 Тогда
ОчиститьТабличноеПолеНаСервере(ИмяСтраницы);
КонецЕсли;
Если ИмяСтраницы = "Титульный" Тогда
ТабличныйДокумент.Область("НомерКорректировки").Значение = "000";
Если Элементы.Найти("ДатаПодписи") = Неопределено Тогда
Область = ТабличныйДокумент.Области.Найти("ДатаПодписи");
Если НЕ Область = Неопределено Тогда
Если ТипЗнч(Область.Значение) = Тип("Строка") Тогда
ДатаПодписи = Лев(СтрЗаменить(Область.Значение, ".", ""), 8);
ИначеЕсли ТипЗнч(Область.Значение) = Тип("Дата") Тогда
Если ЗначениеЗаполнено(Область.Значение) Тогда
ДатаПодписи = Лев(СтрЗаменить(Формат(Область.Значение, "ДФ = ""дд.ММ.гггг 'г.'"""), ".", ""), 8);
Иначе
ДатаПодписи = " ";
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецЕсли;
РегламентированнаяОтчетностьКлиентСервер.ПослеОчисткиРегламентированногоОтчета(
ЭтаФорма, ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста);
КонецПроцедуры
&НаКлиенте
Процедура ОчисткаРегламентированногоОтчетаНаКлиенте(ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста, РежимОчистки, Многостраничность, КолВоСтраницВРазделе) Экспорт
УдалятьсяВсеДопЭкземпляры = Ложь;
Если СтрНайти(РежимОчистки, "ОчиститьТекущийРаздел") > 0 Тогда
Если (Многостраничность) И (КолВоСтраницВРазделе > 1) Тогда
РегламентированнаяОтчетностьКлиентСервер.ОчиститьПоказателиОтчетаЗаполняемыеИзИБ(ЭтаФорма, ИмяСтраницы);
УдалятьсяВсеДопЭкземпляры = Истина;
Иначе
ОчиститьТабличноеПолеНаКлиенте(ИмяСтраницы);
КонецЕсли;
СформироватьДеревоРазделовОтчетаНаКлиенте();
ИначеЕсли СтрНайти(РежимОчистки, "ОчиститьТекущийЭкземплярМногостраничногоРаздела") > 0 Тогда
ОчиститьТабличноеПолеНаКлиенте(ИмяСтраницы);
КонецЕсли;
РегламентированнаяОтчетностьКлиентСервер.ПослеОчисткиРегламентированногоОтчета(
ЭтаФорма, ИмяСтраницы, ЗапускатьОтдельнуюОбработкуПослеОчисткиЛиста);
КонецПроцедуры
&НаСервере
Процедура ОчиститьПоказателиОтчетаЗаполняемыеИзИБНаСервере(НазванияМногостраничныхРазделовДляУдаления = "")
РегламентированнаяОтчетностьКлиентСервер.ОчиститьПоказателиОтчетаЗаполняемыеИзИБ(
ЭтаФорма, НазванияМногостраничныхРазделовДляУдаления);
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуНастроек(Команда)
ОткрытьФормуВыбораСтраниц("ВыбратьДляНастройки");
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСтраниц(ВариантВыбора)
Перем ТекущийРазделОтчетаСокрНаим;
Перем НомерСтраницыРазделаОтчета;
Если НЕ Элементы.РазделыОтчета.ТекущиеДанные = Неопределено Тогда
ТекущийРазделОтчетаСокрНаим = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
НомерСтраницыРазделаОтчета = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаНомерСтраницыРазделаОтчета;
КонецЕсли;
мПараметры = Новый Структура;
мПараметры.Вставить("ПроверкаСоотношений", Истина);
мПараметры.Вставить("РазрешитьВстроеннуюПечать", Ложь);
мПараметры.Вставить("Автосохранение", Ложь);
мПараметры.Вставить("СчетчикСтраниц", Истина);
мПараметры.Вставить("Выгрузка", Ложь);
мПараметры.Вставить("ИмеетсяРеквизитДеревоВыбранныхСтраниц", Истина);
мПараметры.Вставить("ИмяОтчета", "РегламентированныйОтчет4ФСС");
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ФлажокОтклАвтоРасчет", СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыФормы.Вставить("мСчетчикСтраниц", СтруктураРеквизитовФормы.мСчетчикСтраниц);
ПараметрыФормы.Вставить("мАвтоВыборКодов", СтруктураРеквизитовФормы.мАвтоВыборКодов);
ПараметрыФормы.Вставить("мИнтервалАвтосохранения", СтруктураРеквизитовФормы.мИнтервалАвтосохранения);
ПараметрыФормы.Вставить("мПроверятьСоотношенияПриПечатиИВыгрузки", СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки);
ПараметрыФормы.Вставить("мПараметры", мПараметры);
ФормаНастройкиОтчета = РегламентированнаяОтчетностьКлиент.ПолучитьОбщуюФормуПоИмени("НастройкиОтчета", ПараметрыФормы, ЭтаФорма);
мДеревоВыбранныхСтраниц.ПолучитьЭлементы().Очистить();
КопироватьДанныеФормы(мДеревоСтраницОтчета, ФормаНастройкиОтчета.Дерево);
ЗначениеАвторасчета = СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет;
ДополнительныеПараметры = Новый Структура(
"ЗначениеАвторасчета, ЗначениеЕдИзм, ЗначениеЗпт, НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим",
ЗначениеАвторасчета, НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ОткрытьФормуВыбораСтраницЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ФормаНастройкиОтчета.РежимОткрытияОкна = РежимОткрытияОкнаФормы.БлокироватьОкноВладельца;
ФормаНастройкиОтчета.ОписаниеОповещенияОЗакрытии = ОписаниеОповещения;
ФормаНастройкиОтчета.Открыть();
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВыбораСтраницЗавершение(РезультатВыбора, ДополнительныеПараметры) Экспорт
ЗначениеАвторасчета = ДополнительныеПараметры.ЗначениеАвторасчета;
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
Модифицированность = Истина;
флЗначенияИдентичны = Истина;
Для Индекс = 0 По мДеревоСтраницОтчета.ПолучитьЭлементы().Количество() - 1 Цикл
Если НЕ мДеревоСтраницОтчета.ПолучитьЭлементы()[Индекс].ПоказатьСтраницу = мДеревоВыбранныхСтраниц.ПолучитьЭлементы()[Индекс].ПоказатьСтраницу Тогда
флЗначенияИдентичны = Ложь;
Прервать;
КонецЕсли;
КонецЦикла;
Если ЗначениеАвторасчета <> СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет Тогда
Если СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = Ложь Тогда
ДополнительныеПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ОписаниеОповещения = Новый ОписаниеОповещения(
"ВопросПерерасчетВсехРассчитываемыхПоказателейЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ТекстВопроса = НСтр("ru='Будет произведен перерасчет всех рассчитываемых показателей. Продолжить?'");
ПоказатьВопрос(ОписаниеОповещения, ТекстВопроса, РежимДиалогаВопрос.ДаНет, , КодВозвратаДиалога.Нет);
Иначе
#Если ВебКлиент Тогда
ИзменитьТаблицуВариантовЗаполненияНаСервере();
#Иначе
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
#КонецЕсли
ИзменитьВариантыЗаполненияПоказателейТаблица2(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица92"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица2" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
Иначе
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ВопросПерерасчетВсехРассчитываемыхПоказателейЗавершение(РезультатВопроса, ДополнительныеПараметры) Экспорт
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
Если РезультатВопроса <> КодВозвратаДиалога.Да Тогда
СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет = Истина;
Возврат;
КонецЕсли;
РасчетНаСервере();
#Если ВебКлиент Тогда
ИзменитьТаблицуВариантовЗаполненияНаСервере();
#Иначе
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
#КонецЕсли
Показатели = ТаблицаВариантыЗаполненияТаблица92[0].ТаблицаВариантовЗаполнения.НайтиСтроки(
Новый Структура("ВариантЗаполнения", 4));
Для Каждого Показатель Из Показатели Цикл
Показатель.ВариантЗаполнения = 0;
КонецЦикла;
Показатели = ТаблицаВариантыЗаполненияТаблица4[0].ТаблицаВариантовЗаполнения.НайтиСтроки(
Новый Структура("ВариантЗаполнения", 4));
Для Каждого Показатель Из Показатели Цикл
Показатель.ВариантЗаполнения = 0;
КонецЦикла;
Показатели = ТаблицаВариантыЗаполненияТитульный[0].ТаблицаВариантовЗаполнения.НайтиСтроки(
Новый Структура("ВариантЗаполнения", 4));
Для Каждого Показатель Из Показатели Цикл
Показатель.ВариантЗаполнения = 0;
КонецЦикла;
ИзменитьВариантыЗаполненияПоказателейТаблица2(ЭтаФорма);
Если СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Титульный"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица92"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1"
ИЛИ СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица2" Тогда
УстановитьЦветФонаЯчейкиНаКлиенте(,, СтруктураРеквизитовФормы.НаимТекущегоРаздела);
КонецЕсли;
ДопПараметры = Новый Структура(
"НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны",
НомерСтраницыРазделаОтчета, ТекущийРазделОтчетаСокрНаим, флЗначенияИдентичны);
ПослеОткрытияФормыВыбораСтраниц(ДопПараметры);
КонецПроцедуры
&НаКлиенте
Процедура ПослеОткрытияФормыВыбораСтраниц(ДополнительныеПараметры)
НомерСтраницыРазделаОтчета = ДополнительныеПараметры.НомерСтраницыРазделаОтчета;
ТекущийРазделОтчетаСокрНаим = ДополнительныеПараметры.ТекущийРазделОтчетаСокрНаим;
флЗначенияИдентичны = ДополнительныеПараметры.флЗначенияИдентичны;
РегламентированнаяОтчетностьКлиент.ПоказатьСтраницыОтчетаНаКлиенте(ЭтаФорма);
Если НЕ флЗначенияИдентичны Тогда
СформироватьДеревоРазделовОтчетаНаКлиенте();
Если НЕ ТекущийРазделОтчетаСокрНаим = Неопределено Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
РазделыОтчета.ПолучитьЭлементы(), "КолонкаРазделыОтчетаСокрНаим", ТекущийРазделОтчетаСокрНаим);
Если НЕ НайденнаяСтрока = Неопределено И НЕ НомерСтраницыРазделаОтчета = Неопределено
И НайденнаяСтрока.ПолучитьЭлементы().Количество() > 0 Тогда
НайденнаяСтрока = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
НайденнаяСтрока.ПолучитьЭлементы(), "КолонкаНомерСтраницыРазделаОтчета", НомерСтраницыРазделаОтчета);
КонецЕсли;
Если НЕ НайденнаяСтрока = Неопределено Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = НайденнаяСтрока.ПолучитьИдентификатор();
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ИзменитьТаблицуВариантовЗаполненияНаСервере()
ИмяТекущегоРаздела = СтруктураРеквизитовФормы.НаимТекущегоРаздела;
РегламентированнаяОтчетностьКлиентСервер.ИзменитьТаблицуВариантовЗаполнения(
ЭтаФорма, НЕ СтруктураРеквизитовФормы.ФлажокОтклАвтоРасчет);
ПараметрыОтчета = Новый Структура;
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
РегламентированнаяОтчетность.ПолучитьСведенияОПоказателяхОтчета(ЭтаФорма, ПараметрыОтчета);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланк(Команда)
Отказ = Ложь;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Команда", Команда);
ОписаниеОповещения = Новый ОписаниеОповещения("ПоказатьБланкЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередПечатьюРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПоказатьБланкЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Команда = ДополнительныеПараметры.Команда;
Печать(Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура АктивизироватьЯчейку(Ячейка) Экспорт
РегламентированнаяОтчетностьКлиент.АктивизироватьЯчейку(ЭтаФорма, Ячейка);
КонецПроцедуры
&НаКлиенте
Процедура Печать(ВидПечати, НеИзФормыОтчета = Ложь) Экспорт
Состояние(СтроковыеФункцииКлиентСервер.ПодставитьПараметрыВСтроку(
НСтр("ru='%1. Формируется печатная форма...'"), ЭтаФорма.Заголовок), , , БиблиотекаКартинок.Печать);
Если СтруктураРеквизитовФормы.мПроверятьСоотношенияПриПечатиИВыгрузки = Истина Тогда
РегламентированнаяОтчетностьКлиент.ПроверитьКонтрольныеСоотношения(ЭтаФорма, ОбработкаКС, Истина);
КонецЕсли;
Если НЕ ПечатьНаСервере(ВидПечати) Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ОткрытьФормуПредварительногоПросмотра(
ЭтаФорма, ВидПечати, , СтруктураРеквизитовФормы.СписокПечатаемыхЛистов);
СтруктураРеквизитовФормы.мРежимПечати = Ложь;
КонецПроцедуры
&НаСервере
Функция ПечатьНаСервере(ВидПечати)
Если НЕ РегламентированнаяОтчетность.ПринтерДоступен() Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр(
"ru='Перед формированием печатных форм необходимо определить в системе принтер и задать его в качестве используемого по умолчанию.'");
Сообщение.Сообщить();
Возврат Ложь;
КонецЕсли;
Если ТипЗнч(мДеревоВыбранныхСтраниц) <> Тип("ДанныеФормыДерево") Тогда
Возврат Ложь;
КонецЕсли;
СтруктураРеквизитовФормы.мПечатныеФормы.Очистить();
СтруктураРеквизитовФормы.мРежимПечати = Истина;
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Ложь);
ДанныеРазделов = Новый Структура;
ДанныеРазделов.Вставить("Титульный", ЭтаФорма["СтруктураДанныхТитульный"]);
ДанныеРазделов.Вставить("Таблица92", ЭтаФорма["СтруктураДанныхТаблица92"]);
ДанныеРазделов.Вставить("Таблица1", ЭтаФорма["СтруктураДанныхТаблица1"]);
ДанныеРазделов.Вставить("Таблица1_1", ЭтаФорма["СтруктураДанныхТаблица1_1"]);
ДанныеРазделов.Вставить("Таблица2", ЭтаФорма["СтруктураДанныхТаблица2"]);
ДанныеРазделов.Вставить("Таблица3", ЭтаФорма["СтруктураДанныхТаблица3"]);
ДанныеРазделов.Вставить("Таблица4", ЭтаФорма["СтруктураДанныхТаблица4"]);
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы92,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы92], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы11,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы11], Тип("ТаблицаЗначений")));
ДанныеРазделов.Вставить(СтруктураРеквизитовФормы.ИдГруппы2,
ДанныеФормыВЗначение(ЭтаФорма[СтруктураРеквизитовФормы.ИдГруппы2], Тип("ТаблицаЗначений")));
ПараметрыПечати = Новый Структура;
ПараметрыПечати.Вставить("ВыбраннаяФорма", СтруктураРеквизитовФормы.мВыбраннаяФорма);
ПараметрыПечати.Вставить("ДанныеРазделов", ДанныеРазделов);
ПараметрыПечати.Вставить("ВидПечати", ВидПечати);
ПараметрыПечати.Вставить("СтруктураРеквизитовФормы", СтруктураРеквизитовФормы);
ПараметрыПечати.Вставить("ДеревоВыбранныхСтраниц", ДанныеФормыВЗначение(мДеревоВыбранныхСтраниц,
Тип("ДеревоЗначений")));
ОбъектОтчета(ЭтаФорма.ИмяФормы).ПечатныйБланк(ПараметрыПечати);
КопироватьДанныеФормы(мДеревоВыбранныхСтраниц, мДеревоСтраницОтчета);
Возврат Истина;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица92(Форма)
ПрефиксПоказателейРаздела = "П00092";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица92" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица92 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица1_1(Форма)
ПрефиксПоказателейРаздела = "П00011";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица1_1" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица1_1 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица2(Форма)
ПрефиксПоказателейРаздела = "П00002";
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица2" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
ЭтоПоказатель = (СтрНайти(Область.Имя, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица2 Цикл
ЭтоПоказатель = (СтрНайти(Показатель.Ключ, ПрефиксПоказателейРаздела) = 1);
Если ЭтоПоказатель И ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ЗаполненаТаблица3(Форма)
Если Форма.СтруктураРеквизитовФормы.НаимТекущегоРаздела = "Таблица3" Тогда
Для Каждого Область Из Форма.ТабличныйДокумент.Области Цикл
Если Область.ТипОбласти = ТипОбластиЯчеекТабличногоДокумента.Прямоугольник Тогда
Если ПоказательЗаполнен(Область) Тогда
Возврат Истина;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
Иначе
Для Каждого Показатель Из Форма.СтруктураДанныхТаблица3 Цикл
Если ЗначениеЗаполнено(Показатель.Значение) Тогда
Возврат Истина;
КонецЕсли;
КонецЦикла;
Возврат Ложь;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ПоказательЗаполнен(ОбластьПоказателя)
Если ОбластьПоказателя.СодержитЗначение Тогда
ЗначениеОбласти = ОбластьПоказателя.Значение;
ТипЗначенияОбласти = ТипЗнч(ЗначениеОбласти);
Если ТипЗначенияОбласти = Тип("Число") Тогда
Возврат (ЗначениеОбласти <> 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" Тогда
СтандартнаяОбработка = Ложь;
Область.Значение = ?(СокрЛП(Область.Значение) = "", "Х", "");
Модифицированность = Истина;
ИначеЕсли НЕ СтруктураРеквизитовФормы.мАвтоВыборКодов И (СтрНачинаетсяС(ОбластьИмя, "П000020000105")
ИЛИ СтрНачинаетсяС(ОбластьИмя, "П00011ОСВЭД02") ИЛИ СтрНачинаетсяС(ОбластьИмя, "П00011ОСВЭД03")
ИЛИ СтрНачинаетсяС(ОбластьИмя, "П000110000102") ИЛИ СтрНачинаетсяС(ОбластьИмя, "П000110000103")) Тогда
СтандартнаяОбработка = Ложь;
КолонкаДляПоиска = ?(СтрНачинаетсяС(ОбластьИмя, "П00011ОСВЭД02") ИЛИ СтрНачинаетсяС(ОбластьИмя, "П000110000102"),
"Колонка2", "Колонка1");
ПараметрыФормы = Новый Структура;
ПараметрыФормы.Вставить("ОписаниеТаблицы", СтруктураРеквизитовФормы.АдресаТаблицВыбораЗначений["КодыПоОКВЭД"]);
ПараметрыФормы.Вставить("СтруктураДляПоиска", Новый Структура(КолонкаДляПоиска, СокрЛП(Область.Значение)));
Оп = Новый ОписаниеОповещения(
"ВвестиПоказатели", ЭтотОбъект, Новый Структура("КолонкаДляПоиска,Область", КолонкаДляПоиска, Область));
ОткрытьФорму("ОбщаяФорма.ФормаВыбораЗначенийИзТаблицыБРО", ПараметрыФормы,
ЭтаФорма,,,, Оп, РежимОткрытияОкнаФормы.БлокироватьОкноВладельца);
Иначе
ПараметрВводаПоля = СвойстваПоказателей.НайтиСтроки(Новый Структура("Показатель", ОбластьИмя));
Если ПараметрВводаПоля.Количество() = 0 Тогда
ПараметрВводаПоля = Неопределено;
Для Каждого Стр из СвойстваПоказателей Цикл
Если Лев(Область.Имя, СтрДлина(Стр.Показатель)) = Стр.Показатель Тогда
ПараметрВводаПоля = Стр;
Прервать;
КонецЕсли;
КонецЦикла;
Иначе
ПараметрВводаПоля = ПараметрВводаПоля[0];
КонецЕсли;
Если ПараметрВводаПоля <> Неопределено И ПараметрВводаПоля.ТаблицаЗначений.Количество() > 0 Тогда
ВвестиПоказатель(Элемент, Область, ПараметрВводаПоля.Показатель, Ложь, ПараметрВводаПоля.ТекстПриВыборе, ПараметрВводаПоля.ТаблицаЗначений, СтандартнаяОбработка);
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриАктивизации(Элемент)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Если ТабличныйДокумент.ТекущаяОбласть = Неопределено Тогда
Возврат;
КонецЕсли;
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Ложь;
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Ложь;
Если СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0009200001") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0001100001") > 0
ИЛИ СтрЧислоВхождений(ТабличныйДокумент.ТекущаяОбласть.Имя, "П0000200001") > 0 Тогда
Элементы.ТабличныйДокументКонтекстноеМенюДобавитьСтроку.Доступность = Истина;
ПозицияЗнакаПодчеркивания = СтрНайти(ТабличныйДокумент.ТекущаяОбласть.Имя, "_");
Если НЕ ПозицияЗнакаПодчеркивания = Неопределено Тогда
КодОбласти = Лев(ТабличныйДокумент.ТекущаяОбласть.Имя, ПозицияЗнакаПодчеркивания);
Если НЕ ТабличныйДокумент.Области.Найти(КодОбласти + "2") = Неопределено Тогда
Элементы.ТабличныйДокументКонтекстноеМенюУдалитьСтроку.Доступность = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ОткрытьФормуВводаДокументаПредставителяЗавершение(Результат, ДополнительныеПараметры) Экспорт
Если Результат <> Неопределено Тогда
мСтруктураДокУпПред = Результат;
Текст = "";
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НаименованиеУдостоверяющего, "");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРимскиеЦифры, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.СерияРусскиеБуквы, " ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.НомерУдостоверяющего, " № ");
Текст = ДобавитьРеквизит(Текст, Формат(мСтруктураДокУпПред.ДатаВыдачи,"ДФ=dd.MM.yyyy"), " от ");
Текст = ДобавитьРеквизит(Текст, мСтруктураДокУпПред.КемВыдан, " выдан: ");
ТабличныйДокумент.Области.ДокУпПред.Значение = Текст;
Модифицированность = Истина;
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ТабличныйДокументПриИзмененииСодержимогоОбласти(Элемент, Область)
Если Элементы.ТабличныйДокумент.Защита Тогда
Возврат;
КонецЕсли;
Модифицированность = Истина;
ИмяРаздела = Элементы.РазделыОтчета.ТекущиеДанные.КолонкаРазделыОтчетаСокрНаим;
ИмяОбласти = Область.Имя;
ПозицияПодстроки = СтрНайти(ИмяОбласти, "_");
Если ПозицияПодстроки > 0 Тогда
ИмяОбласти = Лев(ИмяОбласти, ПозицияПодстроки - 1);
КонецЕсли;
Если ИмяОбласти = "КодПодчиненности" Тогда
Если СтрДлина(СокрЛП(Область.Значение)) <> 5 Тогда
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru = 'Введенное значение кода подчиненности должно состоять из 5 символов.'");
Сообщение.Сообщить();
Область.Значение = "";
КонецЕсли;
КонецЕсли;
Если ИмяОбласти = "НомерКорректировки" Тогда
Если НЕ ЗначениеЗаполнено(Область.Значение) Тогда
Область.Значение = "0";
КонецЕсли;
ОтобразитьНомерКорректировки(ЭтаФорма, Область.Значение);
РегламентированнаяОтчетностьКлиентСервер.УстановитьЗначениеОКВЭД(ДатаПодписи,
СтруктураРеквизитовФормы,
ТабличныйДокумент.Области.ОКВЭД.Значение);
ИначеЕсли ИмяОбласти = "ДатаПодписи" Тогда
ДатаПодписи = ТабличныйДокумент.Области.ДатаПодписи.Значение;
ДатаПодписиПриИзмененииНаСервере();
Модифицированность = Истина;
КонецЕсли;
РасчетНаКлиенте(ИмяРаздела, ИмяОбласти);
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, ИмяРаздела);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Процедура ОтобразитьНомерКорректировки(Форма, ЗначениеКорректировки)
Форма.СтруктураРеквизитовФормы.ВидДокумента = ?(Число(ЗначениеКорректировки) = 0, 0, 1);
Форма.НомерКорректировки = Форма.СтруктураРеквизитовФормы.ВидДокумента * Число(ЗначениеКорректировки);
НомерКорректировкиСтрока = Формат(Форма.НомерКорректировки, "ЧН=0; ЧГ=");
СтрДлинаНомерКорректировкиСтрока = СтрДлина(НомерКорректировкиСтрока);
НомерКорректировкиСтрока = РегламентированнаяОтчетностьКлиентСервер.ДополнитьСтроку(НомерКорректировкиСтрока,3,"0",0);
Форма.ТабличныйДокумент.Области.НомерКорректировки.Значение = НомерКорректировкиСтрока;
Конецпроцедуры
&НаКлиенте
Процедура ЗаполнитьАвто(Команда)
Если РегламентированнаяОтчетностьКлиент.АвтозаполнениеБудетРеализованоВБудущихВерсиях(ЭтотОбъект) Тогда
Возврат;
КонецЕсли;
Отказ = Ложь;
РегламентированнаяОтчетностьКлиентПереопределяемый.ПроверитьВозможностьАвтоЗаполненияРеглОтчета(ИмяФормы, Отказ);
Если Отказ Тогда
Возврат;
КонецЕсли;
ДополнительныеПараметры = Новый Структура();
ДополнительныеПараметры.Вставить("Команда", Команда);
ОписаниеОповещения = Новый ОписаниеОповещения("ЗаполнитьАвтоЗавершение", ЭтотОбъект, ДополнительныеПараметры);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередЗаполнениемРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ЗаполнитьАвтоЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
Команда = ДополнительныеПараметры.Команда;
НачатьЗамерВремени();
ЗаполнитьАвтоНаСервере();
СтруктураРеквизитовФормы.ВыводитьСтраницуВТаблДокНаСервере = Ложь;
РегламентированнаяОтчетностьКлиент.ОбновитьДеревоРазделовВФормеОтчета(ЭтаФорма);
Если НЕ Элементы.РазделыОтчета.ТекущиеДанные.ПолучитьРодителя() = Неопределено Тогда
Элементы.РазделыОтчета.ТекущаяСтрока = Элементы.РазделыОтчета.ТекущиеДанные.ПолучитьРодителя().ПолучитьЭлементы()[0].ПолучитьИдентификатор();
КонецЕсли;
ВывестиСообщенияПослеАвтозаполнения();
КонецПроцедуры
&НаСервере
Процедура ЗаполнитьАвтоНаСервере()
СохранитьДанныеРаздела(СтруктураРеквизитовФормы.НаимТекущегоРаздела, Ложь);
ЗаполнитьПустыеСтруктурыДанных();
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("ДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("ДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыОтчета.Вставить("СообщенияПослеАвтозаполнения", СтруктураРеквизитовФормы.СообщенияПослеАвтозаполнения);
Контейнер = Новый Структура();
Контейнер.Вставить("Титульный", СтруктураДанныхТитульный);
Контейнер.Вставить("Таблица92", СтруктураДанныхТаблица92);
Контейнер.Вставить("Таблица92_ДанныеДопСтрок", П0009200001);
Контейнер.Вставить("Таблица1", СтруктураДанныхТаблица1);
Контейнер.Вставить("Таблица1_1", СтруктураДанныхТаблица1_1);
Контейнер.Вставить("Таблица1_1_ДанныеДопСтрок", П0001100001);
Контейнер.Вставить("Таблица2", СтруктураДанныхТаблица2);
Контейнер.Вставить("Таблица2_ДанныеДопСтрок", П0000200001);
Контейнер.Вставить("Таблица3", СтруктураДанныхТаблица3);
Контейнер.Вставить("Таблица4", СтруктураДанныхТаблица4);
ЭтаФормаИмя = ЭтаФорма.ИмяФормы;
Если СтрЧислоВхождений(ЭтаФормаИмя, "ВнешнийОтчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "ВнешнийОтчет.", "");
ИначеЕсли СтрЧислоВхождений(ЭтаФормаИмя, "Отчет.") > 0 Тогда
ЭтаФормаИмя = СтрЗаменить(ЭтаФормаИмя, "Отчет.", "");
КонецЕсли;
ЭтаФормаИмя = Лев(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") - 1);
РегламентированнаяОтчетностьПереопределяемый.ЗаполнитьОтчет(ЭтаФормаИмя, ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ПараметрыОтчета, Контейнер);
ЗаполнитьПустыеСтруктурыДанных();
Если П0009200001.Количество() = 0 Тогда
П0009200001.Добавить();
КонецЕсли;
Если П0001100001.Количество() = 0 Тогда
П0001100001.Добавить();
КонецЕсли;
Если П0000200001.Количество() = 0 Тогда
П0000200001.Добавить();
КонецЕсли;
ОбъектОтчета(ЭтаФорма.ИмяФормы).ЗаполнитьСтруктурыДанныхРазделовЗначениямиИзДопСтрок(
СтруктураРеквизитовФормы.мВыбраннаяФорма, Контейнер);
ВывестиМакетВТаблДокНаСервере(СтруктураРеквизитовФормы.НаимТекущегоРаздела, 1);
РасчетНаСервере();
Для Каждого Страница Из мДеревоСтраницОтчета.ПолучитьЭлементы() Цикл
ВключитьПечатьЗаполненногоНеобязательногоРаздела(ЭтаФорма, Страница.ИмяСтраницы);
КонецЦикла;
СтруктураРеквизитовФормы.Вставить("СообщенияПослеАвтозаполнения", ПараметрыОтчета.СообщенияПослеАвтозаполнения);
Модифицированность = Истина;
КонецПроцедуры
&НаКлиенте
Процедура ВывестиСообщенияПослеАвтозаполнения()
Если ТипЗнч(СтруктураРеквизитовФормы.СообщенияПослеАвтозаполнения) = Тип("Массив") Тогда
ОчиститьСообщения();
Для каждого ТекстСообщения Из СтруктураРеквизитовФормы.СообщенияПослеАвтозаполнения Цикл
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = СтрШаблон(НСтр("ru='%1'"), ТекстСообщения);
Сообщение.Сообщить();
КонецЦикла;
КонецЕсли;
СтруктураРеквизитовФормы.Вставить("СообщенияПослеАвтозаполнения", Неопределено);
КонецПроцедуры
&НаКлиенте
Процедура Расшифровать(Команда)
ИмяТекущейЯчейки = Элементы.ТабличныйДокумент.ТекущаяОбласть.Имя;
Таблица1_1_ОКВЭД = "";
Если Лев(ИмяТекущейЯчейки, 6) = "П00011" Тогда
ОбластьИскомойЯчейки = ТабличныйДокумент.Области.Найти(Лев(ИмяТекущейЯчейки, 11) + "03");
Если ОбластьИскомойЯчейки <> Неопределено Тогда
Таблица1_1_ОКВЭД = СокрЛП(ОбластьИскомойЯчейки.Значение);
Иначе
ОбластьИскомойЯчейки = ТабличныйДокумент.Области.Найти(Лев(ИмяТекущейЯчейки, 11) + "03" + Сред(ИмяТекущейЯчейки, 14));
Если ОбластьИскомойЯчейки <> Неопределено Тогда
Таблица1_1_ОКВЭД = СокрЛП(ОбластьИскомойЯчейки.Значение);
КонецЕсли;
КонецЕсли;
КонецЕсли;
ПараметрыОтчета = Новый Структура();
ПараметрыОтчета.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыОтчета.Вставить("мДатаНачалаПериодаОтчета", СтруктураРеквизитовФормы.мДатаНачалаПериодаОтчета);
ПараметрыОтчета.Вставить("мДатаКонцаПериодаОтчета", СтруктураРеквизитовФормы.мДатаКонцаПериодаОтчета);
ПараметрыОтчета.Вставить("ЗначениеТекущегоПоказателя", Элементы.ТабличныйДокумент.ТекущаяОбласть.Текст);
ПараметрыОтчета.Вставить("Таблица1_1_ОКВЭД", Таблица1_1_ОКВЭД);
ИДИменПоказателей = Новый Массив();
ИДИменПоказателей.Добавить(Элементы.ТабличныйДокумент.ТекущаяОбласть.Имя);
РегламентированнаяОтчетностьКлиент.ОткрытьРасшифровкуОтчета(
ИмяОтчета(ЭтаФорма.ИмяФормы),
ИмяФормыОтчета(ЭтаФорма.ИмяФормы), ИДИменПоказателей, ПараметрыОтчета);
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция РазделЗаполнен(Форма, ИмяСтраницы)
Если ИмяСтраницы = "Таблица92" Тогда
Возврат ЗаполненаТаблица92(Форма);
ИначеЕсли ИмяСтраницы = "Таблица1_1" Тогда
Возврат ЗаполненаТаблица1_1(Форма);
ИначеЕсли ИмяСтраницы = "Таблица2" Тогда
Возврат ЗаполненаТаблица2(Форма);
ИначеЕсли ИмяСтраницы = "Таблица3" Тогда
Возврат ЗаполненаТаблица3(Форма);
Иначе
Возврат Истина;
КонецЕсли;
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Процедура ВключитьПечатьЗаполненногоНеобязательногоРаздела(Форма, ИмяРаздела)
ОбязательныеРазделы = Новый Массив;
ОбязательныеРазделы.Добавить("Титульный");
ОбязательныеРазделы.Добавить("Таблица1");
ОбязательныеРазделы.Добавить("Таблица4");
Если ОбязательныеРазделы.Найти(ИмяРаздела) <> Неопределено Тогда
Возврат;
КонецЕсли;
НастройкиСтраницыРаздела = РегламентированнаяОтчетностьКлиентСервер.НайтиЭлементВДанныхФормыДерево(
Форма.мДеревоВыбранныхСтраниц.ПолучитьЭлементы(), "ИмяСтраницы", ИмяРаздела);
Если НастройкиСтраницыРаздела = Неопределено Тогда
Возврат;
КонецЕсли;
ВРазделеОтключенаПечать = (НастройкиСтраницыРаздела.ВыводНаПечать = 0);
Если ВРазделеОтключенаПечать И РазделЗаполнен(Форма, ИмяРаздела) Тогда
НастройкиСтраницыРаздела.ВыводНаПечать = 1;
КонецЕсли;
КопироватьДанныеФормы(Форма.мДеревоВыбранныхСтраниц, Форма.мДеревоСтраницОтчета);
КонецПроцедуры
&НаКлиенте
Функция НачатьЗамерВремени()
Если ОбщегоНазначенияКлиент.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначенияКлиент.ОбщийМодуль("ОценкаПроизводительностиКлиент").ЗамерВремени(КлючеваяОперация, , Истина);
КонецЕсли;
КонецФункции
&НаСервереБезКонтекста
Функция ЗначениеТаймера()
ВыполнятьЗамерыПроизводительности = ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительностиВызовСервераПовтИсп").ВыполнятьЗамерыПроизводительности();
Если ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности")
И ВыполнятьЗамерыПроизводительности Тогда
Возврат ОценкаПроизводительности.НачатьЗамерВремени();
КонецЕсли;
Возврат Неопределено;
КонецФункции
&НаСервереБезКонтекста
Процедура ЗаписатьЗамер(ВремяНачала)
Если ВремяНачала <> Неопределено И ОбщегоНазначения.ПодсистемаСуществует("СтандартныеПодсистемы.ОценкаПроизводительности") Тогда
КлючеваяОперация = "ЗаполнениеФормыНалоговаяОтчетность4ФСС";
ОбщегоНазначения.ОбщийМодуль("ОценкаПроизводительности").ЗакончитьЗамерВремени(КлючеваяОперация, ВремяНачала);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернете(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверитьВИнтернетеЗавершение", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверитьВИнтернетеЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПроверитьВИнтернете(ЭтаФорма, "ФСС");
КонецПроцедуры
#Область ПанельОтправкиВКонтролирующиеОрганы
&НаКлиенте
Процедура ОбновитьОтправку(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОбновитьОтправкуИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаПротоколНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьПротоколИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьНеотправленноеИзвещение(Команда)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОтправитьНеотправленноеИзвещениеИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ЭтапыОтправкиНажатие(Элемент)
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьСостояниеОтправкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиент.ОткрытьКритическиеОшибкиИзПанелиОтправки(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаКлиенте
Процедура ГиперссылкаНаименованиеЭтапаНажатие(Элемент)
ПараметрыИзменения = Новый Структура;
ПараметрыИзменения.Вставить("Форма", ЭтаФорма);
ПараметрыИзменения.Вставить("Организация", СтруктураРеквизитовФормы.Организация);
ПараметрыИзменения.Вставить("КонтролирующийОрган",
ПредопределенноеЗначение("Перечисление.ТипыКонтролирующихОрганов.ФСС"));
РегламентированнаяОтчетностьКлиент.ИзменитьСтатусОтправки(ПараметрыИзменения);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрган(Команда)
ОписаниеОповещения = Новый ОписаниеОповещения("ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой", ЭтотОбъект);
Отказ = Ложь;
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередОтправкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ПроверкаВозможностиВыгрузкиРегламентированногоОтчетаПередОтправкой(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
ОписаниеОповещения = Новый ОписаниеОповещения("ОтправитьВКонтролирующийОрганЗавершение", ЭтотОбъект);
ОнлайнСервисыРегламентированнойОтчетностиКлиент.ПередВыгрузкойРегламентированногоОтчета(ОписаниеОповещения, ЭтотОбъект, Отказ);
КонецПроцедуры
&НаКлиенте
Процедура ОтправитьВКонтролирующийОрганЗавершение(Отказ, ДополнительныеПараметры) Экспорт
Если Отказ Тогда
Возврат;
КонецЕсли;
РегламентированнаяОтчетностьКлиент.ПриНажатииНаКнопкуОтправкиВКонтролирующийОрган(ЭтаФорма, "ФСС");
КонецПроцедуры
&НаСервере
Функция ОбъектОтчета(ЭтаФормаИмя) Экспорт
Если мОбъектОтчета = Неопределено Тогда
мОбъектОтчета = РегламентированнаяОтчетностьВызовСервера.ОбъектОтчета(ЭтаФормаИмя);
КонецЕсли;
Возврат мОбъектОтчета;
КонецФункции
&НаКлиенте
Процедура ЗаписатьИЗакрыть(Команда)
ДополнительныеПараметры = Новый Структура;
ДополнительныеПараметры.Вставить("Форма", ЭтаФорма);
Оповещение = Новый ОписаниеОповещения("ПослеСохраненияФормыЗавершение", ЭтотОбъект, ДополнительныеПараметры);
СохранитьНаКлиенте(, Оповещение);
КонецПроцедуры
&НаКлиенте
Процедура ПослеСохраненияФормыЗавершение(Результат, ДополнительныеПараметры) Экспорт
ДополнительныеПараметры.Форма.Закрыть();
КонецПроцедуры
&НаСервере
Процедура РазрешитьРедактированиеРеквизитовОбъекта() Экспорт
РегламентированнаяОтчетность.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_РазрешитьРедактированиеРеквизитовОбъекта(Команда)
РегламентированнаяОтчетностьКлиент.РазрешитьРедактированиеРеквизитовОтчета(ЭтотОбъект);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОткрытьПрисоединенныеФайлы(Команда)
РегламентированнаяОтчетностьКлиент.СохранитьОтчетИОткрытьФормуПрисоединенныеФайлы(ЭтаФорма);
КонецПроцедуры
&НаКлиенте
Процедура КомментарийПриИзменении(Элемент)
Модифицированность = Истина;
КонецПроцедуры
&НаКлиентеНаСервереБезКонтекста
Функция ИмяОтчета(ЭтаФормаИмя)
Форма_Имя = СтрЗаменить(ЭтаФормаИмя, "Внешний", "");
Возврат Сред(Лев(Форма_Имя, СтрНайти(Форма_Имя, ".Форма.") - 1), 7);
КонецФункции
&НаКлиентеНаСервереБезКонтекста
Функция ИмяФормыОтчета(ЭтаФормаИмя)
Возврат Сред(ЭтаФормаИмя, СтрНайти(ЭтаФормаИмя, ".Форма.") + 7);
КонецФункции
#Область ОбработчикиСобытийФормы
#Область ОбработчикиСобытийПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокументаОповещение(Контекст, ДополнительныеПараметры) Экспорт
ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст);
ВыполнитьОбработкуОповещения(ДополнительныеПараметры, Контекст);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВыполнитьЗадачуПоОбработкеДокумента(Команда)
РегламентированнаяОтчетностьКлиент.ВыполнитьЗадачу(
ЭтотОбъект,
Команда,
?(ЗначениеЗаполнено(СтруктураРеквизитовФормы.мСохраненныйДок),
СтруктураРеквизитовФормы.мСохраненныйДок,
СтруктураРеквизитовФормы.ПустаяСсылкаНаРегламентированныйОтчет));
КонецПроцедуры
#КонецОбласти
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Подключаемый_КомментарийНаправившегоОткрытие(Элемент, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийНаправившегоОткрытие(ЭтотОбъект, Элемент, СтандартнаяОбработка);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_КомментарийСледующемуНачалоВыбора(Элемент, ДанныеВыбора, СтандартнаяОбработка)
РегламентированнаяОтчетностьКлиент.КомментарийСледующемуНачалоВыбора(
ЭтотОбъект, Элемент, ДанныеВыбора, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти
&НаКлиенте
Процедура ОбработкаОповещения(ИмяСобытия, Параметр, Источник)
Если РегламентированнаяОтчетностьКлиент.ЭтоСобытиеЗавершениеОтправки(ИмяСобытия) Тогда
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецЕсли;
КонецПроцедуры
#КонецОбласти
#Область СлужебныеПроцедурыИФункции
&НаСервере
Процедура ОбновитьИнформационнуюПанельБРО()
ПараметрыОтображения = ЭлектронныйДокументооборотСФСС.ПараметрыИнформационнойПанелиБРО();
ПараметрыОтображения.Организация = СтруктураРеквизитовФормы.Организация;
ПараметрыОтображения.Группа = Элементы.ИнформационнаяПанельБРО;
ПараметрыОтображения.Форма = ЭтотОбъект;
ЭлектронныйДокументооборотСФСС.ОбновитьИнформационнуюПанельБРО(ПараметрыОтображения);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ИнформационнаяПанельБРООбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
ЭлектронныйДокументооборотСФССКлиент.ИнформационнаяПанельБРОНажатие(
ЭтотОбъект,
НавигационнаяСсылкаФорматированнойСтроки,
СтандартнаяОбработка);
КонецПроцедуры
#Область ПроцессыОбработкиДокументов
&НаКлиенте
Процедура Записать(ПараметрыЗаписи) Экспорт
СохранитьНаКлиенте();
КонецПроцедуры
&НаСервере
Процедура ВыполнитьЗадачуПоОбработкеДокументаНаСервере(Контекст)
РегламентированнаяОтчетность.ВыполнитьЗадачу(ЭтотОбъект, Контекст, СтруктураРеквизитовФормы.мСохраненныйДок);
КонецПроцедуры
&НаСервере
Процедура УправлениеДоступностьюРеквизитов(БлокируемыеЭлементы, ТолькоПросмотр) Экспорт
РегламентированнаяОтчетность.УправлениеДоступностьюРеквизитов(ЭтотОбъект, БлокируемыеЭлементы, ТолькоПросмотр);
КонецПроцедуры
#КонецОбласти
&НаСервере
Процедура ИнициализироватьВыводСтатусовИВажныхСообщений_85()
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.УстановитьРазмещениеНаименованияЭтапаБРО_85(ЭтотОбъект);
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаСервере
Процедура ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере() Экспорт
Если РегламентированнаяОтчетность.ДоступнаПодсистема85() Тогда
МодульЭДОСКонтролирующимиОрганами = ОбщегоНазначения.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганами");
МодульЭДОСКонтролирующимиОрганами.ВывестиСтатусыИВыжныеСообщенияНаФорму_85(ЭтотОбъект);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ДетальноеОписаниеСтатусаПослеВыбора(Результат, ДополнительныеПараметры) Экспорт
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
Если Результат = "ОбновитьОтправку" Тогда
ОбновитьОтправку(Неопределено);
ИначеЕсли Результат = "ГиперссылкаПротокол" Тогда
ГиперссылкаПротоколНажатие(Неопределено);
ИначеЕсли Результат = "ЭтапыОтправки" Тогда
ЭтапыОтправкиНажатие(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ВывестиСтатусыИВыжныеСообщенияНаФорму() Экспорт
ВывестиСтатусыИВыжныеСообщенияНаФормуНаСервере();
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНажатияКнопкиВВажномСообщении(Команда)
Если Команда.Имя = "ОтправитьНеотправленноеИзвещение" Тогда
ОтправитьНеотправленноеИзвещение(Неопределено);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаНавигационнойСсылкиВВажномСообщении(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;
Если НРег(НавигационнаяСсылкаФорматированнойСтроки) = "критическиеошибки" Тогда
КритическиеОшибкиОбработкаНавигационнойСсылки(Элемент, НавигационнаяСсылкаФорматированнойСтроки, СтандартнаяОбработка);
КонецЕсли;
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработкаЗакрытияВажногоСообщения(Команда)
МодульКлиентСервер = ОбщегоНазначенияКлиент.ОбщийМодуль("ЭлектронныйДокументооборотСКонтролирующимиОрганамиКлиентСервер");
МодульКлиентСервер.ЗакрытьВажноеСообщение(ЭтотОбъект, Команда.Имя);
КонецПроцедуры
&НаКлиенте
Процедура Подключаемый_ОбработатьДействиеИнформационногоСообщения(ЭлементИлиКоманда, НавигационнаяСсылка = Неопределено, СтандартнаяОбработка = Неопределено)
МодульОбщегоНазначенияКлиент = ОбщегоНазначенияКлиент.ОбщийМодуль("ОбщегоНазначенияКлиент");
МодульОбщегоНазначенияКлиент.ОбработатьДействиеИнформационногоСообщения(ЭтотОбъект, ЭлементИлиКоманда, НавигационнаяСсылка, СтандартнаяОбработка);
КонецПроцедуры
#КонецОбласти