Распаковщик RAR-архивов - UnRAR 1C

27.12.21

Разработка - Разработка внешних компонент

Внешняя Native компонента для распаковки RAR-архивов.

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
UnRAR1C (обычное приложение)
.epf 846,75Kb ver:2.0
11
11 Скачать (1 SM) Купить за 1 850 руб.
UnRAR1C УФ (управляемое приложение, асинхронный режим)
.epf 1,32Mb ver:2.0
20
20 Скачать (1 SM) Купить за 1 850 руб.

Компонента использует последнюю версию бесплатной библиотеки "unrar.dll" с официального сайта автора архиватора RAR. Библиотека уже встроена во внешнюю компоненту, ничего отдельно скачивать и устанавливать не нужно, в том числе и сам архиватор. Поддерживаются архивы формата RAR4 и RAR5 (многотомные архивы, самораспаковывающиеся архивы, архивы закрытые паролем). Операции, которые можно выполнить над архивом с помощью данной компоненты:

  1. Получение списка файлов в архиве с информацией о каждом файле;
  2. Тестирование архива;
  3. Извлечение из архива как всех, так и отдельных файлов с сохранением и без сохранения путей файлов в указанный каталог;
  4. Получение комментария архива;
  5. Получение атрибутов архива;
  6. Получение номера версии используемой библиотеки "unrar.dll";

Внешняя компонента написана на Delphi по технологии Native API, имеет 6 методов и 2 свойства. Далее английское и русское имя метода/свойства буду разделять символом "|".

Методы:

1. DLLVersion|ВерсияDLL() - Возвращает версию файла "unrar.dll";
Параметры: Нет;
Возвращаемое значение: Тип Число. Версия файла "unrar.dll".

2. CommentArchive|КомментарийАрхива(<Строка>) - Возвращает комментарий архива;
Параметры:
<Строка> - Тип Строка. Полное имя файла архива;
Возвращаемое значение: Тип Строка. Комментарий архива.

3. ListFilesArchive|СписокФайловАрхива(<ИмяФайлаАрхива>, <Комментарий>) - Возвращает список файлов архива;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<Комментарий> - Тип Строка. Выходной параметр, необязательный. В качестве значений необходимо передать переменную, в которую будет помещен комментарий архива;
<Атрибуты> - Тип Строка. Выходной параметр, необязательный. В качестве значений необходимо передать переменную, в которую будет помещена строка атрибутов вида "0;1;0;1;0;1;0;1;0". По сути можно считать сто строка в формате CSV - 9 колонок, 1 строка. Пример парсинга смотреть в обработке;
Возвращаемое значение: Тип Строка. Список файлов архива в формате CSV. Пример парсинга смотреть в обработке.

4. TestArchive|ТестАрхива(<ИмяФайлаАрхива>, <ОписаниеОшибки>) - Выполняет тест архива;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ОписаниеОшибки> - Тип Строка. Выходной параметр. В качестве значений необходимо передать переменную, в которую будет помещена строка с описание ошибки в случае возникновения ошибки в процессе тестирования;
Возвращаемое значение: Тип Булево. Значение Истина - в случае успешного тестирования. Значение Ложь - в случае возникновения ошибки в процессе тестирования, в параметр <ОписаниеОшибки> будет помещена строка с описание ошибки.

5. ExtractArchive|РаспаковатьАрхив(<ИмяФайлаАрхива>, <ИмяКаталога>, <СохранятьПути>) - Распаковывает все файлы архива в указанный каталог;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ИмяКаталога> - Тип Строка. Полное имя каталога для распаковки файлов архива;
<СохранятьПути> - Тип Булево. Если Истина, то при распаковке будут сохранены все пути файлов;
Возвращаемое значение: Отсутствует.

6. ExtractFilesArchive|РаспаковатьФайлыАрхива(<ИмяФайлаАрхива>, <ИменаФайлов>, <ИмяКаталога>, <СохранятьПути>) - Распаковывает указанные файлы архива в указанный каталог;
Параметры:
<ИмяФайлаАрхива> - Тип Строка. Полное имя файла архива;
<ИменаФайлов> - Тип Строка. Имена файлов в архиве, которые необходимо извлечь;
<ИмяКаталога> - Тип Строка. Полное имя каталога для распаковки файлов архива;
<СохранятьПути> - Тип Булево. Если Истина, то при распаковке будут сохранены все пути файлов;
Возвращаемое значение: Отсутствует.

