Как удалить Файл, Каталог? Функция Удаляет указанные файлы.
УдалитьФайлы(<Путь>, <Маска>)
Параметры: <Путь> (обязательный) Тип: Строка. Путь к удаляемым файлам.
<Маска> (необязательный) Тип: Строка. Маска для выбора удаляемых файлов. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
!!! - Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.
Для удаления одного файла, можно передать его полное имя через первый параметр, либо передать путь к нему через первый параметр, а его короткое имя - через второй.
Удаление файлов производится, если в указанных файлах не установлено свойство "Только чтение". В противном случае возникает сообщение об ошибке.
Допускается использование схем http, https и ftp для адресации файлов. При использовании этих схем в адресах необходимо указывать прямые слеши '/', а не обратные '\'.
Код 1C v 8.х // Удаление каталога и всех вложенных в него каталогов и файлов
Попытка
УдалитьФайлы("C:\temp\Works");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Код 1C v 8.2 УП // Удалим в каталоге все файлы CSV
Попытка
УдалитьФайлы(КаталогВыгрузкиДанных, "*.csv");
Исключение
#Если Клиент Тогда
Сообщить(ОписаниеОшибки());
#КонецЕсли
КонецПопытки;
В 7-рке для удаления используется
Код 1C v 7.x ФС.УдалитьКаталог(Стр);
//или
ФС.УдалитьФайл(Стр);
Как удалить каталог с файлами?
Код 1C v 7.x // пример привел smaharbA
//Данный пример не работает, если в папке есть файлы с атрибутам и только для чтения и системные
Функция Рекурсия(Знач Путь,Сп)
Перем А;
ФСО=СоздатьОбъект("ФС");
Стр=ФСО.НайтиПервыйФайл(Путь+"\*.*");
Пока ПустоеЗначение(Стр)=0 Цикл
Если (Стр<>"..") и (Стр<>".") Тогда
Представление="";
Для к=1 По СтрЧислоВхождений(Путь+"\"+Стр,"\") Цикл
Представление=Представление+"\";
КонецЦикла;
Сп.ДобавитьЗначение(Путь+"\"+Стр,Представление+Стр);
ФСО.АтрибутыФайла(Путь+"\"+Стр,,А);
Если Сред(А,4,1)="1" Тогда
Рекурсия(Путь+"\"+Стр,Сп);
КонецЕсли;
КонецЕсли;
Стр=ФСО.НайтиСледующийФайл();
КонецЦикла;
КонецФункции // Рекурсия
//*******************************************
Процедура Сформировать()
Перем Каталог,А;
Если ФС.ВыбратьКаталог(Каталог,"")=0 Тогда
Возврат;
КонецЕсли;
Сп=СоздатьОбъект("СписокЗначений");
Рекурсия(Каталог,Сп);
Сп.СортироватьПоПредставлению(0);
Для к=1 По Сп.РазмерСписка() Цикл
Стр=Сп.ПолучитьЗначение(к);
ФС.АтрибутыФайла(Стр,,А);
Если Сред(А,4,1)="1" Тогда
ФС.УдалитьКаталог(Стр);
Иначе
ФС.УдалитьФайл(Стр);
КонецЕсли;
КонецЦикла;
ФС.УстТекКаталог(Каталог+"\..\");
ФС.УдалитьКаталог(Каталог);
КонецПроцедуры
Категория:
Работа с Файлами и Каталогами Выгрузка / Загрузка данных посредством XML файлов? В основе работы с XML-файлами лежит технология доступа SAX, которая осуществляет считывание по одному тегу. Для этого существует два типа данных –
ЗаписьXML и
ЧтениеXML .
Запись данных справочника в XML-файл:
Код 1C v 8.х Запись = Новый ЗаписьXML;
Запись.ОткрытьФайл(ПутьКФайлу);
Запись.ЗаписатьОбъявлениеXML();
// формируем корневой элемент
Запись.ЗаписатьНачалоЭлемента("Клиенты");
Выборка = Справочники.Клиенты.Выбрать();
Пока Выборка.Следующий() Цикл
// для каждого клиента формируем свой элемент
Запись.ЗаписатьНачалоЭлемента("Клиент");
// запишем код клиента в атрибут тега
Запись.ЗаписатьАтрибут("Код", Строка(Выборка.Код));
// Наименование клиента запишем в текст элемента
Запись.ЗаписатьТекст(Выборка.Наименование);
// закрываем элемент клиента
Запись.ЗаписатьКонецЭлемента();
КонецЦикла;
// закрываем корневой элемент xml-документа
Запись.ЗаписатьКонецЭлемента();
// закрыть файл
Запись.Закрыть();
Чтение данных из XML-файла в справочник:
Код 1C v 8.х Чтение = Новый ЧтениеXML;
Чтение.ОткрытьФайл(ПутьКФайлу);
Спр="";
// чтение осуществляется по одному тегу
Пока Чтение.Прочитать() Цикл
// анализируем тип элемента и его имя
Если Чтение.ТипУзла = ТипУзлаXML.НачалоЭлемента Тогда
Если Чтение.Имя="Клиент" Тогда
// создаем новый элемент справочника
Спр = Справочники.Клиенты.СоздатьЭлемент();
// читаем атрибуты
Пока Чтение.ПрочитатьАтрибут() Цикл
Если Чтение.Имя="Код" Тогда
Спр.Код = Число(Чтение.Значение);
КонецЕсли;
КонецЦикла;
КонецЕсли;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.Текст Тогда
// заполняем наименование созданного ранее элемента
Спр.Наименование = Чтение.Значение;
ИначеЕсли Чтение.ТипУзла = ТипУзлаXML.КонецЭлемента Тогда
// требуется записать информацию про клиента
Спр.Записать();
КонецЕсли;
КонецЦикла;
Создадим обработку в типовой конфигурации для экспорта плана счетов. Структура xml-файла должна быть такой. Корневой элемент xml-документа соответствует плану счетов в целом. В нем располагаются подчиненные элементы с именем Счет, содержащие информацию о счетах. В качестве содержимого элементов указывается наименование счета. Остальные данные записываются в качестве атрибутов (код, признаки валютного, количественного учета и пр.). В качестве подчиненных элементов для элемента Счет задаются элементы, обозначающие его субсчета с теми же
атрибутам и. Приведем код процедуры экспорта плана счетов.
Код 1C v 7.x Процедура Выполнить()
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"v7plus.dll")<>1 Тогда
Предупреждение("Компонента не обнаружена");
Возврат;
КонецЕсли;
Анализатор=СоздатьОбъект("AddIn.XMLParser");
Корень=Анализатор.СоздатьДокумент();
План=Корень.СоздатьПодчиненныйЭлемент("ПланСчетов");
Счет=СоздатьОбъект("Счет.Основной");
Родитель=СоздатьОбъект("Счет.Основной");
Счет.ВыбратьСчета();
Пока Счет.ПолучитьСчет()=1 Цикл
// если это счет, а не субсчет
Если Счет.Уровень()=1 Тогда
Родитель.НайтиПоКоду(Счет.Код);
СчетXML=План.СоздатьПодчиненныйЭлемент("Счет");
СчетXML.УстановитьАтрибут("Код", Счет.Код);
СчетXML.УстановитьАтрибут("Валютный", Счет.Валютный);
СчетXML.УстановитьАтрибут("Количественный", Счет.Количественный);
СчетXML.УстановитьАтрибут("Забалансовый", Счет.Забалансовый);
Если Счет.Активный=1 Тогда
СчетXML.УстановитьАтрибут("вид","активный");
ИначеЕсли Счет.Активный=2 Тогда
СчетXML.УстановитьАтрибут("вид","пассивный");
Иначе
СчетXML.УстановитьАтрибут("вид","активно-пассивный");
КонецЕсли;
СчетXML.Значение=Счет.Наименование;
Иначе
Если Счет.ПринадлежитГруппе(Родитель)=1 Тогда
СубсчетXML=СчетXML.СоздатьПодчиненныйЭлемент("Субсчет");
СубсчетXML.УстановитьАтрибут("Код", Счет.Код);
// аналогично устанавливаем все атрибуты на элемент СубсчетXML
СубсчетXML.Значение=Счет.Наименование;
КонецЕсли;
КонецЕсли;
КонецЦикла;
Корень.Записать(КаталогПрограммы()+"plan.xml");
КонецПроцедуры
В результате будет получен файл, вот его фрагмент:
Код
<?xml version="1.0" encoding="windows-12Sl" ?> - <ПланСчетов>
<Счет Код="00" Валютный="0" Количественный="0" Забалансовый="0" вид="активно-пассивный">Вспомогательный</Счет>
- <Счет Код="01" Валютный="0" Количественный="0" Забалансовый="0" вид="активный">
Основные средства
<Субсчет Код="01.1" Валютный="0" Количественный="0" Забалансовый="0"
вид="активный">ОС в организации</Субсчет> <Субсчет Код="01.2" Валютный="0" Количественный="0" Забалансовый="0"
вид="активный">Выбытие ОС</Субсчет> </Счет>
- <Счет Код="02" Валютный="0" Количественный="0" Забалансовый="0" вид="пассивный">
Амортизация ОС
А теперь приведем код для импорта плана счетов из xml-файла в новую конфигурацию. Код модуля соответствующей обработки должен содержать процедуру Выполнить(), которая имеет такой вид.
Код 1C v 7.x Процедура Выполнить()
Если ЗагрузитьВнешнююКомпоненту(КаталогПрограммы()+"v7plus.dll")<>1 Тогда
Предупреждение("Внешняя компонента не найдена");
Возврат;
КонецЕсли;
Анализатор=СоздатьОбъект("AddIn.XMLParser");
Файл=Анализатор.СоздатьДокумент();
Файл.Загрузить(КаталогПрограммы()+"plan.xml");
План=Файл.ВыбратьУзел("ПланСчетов");
кол=План.КоличествоПодчиненных();
Счет=СоздатьОбъект("Счет.Основной");
Для инд=1 по кол Цикл
СчетXML=План.ПолучитьПодчиненныйПоНомеру(инд);
КолСубсчетов=СчетXML.КоличествоПодчиненных();
// подчиненным элементом является и содержимое элемента
Если КолСубсчетов>1 Тогда
Счет.Новый(1);
Иначе
Счет.Новый(0);
КонецЕсли;
Счет.Код=СчетXML.ПолучитьАтрибут("Код");
Счет.Наименование=СчетXML.Значение;
Счет.Валютный=СчетXML.ПолучитьАтрибут("Валютный");
Счет.Количественный=СчетXML.ПолучитьАтрибут("Количественный");
Счет.Забалансовый=СчетXML.ПолучитьАтрибут("Забалансовый");
Если СчетXML.ПолучитьАтрибут("вид")="активный" Тогда
Счет.Активный=1;
ИначеЕсли СчетXML.ПолучитьАтрибут("вид")="пассивный" Тогда
Счет.Активный=2;
Иначе
Счет.Активный=3;
КонецЕсли;
Счет.Записать();
Если КолСубсчетов>1 Тогда
Счет1=СоздатьОбъект("Счет.Основной");
Для инд1=2 По кол_субсчетов Цикл
Субсчет=СчетXML.ПолучитьПодчиненныйПоНомеру(инд1);
Счет1.Новый(0);
Счет1.Код=Субсчет.ПолучитьАтрибут("Код");
// аналогично устанавливаются все атрибуты создаваемого субсчета
Счет1.Записать();
КонецЦикла;
КонецЕсли;
КонецЦикла;
Категория:
JSON, XML, TXT, CSV, DBF Запись движений в оборотный регистр Методы доступны только при проведении документа в предопределенной процедуре ОбработкаПроведения.
Метод Движение - Выполнить запись движения в оборотный регистр по параметрам.
Код 1C v 7.x
Регистр.Товары.Движение (ПоступившийТовар, ТекСклад, КолвоПоНакладной, СуммаПоНакладной)
Код 1C v 7.x
Процедура ОбработкаПроведения();
ВыбратьСтроки();
Пока ПолучитьСтроку() > 0 Цикл
Регистр.ОборотыТоваров.Движение(Товар, Склад, ОборотТовара);
КонецЦикла;
КонецПроцедуры
Метод ДвижениеВыполнить - Выполнить запись движения в оборотный регистр по
атрибутам .
Код 1C v 7.x Процедура ОбработкаПроведения();
Регистр.ТовЗап.Склад = Склад;
ВыбратьСтроки();
Пока (ПолучитьСтроку() > 0) Цикл
Регистр.ТовЗап.Товар = Товар;
Регистр.ТовЗап.Оборот = Оборот;
Регистр.ТовЗап.ДвижениеВыполнить();
КонецЦикла;
КонецПроцедуры;
Примечание: Если сумма или количество в движении будет отрицательным, то это движение будет расходом, иначе приходом. Категория:
Регистры