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

27.12.21

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

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

Скачать файлы

Наименование Файл Версия Размер
UnRAR1C (обычное приложение)
.epf 846,75Kb
11
.epf 2.0 846,75Kb 11 Скачать
UnRAR1C УФ (управляемое приложение, асинхронный режим)
.epf 1,32Mb
19
.epf 2.0 1,32Mb 19 Скачать

Компонента использует последнюю версию бесплатной библиотеки "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 Внешняя компонента

См. также

Внешняя компонента WebSocket для 1С (c поддержкой Authorization token bearer)

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

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

4440 руб.

22.06.2020    15921    13    33    

19

Медиадисплей. Рекламный информационный монитор для покупателя.

Разработка внешних компонент 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 и маркетинг Управленческий учет Платные (руб)

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

16800 руб.

30.05.2017    51411    32    69    

41

Компонента ExchangeStruc (Структура Обмена). Прямой обмен данными между потоками, сессиями и окнами.

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

Аддон "Структура Обмена" (ExchangeStruc) - это компонента, которая обеспечивает доступ к разделяемым процессом структурам, аналогичным структурам 1С. Обеспечивает прозрачную передачу данных примитивных типов, в том числе Двоичных данных, в режиме Реального времени между разными контекстами (формами) или потоками одного процесса. В перспективе функционал будет расширен для обмена между процессами, даже разных версий платформ. Совместим с версиями Windows рабочих станций и серверов, с платформами 1С разных версий и релизов в режиме Native начиная с 8.2, и в режиме COM начиная с версий 7.7. По скорости чтения и записи лишь немногим уступает стандартной структуре 1С. НОВОЕ: Добавлен функционал регистрации компоненты COM в качестве OLE Auto (COMОбъект) для поддержки её работы в серверах старых версий 1С: 8.0 и 8.1, где работа с компонентами исключена. Теперь можно коммуникацию с Фоновыми заданиями на этих версиях проводить.

7200 руб.

19.04.2023    4615    1    0    

3

Внешняя компонента для сканирования (замена TWAIN-компоненты БСП) (Native Win 32/64)

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

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

2400 руб.

12.05.2020    24910    129    93    

78

Внешняя компонента печати PDF (Native Win 32/64)

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

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

1500 руб.

17.09.2018    34236    100    123    

107

Внешняя компонента для подключения 1С к телефонии Asterisk

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

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

2400 руб.

04.05.2018    44055    115    64    

58

Внешняя компонента для работы с Apach Kafka

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

Пример взаимодействия 1С с Apach Kafka посредством внешней компоненты, разработанной на основе официальной библиотеки librdkafka (the Apache Kafka C/C++ client library).

22.11.2023    2057    38    ivan1703    25    

37

Внешняя компонента GraphQL клиент для 1С

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

Внешняя компонента, позволяющая посылать команды и получать ответы по GraphQL протоколу из 1С.Может быть использована при интеграции. В 1С работает на стороне "клиента".

4600 руб.

27.06.2023    2215    1    0    

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