Расчетная ведомость по средствам ФСС (форма 4-ФСС) / Настройки загрузки из файла XML 2022 (кв.2) / Содержимое макета
файл // Область "Настройки" описывает параметры инициализации механизма загрузки
// регламентированных отчетов из файлов выгрузки. Формат области настроек - JSON.
//
// Описание параметров:
// * Установкой параметра "РазрешитьЗагрузку" в "true" или "false" регулируем видимость
// кнопки "Загрузить" и возможность загрузки из файла в форме отчета.
// * Параметр "ФорматыСхемВыгрузки" описывает соответствие имен макетов схем выгрузки
// поддерживаемым форматам загрузки. Если у формы единственная схема выгрузки или
// нужно всегда использовать схему по умолчанию - указываем значение "null".
// * Параметр "ОбластиОбработчиков" содержит список имен используемых обработчиков
// загружаемых данных. Имена соответствуют областям макета, в которых можно размещать
// произвольные алгоритмы на языке "1С:Предприятие" для обработки доступных объектов.
//
// Примечание:
// Сопоставление имен узлов из файла XML и имен показателей отчета выполняется по данным схемы выгрузки,
// поэтому обработчики используются для получения значений показателей не описанных в схеме выгрузки.
//
#Область Настройки
{
"РазрешитьЗагрузку" : true,
"ФорматыСхемВыгрузки" : null,
"ОбластиОбработчиков" : {
"ПередЗагрузкой" : "ПредОбработкаСхемыЗагрузки",
"ПослеЗагрузки" : "ПостОбработкаДокументаОтчета",
}
}
#КонецОбласти
// Доступны параметры:
//
// П.ДеревоДляЗагрузки - выбранное дерево схемы загрузки, не заполненное данными;
// П.ПараметрыОтчета - параметры, сформированные в форме отчета, используются для выгрузки.
//
#Область ПредОбработкаСхемыЗагрузки
НайденныеУзлы = УзлыПоXPath(П.ДеревоДляЗагрузки, "/F4CALC");
Для Каждого НайденныйУзел Из НайденныеУзлы Цикл
НайденныйУзел.Обязательность = НайденныйУзел.Обязательность + "П";
КонецЦикла;
#КонецОбласти
// Доступны параметры:
//
// П.ДанныеОтчета - заполненные данные документа регламентированного отчета;
// П.ДеревоДляЗагрузки - выбранное дерево схемы загрузки, не заполненное данными;
// П.ПараметрыОтчета - параметры, сформированные в форме отчета, используются для выгрузки.
//
#Область ПостОбработкаДокументаОтчета
ГруппаТаблицаПлатежи = УзлыПоXPath(П.ДеревоДляЗагрузки, "/F4INFO/PAYM_ORDER"); // группа строк таблицы платежей
Для НомСтроки = 1 По ГруппаТаблицаПлатежи.Количество() Цикл
УзелПлатеж = ГруппаТаблицаПлатежи[НомСтроки - 1];
УзелЧислоСумма = УзлыПоXPath(УзелПлатеж, "@SUM")[0];
УзелНомерСтроки = СкопированныйУзел(УзелПлатеж, УзелЧислоСумма);
УзелНомерСтроки.Код = "НомСтроки";
УзелНомерСтроки.Ключ = "П000920000101";
УзелНомерСтроки.МинРазмерность = 1;
УзелНомерСтроки.Значение = Формат(НомСтроки, "ЧГ=0");
ЗаполнитьДаннымиСохраненныйДокументИзДереваДляЗагрузки(УзелПлатеж, П.ДанныеОтчета, П.ПараметрыОтчета, , , НомСтроки);
КонецЦикла;
ГруппаТаблица2 = УзлыПоXPath(П.ДеревоДляЗагрузки, "/F4DOGOV"); // группа строк таблицы 2
Для НомСтроки = 1 По ГруппаТаблица2.Количество() Цикл
УзелСтрокаСведений = ГруппаТаблица2[НомСтроки - 1];
УзелЧислоВремРаб = УзлыПоXPath(УзелСтрокаСведений, "@WRK_P")[0];
УзелНомерСтроки = СкопированныйУзел(УзелСтрокаСведений, УзелЧислоВремРаб);
УзелНомерСтроки.Код = "НомСтроки";
УзелНомерСтроки.Ключ = "П000020000101";
УзелНомерСтроки.Значение = Формат(НомСтроки, "ЧГ=0");
ЗаполнитьДаннымиСохраненныйДокументИзДереваДляЗагрузки(УзелСтрокаСведений, П.ДанныеОтчета, П.ПараметрыОтчета, , , НомСтроки);
КонецЦикла;
ГруппаТаблица11 = УзлыПоXPath(П.ДеревоДляЗагрузки, "/F4CALC"); // группа строк таблицы 1.1
НомСтр = 0;
ЭтоПерваяЗаполненная = Истина;
Для НомСтроки = 0 По ГруппаТаблица11.Количество() - 1 Цикл
УзелРасшифровкаСведений = ГруппаТаблица11[НомСтроки];
ЗначениеОКВЭД = СокрЛП(УзлыПоXPath(УзелРасшифровкаСведений, "@OKVED_P")[0].Значение);
ОКВЭДЗаполнен = СтроковыеФункцииКлиентСервер.ТолькоЦифрыВСтроке(СтрЗаменить(ЗначениеОКВЭД, ".", ""));
Если НЕ ОКВЭДЗаполнен И НомСтроки = 0 Тогда
УзелРасшифровкаСведений.Многострочность = Ложь;
Для Каждого УзелПоказатель Из УзелРасшифровкаСведений.Строки Цикл
УзелПоказатель.Ключ = СтрЗаменить(УзелПоказатель.Ключ, "П0001100001", "П00011ВСЕГО");
УзелПоказатель.Многострочность = Ложь;
КонецЦикла;
ИначеЕсли ОКВЭДЗаполнен И ЭтоПерваяЗаполненная Тогда
ЭтоПерваяЗаполненная = Ложь;
УзелРасшифровкаСведений.Многострочность = Ложь;
Для Каждого УзелПоказатель Из УзелРасшифровкаСведений.Строки Цикл
УзелПоказатель.Ключ = СтрЗаменить(УзелПоказатель.Ключ, "П0001100001", "П00011ОСВЭД");
УзелПоказатель.Многострочность = Ложь;
КонецЦикла;
ИначеЕсли НЕ ЭтоПерваяЗаполненная Тогда
НомСтр = НомСтр + 1;
УзелДляКопирования = УзлыПоXPath(УзелРасшифровкаСведений, "@RATE_MIS_P")[0];
УзелНомерСтроки = СкопированныйУзел(УзелРасшифровкаСведений, УзелДляКопирования);
УзелНомерСтроки.Код = "НомСтроки";
УзелНомерСтроки.Ключ = "П000110000101";
УзелНомерСтроки.МаксРазмерность = 6;
УзелНомерСтроки.МинРазмерность = 0;
УзелНомерСтроки.Значение = Формат(НомСтр, "ЧГ=0");
Для Каждого ИмяПоказателя Из СтрРазделить("RATE_DEC_P,RATE_INC_P,MIS_ALL_P", ",") Цикл
УзлыДляОчисткиКлюча = УзлыПоXPath(УзелРасшифровкаСведений, "@" + ИмяПоказателя);
Если ЗначениеЗаполнено(УзлыДляОчисткиКлюча) Тогда
УзлыДляОчисткиКлюча[0].Ключ = "";
КонецЕсли;
КонецЦикла;
Иначе
Продолжить;
КонецЕсли;
ЗаполнитьДаннымиСохраненныйДокументИзДереваДляЗагрузки(УзелРасшифровкаСведений, П.ДанныеОтчета, П.ПараметрыОтчета, , , НомСтр);
КонецЦикла;
Таблица1 = Неопределено;
П.ДанныеОтчета.ПоказателиОтчета.Свойство("ПолеТабличногоДокументаТаблица1", Таблица1);
Если Таблица1 <> Неопределено Тогда
ЗначениеПоказателя = Неопределено;
Если Таблица1.Свойство("П000010000001", ЗначениеПоказателя) Тогда
Таблица1.Вставить("П000010000001", ?(ЗначениеЗаполнено(ЗначениеПоказателя) И ЗначениеПоказателя <> "0", "Х", ""));
КонецЕсли;
Если Таблица1.Свойство("П000010000002", ЗначениеПоказателя) Тогда
Таблица1.Вставить("П000010000002", ?(ЗначениеЗаполнено(ЗначениеПоказателя) И ЗначениеПоказателя <> "0", "Х", ""));
КонецЕсли;
Таблица1.Вставить("П000010000103", Таблица1.П000010000203 + Таблица1.П000010000303);
Таблица1.Вставить("П000010000104", Таблица1.П000010000204 + Таблица1.П000010000304);
Таблица1.Вставить("П000010000105", Таблица1.П000010000205 + Таблица1.П000010000305);
Таблица1.Вставить("П000010000106", Таблица1.П000010000206 + Таблица1.П000010000306);
КонецЕсли;
Титульный = Неопределено;
П.ДанныеОтчета.ПоказателиОтчета.Свойство("ПолеТабличногоДокументаТитульный", Титульный);
Если Титульный <> Неопределено Тогда
БюджетнаяОрганизация = Неопределено;
П.ПараметрыОтчета.Свойство("БюджетнаяОрганизация", БюджетнаяОрганизация);
Титульный.КодПодчиненности = П.ПараметрыОтчета.КодПодчиненности;
Титульный.ПрекращениеДеятельности = ?(ЧислоИзСтроки(П.ПараметрыОтчета.ПрекращениеДеятельности) = 1, "Л", "");
Титульный.БюджетнаяОрганизация = ?(ЧислоИзСтроки(БюджетнаяОрганизация) = 0, "", БюджетнаяОрганизация);
Титульный.ЧислРаботников = П.ПараметрыОтчета.ЧислРаботников;
Титульный.ЧислФизЛицВыпл = П.ПараметрыОтчета.ЧислФизЛицВыпл;
Титульный.ЧислИнвалидов = П.ПараметрыОтчета.ЧислИнвалидов;
Титульный.ЧислВред = П.ПараметрыОтчета.ЧислВред;
Титульный.ПрПодп = П.ПараметрыОтчета.ПризнакПодписанта;
Титульный.ОргПодписантФамилия = П.ПараметрыОтчета.ОргДиректор;
Титульный.ДокУпПред = П.ПараметрыОтчета.ДокументПредставителя;
КонецЕсли;
Если ТипЗнч(П.ДанныеОтчета.ДеревоНастройкиСтраниц) = Тип("ДеревоЗначений") Тогда
СписокЗаполненныхРазделов = П.ДанныеОтчета.СписокЗаполненныхРазделов;
Для Каждого ОписаниеСтраницыРаздела Из П.ДанныеОтчета.ДеревоНастройкиСтраниц.Строки Цикл
Если СписокЗаполненныхРазделов.НайтиПоЗначению(ОписаниеСтраницыРаздела.ИмяСтраницы) <> Неопределено
И НЕ ЗначениеЗаполнено(ОписаниеСтраницыРаздела.ВыводНаПечать) Тогда
ОписаниеСтраницыРаздела.ВыводНаПечать = 1;
// Для автоматического включения страниц и записи изменений.
ОписаниеСтраницыРаздела.ПоказатьСтраницу = 0;
КонецЕсли;
КонецЦикла;
КонецЕсли;
Сообщение = Новый СообщениеПользователю;
Сообщение.Текст = НСтр("ru='Снимите в меню ""Настройка"" флажок ""Отключить автоматический расчет вычисляемых ячеек"""
+ " чтобы выполнить перерасчет всех рассчитываемых показателей.'");
Сообщение.Сообщить();
#КонецОбласти