HelpF.pro

Обработка файлов в папке и запись дополнительной информации в них

Частенько при загрузке данных в 1С сталкиваешься с необходимостью дополнительной обработки загружаемых файлов. Возможно это добавление какой-либо информации или наоборот удаление, а может изменение. 

Ниже приведен код, который обрабатывает файлы в указанной папке и добавляет в конец файла информацию о дате его последнего изменения:

(это лишь рабочий пример / набросок - который вы можете использовать для написания своего обработчика)

Код 1C v 8.х
 Процедура КнопкаВыполнитьНажатие(Кнопка)
масФайлов = НайтиФайлы(ПутьКФайлу, "*.w1c");
Для Каждого стр из масФайлов Цикл
Состояние("Обработка: "+стр.Имя);
текФайл = стр.ПолноеИмя;
ВыбФайл = Новый Файл(текФайл);
ДатаИзмененияФайла = Формат(ВыбФайл.ПолучитьУниверсальноеВремяИзменения(),"ДЛФ=D");
текДок = Новый ТекстовыйДокумент;
текДок.Прочитать(текФайл, "UTF-8");
текТекст = текДок.ПолучитьТекст()+Символы.ПС+"<&w1c&>"+ДатаИзмененияФайла;
текДок.УстановитьТекст(текТекст);
текДок.Записать(текФайл, "UTF-8");
КонецЦикла;
КонецПроцедуры


Процедура ПриОткрытии()
ПутьКФайлу="Укажите каталог"
КонецПроцедуры


Процедура ПутьКФайлуНачалоВыбора(Элемент, СтандартнаяОбработка)
СтандартнаяОбработка = Ложь;

Режим = РежимДиалогаВыбораФайла.ВыборКаталога;
ДиалогОткрытияФайла = Новый ДиалогВыбораФайла(Режим);

// Мы выбираем каталог, поэтому фильтр по расширению файлов нам не нужен
// Оставлю на всякий случай, вдруг пригодится позже
//ДиалогОткрытияФайла.ПолноеИмяФайла = "";
//Текст = "ru = ""Текст""; en = ""Text""";
//Фильтр = НСтр(Текст)+"(*.w1c)|*.w1c";
//ДиалогОткрытияФайла.Фильтр = Фильтр;
//ДиалогОткрытияФайла.МножественныйВыбор = Истина;
ДиалогОткрытияФайла.Заголовок = "Выберите Каталог с файлами";
Если ДиалогОткрытияФайла.Выбрать() Тогда
ПутьКФайлу = ДиалогОткрытияФайла.Каталог;

//МассивФайлов = ДиалогОткрытияФайла.ВыбранныеФайлы;
//Для Каждого ИмяФайла Из МассивФайлов Цикл
// ВыбФайл = Новый Файл(ИмяФайла);
// Текст = "ru = ""; Размер = ""; en = ""; Size = """;
// Сообщить(ИмяФайла+НСтр(Текст)+ВыбФайл.Размер());
//КонецЦикла;
Иначе
Текст = "ru = ""Файл(ы) не выбран!""; en = ""File(s) not selected!""";
Предупреждение(НСтр(Текст));
КонецЕсли;

КонецПроцедуры

Сама обработка : ObrabotkaFaylov.rar 


Опубликовано на сайте: https://HelpF.pro
Прямая ссылка: https://HelpF.pro/faq8/view/1609.html