Свойства:

1. Version|Версия - Тип Строка. Содержит версию компоненты в виде строки. Данное свойство доступно только для чтения.

2. Password|Пароль - Тип Строка. Содержит пароль для распаковки архива. Если на архив не установлен пароль, то значение свойства игнорируется. Данное свойство доступно только для записи.

Примеры использования всех методов и свойств приведены в прилагаемых обработках.

 
 Обновление 2021/12/24 v2.0

    1. Добавлена поддержка 64-битной платформы;
    2. Обновлена библиотека UnRAR до версии 8;
    3. Расширен метод ListFilesArchive|СписокФайловАрхива - добавлен 3-й параметр в который помещаются атрибуты архива. Кроме того выходные параметры (2-ой и 3-ий) стали не обязательными, т.е. можно не получать комментарий и атрибуты, если это не требуется (писание метода в публикации обновлено);
    4. Доработаны демонстрационные обработки - добавлена демонстрация работы с атрибутами архива, устранены мелкие недочеты и ошибки;
    5. Внешняя компонента собрана на последней версии компилятора, почищен и оптимизирован код;

Обработки и внешняя компонента тестировались на платформах 8.3.10.2650 (x86), 8.3.17.1549 (x86) и 8.3.20.1613 (x64).

Так же, кому интересно: Внешняя Native компонента для сжатия/распаковки файлов по алгоритму Deflate, в том числе сжатия/распаковки архивов в формате GZip.

rar unrar сжатие распаковка архив Native API Decompress Compress Внешняя компонента

См. также

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Позволяет автоматизировать работу с картинками. С помощью компоненты можно измерять размер изображений, поворачивать их, наносить водяные знаки, конвертировать из одного формата в другой. Будет очень полезна для интернет-магазинов и всех, кому постоянно требуется работать с различными графическими форматами. Выполнена по технологии NativeAPI. Работает с форматами: jpg (jpeg), png, bmp, gif, tif

3600 руб.

02.09.2010    77780    73    257    

191

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия 3.0 Платные (руб)

Внешняя компонента позволяет работать c TWAIN-совместимым оборудованием (сканерами, камерами) . Полностью совместима со стандартной TWAIN-компонентой из БСП и может применяться как ее замена без изменения вызовов, при этом может работать с 64-разрядной платформой, а так же имеет расширенную функциональность, например, сохранение результата непосредственно в PDF без использования сторонних утилит. Прекрасно работает на сервере, тонком клиенте и веб-клиенте (проверена работа в браузерах Google Chrome, Mozilla Firefox и Microsoft Internet Explorer).

3000 руб.

12.05.2020    29062    139    100    

92

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Платные (руб)

Внешняя компонента позволяет печатать PDF файлы непосредственно из 1С, не используя при этом сторонних программ. Прекрасно работает на сервере, тонком клиенте и веб-клиенте. Основана на проекте PDFium из состава проекта Chromium/Chrome

1500 руб.

17.09.2018    37130    115    128    

116

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия 1С:Управление торговлей 11 Платные (руб)

Внешняя компонента для конвертации PDF файлов в картинки без использования дополнительных программ. Работает на сервере и в тонком клиенте.

2400 руб.

25.06.2024    1311    3    4    

3

Разработка внешних компонент Системный администратор Программист Стажер Бесплатно (free)

Библиотека для работы с базами SQLite из 1С на основе внешней компоненты. Для Linux и Windows, бесплатно и с открытым исходным кодом!

14.01.2025    2625    bayselonarrend    14    

48

Разработка внешних компонент Программист Платформа 1С v8.3 1C:Бухгалтерия Россия Бесплатно (free)

В статье описывается приложение-конструктор внешних компонент (native API). Конструктор упрощает процесс разработки за счет удобного добавления всех нужных функций и процедур в графическом режиме, с указанием их параметров и типов параметров. На выходе приложение генерирует готовый код на С++ и Rust и позволяет сразу приступить к реализации, без настройки API компоненты вручную.

