1с 77 скопировать файл
Следующие функции языка 1С позволяют манипулировать файлами:
- СоздатьКаталог 1С
- НайтиФайлы 1С
- КопироватьФайл 1С
- ПереместитьФайл 1С
- УдалитьФайлы 1С
- РазделитьФайл 1С
- ОбъединитьФайлы 1С.
//создает недостающие каталоги в указанном пути
//если каталога нет – создаст всю вложенную структуру
//если есть D:\Temp, то создаст подкаталоги
СоздатьКаталог("D:\Temp\1\2\3")
//найти все файлы 1С в каталоге «Sc»
НайденныеФайлы = НайтиФайлы("D:\Sc", "*");
//найти все ТЕКСТОВЫЕ файлы 1С в каталоге, включая вложенные подкаталоги
НайденныеФайлы = НайтиФайлы("D:\Sc", "*.txt", Истина);
//найти все файлы 1С в каталоге, в имени которых встречается слово "копия"
НайденныеФайлы = НайтиФайлы("D:\Sc", "*копия*");
//найти все файлы 1С в каталоге, в имени которых встречается любая цифра в скобочках, например "(1)" или "(100)"
НайденныеФайлы = НайтиФайлы("D:\Sc", "*(*)*");
//найти все файлы 1С в каталоге, в имени которых встречается цифра в скобочках меньше 10, например "(1)" или "(9)"
НайденныеФайлы = НайтиФайлы("D:\Sc", "*(?)*");
Для каждого Файл из НайденныеФайлы Цикл
Если Файл.ЭтоКаталог() Тогда
Продолжить;
КонецЕсли;
ИмяФайла = "Текстовый файл.txt";
КаталогИсточник = "D:\sc\";
КаталогПриемник = "D:\";
//копирование файла
ФайлИсточник = Новый Файл(КаталогИсточник + ИмяФайла);
Если не ФайлИсточник.Существует() или ФайлИсточник.ЭтоКаталог() Тогда
ВызватьИсключение "Файл '" + КаталогИсточник + ИмяФайла + "' не существует или является каталогом";
КонецЕсли;
Попытка
КопироватьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() или ФайлПриемник.Размер() <> ФайлИсточник.Размер() Тогда
ВызватьИсключение "Не удалось корректно скопировать файл";
КонецЕсли;
//перемещение файла
Попытка
ПереместитьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() Тогда
ВызватьИсключение "Не удалось корректно перенести файл";
КонецЕсли;
//функция создает каталог с именем файла
//в нем создает разделенные части файла, каждая размером в указанное кол-во мегабайт
//каждую часть сжимает архиватором
//возвращает имя каталога
Глобальный контекст.КопироватьФайл (Global context.FileCopy)
Глобальный контекст (Global context)
КопироватьФайл (FileCopy)
Синтаксис:
КопироватьФайл(<ИмяФайлаИсточника>, <ИмяФайлаПриемника>)
Параметры:
Тип: Строка.
Полное имя файла-источника.
<ИмяФайлаПриемника> (обязательный)
Тип: Строка.
Полное имя файла-приемника.
Описание:
Копирует файл-источник в файл-приемник. Допускается перезапись файла-приемника.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение(клиент), мобильное приложение(сервер).
Примечание:
КопироватьФайл("C:\Temp\Order.htm", "C:\My Documents\Order.htm");
В СП явно написано что допускается перезапись файла
по причине:Ошибка копирования файлов
по причине:
Ошибка копирования файлов из 'D:\Documents\Файлы1С\U\Прожектор.txt' в 'D:\Прожектор.txt' : Ошибка доступа к файлу (3) imbaZeratul, или файл используется другим процессом. (9) imbaZeratul, тогда тебе проще сделать перед копированием проверку на наличие файла и удалять)
Глобальный контекст (Global context)
УдалитьФайлы (DeleteFiles)
Синтаксис:
УдалитьФайлы(<Путь>, <Маска>)
Параметры:
Тип: Строка.
Путь к удаляемым файлам.
<Маска> (необязательный)
Тип: Строка.
Маска для выбора удаляемых файлов. В строке маски допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
Если <Маска> не указана, то удаляются все файлы и каталог <Путь>.
Описание:
Удаляет указанные файлы.
Тонкий клиент, веб-клиент, сервер, толстый клиент, внешнее соединение.
Примечание:
// Удаление каталога и всех вложенных в него каталогов и файлов
Попытка
УдалитьФайлы("C:\temp\Works");
Исключение
Сообщить(ОписаниеОшибки());
КонецПопытки;
Если на поддержке у программиста находится большое количество баз данных , то данная обработка поможет автоматически и быстро скопировать нужную папку (например, ExtForms, ExtDb, Usrdef и т.д.) и ее содержимое (кроме вложенных папок) во все помеченные каталоги информационных баз. Обработка проверена только на базах с DBF организацией данных. Для подкраски строк ТЗ используется FormEx, но можно и без него. Огромная благодарность АльФу и Маляеву.
Специальные предложения
Скачал,Посмотрел . замечания:
понимаешь, ты сам знаешь что ДОЛЖНА делать и ДЕЛАЕТ твоя обработка.
а вот теперь забудь на минуту и посмотри сам на нее глазами пользователя.
Почему бы не сделать , чтобы при открытии заполнялись все каталоги
кнопку сформировать - переименуй в " Обновить или Загрузить путь баз данных"
Кнопка с Глобусом - вызывает раздражение и она там совершенно не нужно,так красоту не наводят. Если есть кнопка на форме, она должна нажиматься и выполнять какоето действие.
В описании благодарность Альфу ты выразил, а пользователям в описании написать, что обработка может использовать функции ВК Formex не указал.
И как то ооооооооооочень странно ты ее используешь.
По твоей идее с раскроской строк (ты ее -ВК должен попытаться загрузить при открытии обработки но уж ни как при
Процедура ПриДвойномНажатииПравойКнопки(сост, х, у)
Если ЗагрузитьВнешнююКомпоненту("FormEx.dll") = 1 Тогда
Если ТЗ.КоличествоСтрок() <> 0 Тогда
Если Вопрос("Вы действительно хотите удалить строку ТЗ?","Да+Нет") = "Да" Тогда
ТекСтр = ТЗ.ТекущаяСтрока();
ТЗ.УдалитьСтроку(ТЗ.ТекущаяСтрока());
ТЗ.ТекущаяСтрока(ТекСтр);
Иначе
СтатусВозврата(0);
Возврат;
КонецЕсли;
КонецЕсли;
Если ТЗ.КоличествоСтрок() <> 0 Тогда
ТЗ.ВыбратьСтроки();
Пока ТЗ.ПолучитьСтроку() = 1 Цикл
ТЗ.НомПП = ТЗ.НомерСтроки;
КонецЦикла;
КонецЕсли;
ТЗ.ТекущаяСтрока(1);
КонецЕсли;
КонецПроцедуры // ПриДвойномНажатииПравойКнопки()
а у если у пользователя нет этой ВК (и он не подозревает что она должа быть)
как удалить строку из таблицы ?
Сделай рядом или список или ТЗ с "копируемыми файлами - ведь бывает нужно не все скопировать а только 8 из 10 . Дай пользователю выбор.
Читайте также: