1с найтифайлы не находит ничего
Следующие функции языка 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:\";
//копирование файла
ФайлИсточник = Новый Файл(КаталогИсточник + ИмяФайла);
Если не ФайлИсточник.Существует() или ФайлИсточник.ЭтоКаталог() Тогда
ВызватьИсключение "Файл '" + КаталогИсточник + ИмяФайла + "' не существует или является каталогом";
КонецЕсли;
Попытка
КопироватьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() или ФайлПриемник.Размер() <> ФайлИсточник.Размер() Тогда
ВызватьИсключение "Не удалось корректно скопировать файл";
КонецЕсли;
//перемещение файла
Попытка
ПереместитьФайл(КаталогИсточник + ИмяФайла, КаталогПриемник + ИмяФайла);
Исключение
ВызватьИсключение "Нет прав на копирование файла";
КонецПопытки;
ФайлПриемник = Новый Файл(КаталогПриемник + ИмяФайла);
Если не ФайлПриемник.Существует() Тогда
ВызватьИсключение "Не удалось корректно перенести файл";
КонецЕсли;
//функция создает каталог с именем файла
//в нем создает разделенные части файла, каждая размером в указанное кол-во мегабайт
//каждую часть сжимает архиватором
//возвращает имя каталога
Здравствуйте! Подскажите, пожалуйста, почему не работает метод НайтиФайлы в общем модуле, управляемое приложение? Тот же метод отлично работает в модуле формы, &НаКлиенте, управляемое приложение . А здесь - нет. Что для этого необходимо?
необходимо на клиенте и запускать, сервер не видит твоих файлов
Я ставлю директиву НаКлиенте в общем модуле - выдает ошибку на строковую переменную пути к файлам: "Неопознанный оператор", и дальше то же самое. - а как правильно в общем модуле это прописать?
ты где хочешь искать? у себя на компе где запущена 1с? Зачем тебе общий модуль тогда? Ну раз так надо - то общий модуль должен быть Клиентским (смотри галки с свойствах модуля)
Хотя Доступность - пишет : Тонкий клиент, веб-клиент, СЕРВЕР, и т.д.
так вот же ш. То есть делать в модуле формы, а потом передавать в общий модуль? Правильно?
доступность на сервере - значит и ИСКАТЬ он будет на сервере, а файл на клиенте (на другом компе) - чувствуете разницу или нет?
ты там натыкаешь - остальное сломается. Объясни зачем тебе общий модуль, и где надо найти файлы
Ох. мне надо в СКД запрос передать, формируемый программно. Засунуть Запрос можно в общем модуле, а в этот запрос мне надо передать ТЗ, которая будет формироваться из данных экселевских файлов. Во как.
Запрос у меня уже готов, а вот с передачей пока не очень.
Упс. заработалась я окончательно. Я тут вовсю модуль объекта общим модулем зову. И вас запутала.
мда. Короче - читай файлы из формы на клиенте, сделай реквизит Формы с типом ТЗ, её заполни данными из файлов, потом эту ТЗ формы можешь куда хошь передавать. З.ы. в СКД можно сразу подсунуть ТЗ, там набор данных "Объект" есть
Спасибо большое! набор данных "Объект" не подходит, у меня в ТЗ будет порядка 300 столбцов, я их замучаюсь описывать.
А как мне к реквизиту формы из модуля объекта потом обратится? Не подскажете?
и это, при чем тут модуль объекта? на форме и делай, только в процедурах &НаСервере
Я вообще не пойму, в чем сложность то.. Запутался нафиг..
я пас) почитай разработка "Сложных Отчетов" Хрусталёвой по СКД это, и разработка в управляемом приложении, дело не в опыте сейчас, а в понимании
AleksWhite7 --> AleksWhite7Но стоит их объединить в B_*_0[6,1]. xml или B_*_0[61]. xml или B_*_02. xml
поиск прекращается. Количество отобранных файлов ноль.
В "Синтаксис-помошнике" написано
Где туплю или это баг 1С?
Спасибо.
Да пробовал.
Прикол в том, что как только в маску включаю скобки [], поиск прекращается podcast --> podcast
Этот вариант самый правильный B_*_01. xml, может ошибка не в скобках, попробуйте всё что перед ними убрать. Vofka --> Vofka
В Linux-е работаете или в MacOS? Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". AleksWhite7 --> AleksWhite7
Vofka @ Сегодня, 11:30 ,
Последний параметр поиск в подкаталогах. Он у меня равен Ложь.
Petre @ Сегодня, 11:30 ,
В MS Windows.
ОкGoogle - не помогает
Странно, что никто не использует НайтиФайлы со сложными масками.
В общем пока решил разбить задачу на две подзадачи. Искать не одним запросом, а двумя. Без использования скобок.
А потом результат объединю.
Как по мне это косяк 1С:Предприятие, но точно утверждать не могу.
Petre --> PetreПриведу более полную выдержку из сп:
Для операционной системы MS Windows:
В строке маски, помимо обычных символов, допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
Но стоит их объединить в B_*_0[6,1]. xml или B_*_0[61]. xml или B_*_06. xml
поиск прекращается. Количество отобранных файлов ноль.
В "Синтаксис-помошнике" написано
Где туплю или это баг 1С?
Спасибо.
Да пробовал.
Прикол в том, что как только в маску включаю скобки [], поиск прекращается podcast --> podcast
Этот вариант самый правильный B_*_03. xml, может ошибка не в скобках, попробуйте всё что перед ними убрать. Vofka --> Vofka
В Linux-е работаете или в MacOS? Допрацьовую:
- "Бухгалтерія для України 2.1";
- "Альфа-Авто: Автосалон+Автосервіс+Автозапчастини, українська версія". AleksWhite7 --> AleksWhite7
Vofka @ Сегодня, 11:30 ,
Последний параметр поиск в подкаталогах. Он у меня равен Ложь.
Petre @ Сегодня, 11:30 ,
В MS Windows.
ОкGoogle - не помогает
Странно, что никто не использует НайтиФайлы со сложными масками.
В общем пока решил разбить задачу на две подзадачи. Искать не одним запросом, а двумя. Без использования скобок.
А потом результат объединю.
Как по мне это косяк 1С:Предприятие, но точно утверждать не могу.
Petre --> PetreПриведу более полную выдержку из сп:
Для операционной системы MS Windows:
В строке маски, помимо обычных символов, допускается использование символа "*" (звездочка), обозначающего любое число произвольных символов, и "?" (знак вопроса), обозначающего один произвольный символ.
Читайте также: