jdcodorg @ Вчера, 21:22
,
Так как МеДок не использую, то написал код для корректировки прямо в выходных файлах (ЗУП 2.1).
Функция ПризнакОтчетногоПериода(ПутККаталогу)
рет = Ложь;
СписокФайлов = НайтиФайлы(ПутККаталогу,"*J0500109*.xml");
Если СписокФайлов.Количество() = 1 Тогда
Док = Новый ТекстовыйДокумент;
Док.Прочитать(СписокФайлов[0].ПолноеИмя, КодировкаТекста.ANSI);
Текст = Док.ПолучитьТекст();
СтрПоиска = "C_DOC_STAN";
поз = Найти(Текст, СтрПоиска);
Если поз <> 0 Тогда
знч = Сред(Текст, поз + СтрДлина(СтрПоиска)+1, 1);
Если знч = "1" Тогда
рет = Истина;
КонецЕсли;
КонецЕсли;
КонецЕсли;
Возврат рет;
КонецФункции
// Из уже сформированных (выгруженных) файлов отчёта убирает значение 0 в колонке
// "ознака "0", якщо рядок потрібно ввести, чи ознака "1", якщо рядок потрібно виключити".
// Это можно делать только для файлов отчёта с меткой "Звітний".
//
Процедура КорректироватьОзнаку(Кнопка)
Перем RegExp;
Диалог = Новый ДиалогВыбораФайла(РежимДиалогаВыбораФайла.ВыборКаталога);
Диалог.Заголовок = НСтр("ru='Выберите каталог выгрузки xml файлов';uk='Виберіть каталог вивантаження xml файлів'");
Если НЕ Диалог.Выбрать() Тогда
Возврат;
КонецЕсли;
Если НЕ ПризнакОтчетногоПериода(Диалог.Каталог) Тогда
Сообщить("Это отчёт не ""Отчётного периода"". Корректировать нечего.",СтатусСообщения.Внимание);
Возврат;
КонецЕсли;
СписокФайлов = НайтиФайлы(Диалог.Каталог,"*J0510?09*.xml");
Если СписокФайлов.Количество() <> 0 Тогда
RegExp = Новый COMОбъект("VBScript.RegExp");
RegExp.MultiLine = Истина;
RegExp.Global = Истина;
RegExp.Pattern = ">0<\/T1RXXXXG25>";
Для каждого ф Из СписокФайлов Цикл
Если Найти(ф.ПолноеИмя, "J0510109") <> 0 ИЛИ Найти(ф.ПолноеИмя, "J0510509") <> 0 Тогда
Док = Новый ТекстовыйДокумент;
Док.Прочитать(ф.ПолноеИмя, КодировкаТекста.ANSI);
Текст = Док.ПолучитьТекст();
ТекстНовый = RegExp.Replace(Текст, " xsi:nil=""true""/>");
Док.УстановитьТекст(ТекстНовый);
Док.Записать(ф.ПолноеИмя, КодировкаТекста.ANSI);
КонецЕсли;
КонецЦикла;
RegExp = Неопределено;
Иначе
Сообщить("В выбранном каталоге нет xml файлов");
КонецЕсли;
КонецПроцедуры