Компонента разработана по технологии создания внешних компонент COM в среде Lazarus. Тестировалась на платформе 1С релиза 7.70.027.
В состав компоненты входят 2 объекта (по аналогии с 1С 8.3): Addin.zip_1c и Addin.unzip_1c.
Методы объекта Addin.ZIP_1C:
Открыть( ИмяФайла ) - Создает новый объект архива с заданным именем файла.
Добавить( ИмяФайла, Маска, Подкаталоги ) - Добавляет файл или файлы в список для упаковки в архив.
ПолучитьСписокФайлов( ) - Возвращаемое значение: объект 1С "ТаблицаЗначений", содержащий информацию о файлах в списке для архивирования.
Записать( УровеньСжатия ) - Упаковывает весь сформированный список файлов в ZIP-архив.
Свойства объекта AddIn.ZIP_1C:
ПоследняяОшибка – строка, текст ошибки.
Комментарий – строка, комментарий к файлу архива.
Методы объекта AddIn.UNZIP_1C:
Открыть( ИмяФайла ) - Открывает существующий файл ZIP-архива.
ПолучитьСписокФайлов( ) - Возвращаемое значение: объект 1С "ТаблицаЗначений", содержащий информацию о файлах в архиве.
Извлечь( Каталог, НомерФайла ) - Извлекает из архива указанный файл в указанный каталог.
ИзвлечьВсе( Каталог ) - Извлекает все файлы из архива в указанный каталог.
Свойства объекта AddIn.UNZIP_1C:
ПоследняяОшибка – строка, текст ошибки.
Комментарий – строка, комментарий к файлу архива.
Пример кода:
Если ЗагрузитьВнешнююКомпоненту("zip_1c.dll")=0 тогда
Сообщить("Не удалось загрузить zip_1c.dll");
КонецЕсли;
Процедура Сформировать()
ИмяЗИП = "C:\Database1C_77\Демо_ZIP.zip";
КаталогДляАрхива = "C:\Database1C_77\DemoZIP\";
zip_1c = СоздатьОбъект("AddIn.zip_1c");
zip_1c.Открыть(ИмяЗИП);
zip_1c.Добавить(КаталогДляАрхива);
zip_1c.Комментарий="Информационная база 1С:Бухгалтерия 7.7";
zip_1c.Записать();
unzip_1C = СоздатьОбъект("AddIn.unzip_1C");
Рез = unzip_1C.Открыть(ИмяЗИП);
Если Рез=0 Тогда
Сообщить("Ошибка: "+unzip_1C.ПоследняяОшибка);
КонецЕсли;
ТаблицаЗначенийЗИП = zip_1c.ПолучитьСписокФайлов();
Файлов = ТаблицаЗначенийЗИП.КоличествоСтрок();
Размер = ТаблицаЗначенийЗИП.Итог("РазмерФайла");
РазмерСж = ТаблицаЗначенийЗИП.Итог("РазмерСжатого");
Форма.ИнфоЗИП.Заголовок("Файлов: "+Файлов+", размер: "+формат(Размер,"Ч, ")+", размер сжатый: "+формат(РазмерСж,"Ч, "));
Комментарий = unzip_1C.Комментарий;
КонецПроцедуры