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

27.12.21

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

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

Скачать файл

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

Наименование SM По подписке [?] Купить один файл
UnRAR1C (обычное приложение)
.epf 846,75Kb
11
11
1 SM
Скачать Купить за 1 850 руб.
UnRAR1C УФ (управляемое приложение, асинхронный режим)
.epf 1,32Mb
19
19
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 Внешняя компонента

См. также

Разработка внешних компонент POS терминал Рабочее место Розничная торговля Программист Пользователь Платформа 1С v8.3 1С:Комплексная автоматизация 1.х 1С:Управление торговлей 10 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Розничная и сетевая торговля (FMCG) Рестораны, кафе и фаст-фуд Реклама, PR и маркетинг Управленческий учет Платные (руб)

Медиадисплей покупателя может отображать текущую покупку на кассовом месте, показывать видеорекламу, баннеры, во время простоя разворачивать рекламу на весь экран. Экран можно использовать в качестве графического меню-борда в кафе и видеовывески. В качестве устройства отображения можно использовать Android-планшеты, смарт-телевизоры с Android, мониторы или проекторы под управлением Windows или Linux-компьютера. Linux-версия успешно запускается на одноплатных компьютерах Raspberri Pi и Orange Pi. Настраивается ЛЮБОЙ ДИЗАЙН экрана при помощи встроенного графического редактора! Решение можно масштабировать от одного экрана до тысяч экранов с централизованным управлением.

15000 руб.

30.05.2017    52989    8    69    

44

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

Внешняя компонента в виде библиотеки (.dll файл), позволяющая посылать команды и получать ответы по протоколу WebSocket из 1С. Компонента работает только на стороне "клиента".

4440 руб.

22.06.2020    17419    16    33    

21

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

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

3000 руб.

12.05.2020    27161    136    98    

88

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

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

3600 руб.

02.09.2010    76632    71    255    

189

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

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

1500 руб.

17.09.2018    35847    110    127    

113

Разработка внешних компонент Телефония, SIP Программист Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Внешняя компонента выполнена по технологии Native API для 1С 8.х, обеспечивает доступ к программным АТС Asterisk (FreePBX, Elastix) через AMI интерфейс. Через него можно управлять многими функциями Asterisk (определение номеров, перевод звонков, набор телефона и т. д.)

2400 руб.

04.05.2018    45971    118    66    

64

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

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

26.01.2024    5786    starik-2005    32    

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