Получение сообщений из файлов
Для получения сообщений из файлов в локальной файловой системе или в локальной сети предназначен узел процесса интеграции вида ФайлИсточник. Он порождает сообщения из файлов, расположенных в указанном каталоге. В этом случае в теле сообщения будет находиться сам файл.
После чтения сообщения из файла «1С:Шина» сохраняет в свойствах сообщения некоторую информацию о прочитанном файле, например: ИмяФайла, АбсолютныйПутьФайла, РазмерФайла, ФайлИзменен и др. Подробнее см. тип имя-процесса-интеграции.Сообщение.
Выбор файлов
При создании процесса интеграции в свойстве Каталог этого узла нужно указать тот каталог, из которого «1С:Шина» должна брать файлы.
После этого вы можете заполнить свойство ИмяФайла, и тогда «1С:Шина» будет искать конкретный файл с таким именем. Также вы можете вычислить имя файла, который нужно прочитать, уже во время работы приложения. Для этого используйте обработчик события ОбработчикОпределенияИмени. Если заполнено свойство ИмяФайла и указан ОбработчикОпределенияИмени, то имя файла будет браться из обработчика, и, только в случае ошибки в обработчике, будет взято из свойства ИмяФайла.
Если Каталог имеет вложенные каталоги, то вы можете установить свойство ИскатьВКаталогеРекурсивно в значение Истина. В этом случае «1С:Шина» будет искать файлы в указанном каталоге и во всех каталогах, вложенных в него.
Если вам нужен не один, а несколько файлов, то вы можете использовать свойства МаскаВключенияФайлов и МаскаИсключенияФайлов. Множественные значения разрешены через запятую. Оба эти свойства используют маску в стиле Ant:
- ? — обозначает один символ;
- * — обозначает любое количество символов;
- ** — обозначает любое количество каталогов в пути файла.
Например, если будет маска включения **/*.txt, то «1С:Шина» найдет все файлы с расширением txt, независимо от того, в каком вложенном каталоге они лежат.
Например, если будет маска включения subdir?/1.txt, то «1С:Шина» найдет все файлы 1.txt, которые лежат в подкаталогах subdir1 ... subdirN исходного каталога.
Маска исключения более приоритетна, чем маска включения, то есть сначала имеющиеся файлы исключаются, потом включаются. Таким образом, будут найдены все файлы, удовлетворяющие маске включения, кроме тех, которые удовлетворяют маске исключения.
Обратите внимание, что для использования свойств МаскаВключенияФайлов и МаскаИсключенияФайлов значение свойства ИскатьВКаталогеРекурсивно должно быть равно Истина.
Не следует одновременно задавать свойство МаскаВключенияФайлов и ИмяФайла, так как это не имеет смысла (в таком случае, вначале будет искаться файл с заданным в свойстве ИмяФайла именем, и после этого найденное имя будет валидироваться маской). Если вы зададите ОбработчикОпределенияИмени и свойство МаскаВключенияФайлов, то вначале имя будет определено в обработчике, и лишь после этого будет провалидировано с использованием указанной маски.