Формы регламентированных отчетов могут заполнятся на основе внешних данных.
Однако внешними данными для УПП могут является только файлы xml выгруженные их ЗуП и как говорится пользователям ЗиК просьба не беспокоить.
Следующая кнопка позволяет быстро заполнить регламентированный отчет, данными импортируемыми из ЗиК
//Осуществляет ипорт данных из файлов 7.7 prb
//
Процедура КоманднаяПанельФормыИмпорт77(Кнопка)
Длг = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.Открытие);
Длг.Заголовок = "Выберите файлы данных регламентированной отчетности";
Длг.Фильтр = "Файлы данных 7.7 (*.prb)|*.prb|Все файлы (*.*)|*.*";
Длг.Расширение = ".prb";
Длг.МножественныйВыбор=Истина;
Если Длг.Выбрать() Тогда
Текст="";
Для каждого ИмяФайла из Длг.ВыбранныеФайлы Цикл
ТекстДок=Новый ТекстовыйДокумент;
ТекстДок.Прочитать(ИмяФайла);
Текст=Текст+ТекстДок.ПолучитьТекст();
КонецЦикла;
//теперь формируем таблицу с значениями
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.IgnoreCase = Истина;
RegExp.MultiLine = Истина;
RegExp.Global = Истина;
RegExp.Pattern = "{""(N|S)"",""0"",""0"",""0"",""0"",""0"",""((?:.|\s)*?)""},""(П\d*)""}"; //ШАБЛОН РЕГУЛЯНОГО ВЫРАЖЕНИЯ
Вхождения = RegExp.Execute(Текст);
Результат=Неопределено;
Для Каждого Вхождение из Вхождения Цикл
Если Результат=Неопределено Тогда
Результат=Новый ТаблицаЗначений;
Для Колонка=1 по Вхождение.SubMatches.Count Цикл
Результат.Колонки.Добавить("Колонка"+(Колонка-1),Новый ОписаниеТипов("Строка"));
КонецЦикла;
КонецЕсли;
НоваяСтрока=Результат.Добавить();
Для каждого Колонка из Результат.Колонки Цикл
НоваяСтрока[Результат.Колонки.Индекс(Колонка)]=Вхождение.SubMatches(Результат.Колонки.Индекс(Колонка));
КонецЦикла;
Состояние(Результат.Количество());
Попытка
НоваяСтрока.Колонка1=Число(СокрЛП(НоваяСтрока.Колонка1));
Исключение
КонецПопытки;
КонецЦикла;
//заполняем печ формы
Если Не Результат=Неопределено Тогда
Для Каждого СтрокаОписанияТД из мСвойстваРазделовДекларации.Строки Цикл
ТабПоле=ЭлементыФормы["ПолеТабличногоДокумента"+СтрокаОписанияТД.ИмяСтраницы];
Для каждого Строка из Результат Цикл
Попытка
ТабПоле.Области[Строка.Колонка2].Значение=Строка.Колонка1;
Состояние(Строка.Колонка2+" - "+Строка.Колонка1);
Исключение
Конецпопытки;
КонецЦикла;
Расчет(СтрокаОписанияТД.ИмяСтраницы);
КонецЦикла;
КонецЕсли;
КонецЕсли;
КонецПроцедуры
Комментариев нет:
Отправить комментарий