При работе с большими объемами данных могут возникнуть проблемы при пересылке архивных файлов. Типичной такой проблемой является ограничение некоторых почтовых серверов на размер сообщения: если письмо превышает некий заранее установленный размер, оно отбрасывается сервером. Применительно к «1С:Предприятию» такая ситуация может возникнуть при пересылке больших сообщений обмена данными.
Для решения этих проблем можно использовать функции глобального контекста РазделитьФайл() и ОбъединитьФайлы().
Функция РазделитьФайл() предназначена для разбиения файла на несколько частей указанного размера. Функция ОбъединитьФайлы(), наоборот, позволяет из нескольких томов собрать один файл.
Пример использования функции РазделитьФайл() приведен в листинге 6.133.
Листинг 6.133. Пример использования функции «РазделитьФайл()»
Массив = РазделитьФайл("c:\архив.zip", 1024 * 1024, "c:\");
Первый параметр функции содержит имя архива, во второй записывается размер каждой части файла в байтах, в третьем параметре указывается путь, по которому будут размещаться создаваемые файлы. Функция возвращает массив имен созданных файлов.
Функцию ОбъединитьФайлы() можно использовать двумя способами:
Листинг 6.134. Пример использования функции «ОбъединитьФайлы()»
МассивИмен = Новый Массив(2);
МассивИмен.Добавить("c:\архив.zip.001");
МассивИмен.Добавить("c:\архив.zip.002");
ОбъединитьФайлы(МассивИмен, "c:\архив.zip");
Листинг 6.135. Пример использования функции «ОбъединитьФайлы()»
ОбъединитьФайлы("c:\архив.zip.*", "c:\архив.zip");
Во втором параметре функции указывается полное имя создаваемого в результате объединения файла.
Кроме этого способа существует также возможность объединить файлы в один с помощью команды операционной системы COPY. Для этого нужно воспользоваться ее возможностью конкатенации двоичных файлов (листинг 6.136).
Листинг 6.136. Пример использования команды COPY
C:\>COPY архив.zip.001 /B + архив.zip.002 /B архив.zip