04.12.2024    5383    kovalevdmv    26    

77

Разработка внешних компонент Механизмы платформы 1С Программист Стажер Платформа 1С v8.3 Бесплатно (free)

Некоторые практические аспекты создания внешних компонент на языке С++ для платформы 1С 8.3++.

26.01.2024    7829    starik-2005    40    

47
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Irwin 566 25.03.16 09:42 Сейчас в теме
Неплохо было бы писать в скачиваемом файле версию "unrar.dll". А еще лучше не встраивать ее в компоненту, потому что при выходе новой версии придется каждый раз качать обработку (а выходят они достаточно часто). Проблема в том, что старые версии могут не работать с архивами, запакованными новой версией.
Сам не раз встречал такую проблему, поэтому rar-ом стараюсь не пользоваться, только zip.
2. frkbvfnjh 811 25.03.16 14:34 Сейчас в теме
(1) Irwin, я то Вас понимаю и сам стараюсь не пользоваться rar-ом, но компонента служит как раз для распаковки, а не для запаковки и рассчитана на тех, кому по воли судьбы необходимо приходиться обрабатывать архивы rar, ну к примеру нужно в документообороте обрабатывать архивы которые присылают заказчики, да и та же фирма 1С все дистрибутивы платформы и др. файлы пакует rar-ом (наверное у них какое-то тайное соглашение), может кому нужно будет обработку написать по автоматическому скачиваний файлов с сайта 1С и их распаковки. Что касается версии библиотеки, то она самая последняя на момент создания публикации: версия файла - 5.31.100.1864, внутренняя версия - 7.
3. user745651 14.09.18 15:20 Сейчас в теме
При использовании UnRAR1C (обычное приложение)
Внешняя компонента : Not enough memory

С чем может быть связана такая ошибка? как ее победить?
4. d.zhukov 1518 29.11.21 07:29 Сейчас в теме
Компонента не подключается. 1С:Предприятие 8.3 (8.3.18.1334)
5. frkbvfnjh 811 29.11.21 09:39 Сейчас в теме
(4) Только что проверил на 8.3.17.1549. Работает идеально. Поставлю 8.3.18.1334 проверю, но все таки можно подробнее в чем проблема? Может скриншот или текст ошибки скините?
6. frkbvfnjh 811 29.11.21 09:48 Сейчас в теме
(4)Так же проверьте разрядность платформы, компонента писалась вроде под 32-бита, возможно еще в этом проблема. На неделе попробую под 64-бита собрать, но это не точно, но постараюсь. Надо еще посмотреть предоставляет ли RAR 64-битную DLL.
7. d.zhukov 1518 29.11.21 10:05 Сейчас в теме
(5) Сначала пишет, что компонента подключена, потом в служебных сообщение "Не удалось подключить компоненту". Подробностей не было
8. frkbvfnjh 811 29.11.21 10:38 Сейчас в теме
(7) А с разрядность что? Какая у Вас?
9. d.zhukov 1518 29.11.21 10:41 Сейчас в теме
11. frkbvfnjh 811 29.11.21 11:04 Сейчас в теме
(9) Да, причина скорее все в этом
13. frkbvfnjh 811 29.11.21 11:08 Сейчас в теме
(9) Если соберу под 64, отправлю Вам в личку, но работы очень много, точных сроков сказать не могу
10. d.zhukov 1518 29.11.21 10:43 Сейчас в теме
а почему exe winrar'овский не использовали для этих целей? он же вроде универсален в плане разрядности
12. frkbvfnjh 811 29.11.21 11:07 Сейчас в теме
(10) Много причин, во первых он может не быть установлен, во вторых, как правило, 1С запускают без прав администратора, а это всегда вызывает проблемы с запуском внешних приложений, ну и в третьих всё остальное. Ну т.е. есть определенные причины, по которым 1С разработала механизм NativeAPI - сплошные преимущества без недостатков, ну кроме конечно разрядности и платформы ОС - под каждую платформу и разрядность нужно компилировать свою библиотеку
14. d.zhukov 1518 29.11.21 11:11 Сейчас в теме
(12) спасибо за информацию
Оставьте свое сообщение