os7764 - Упаковщик двоичных файлов (для 1С 7.7)

Обработка позволяет размещать двоичные (бинарные) файлы в любом модуле 1С 7.7, как в конфигурации, так и во внешней обработке (.ert), а также предоставляет функции для их распаковки.

Скачать обработку (ert файл, 291 KB)

Обработка для 1С 7.7 - упаковщик двоичных (бинарных) файлов os7764

Как работает (кратко)

1. Откройте обработку
2. Вставьте в таблицу необходимые Вам файлы
3. Нажмите кнопку "Упаковать"
4. Сформированный обработкой текст скопируйте в нужный Вам модуль.
ВСЕ!
Для распаковки используйте функцию os7764__Распаковать(Путь_куда_распаковать) (описание функции включается в текст (п. 4) автоматически)

Таким образом, в модуль (т.е. фактически в конфигурацию либо внешнюю обработку) можно включить (и соответственно, программно извлечь)
• обновленные конфигурации (md)
• внешние справочники (КЛАДР)
• видеоинструкции по использованию
• внешние компоненты 1C, ActiveX компоненты
• драйвера торгового оборудования
• и т.п.

Для чего это нужно

Для того, чтобы передавать все необходимое в одном файле.
Например, в обработку загрузки КЛАДРа можно поместить сам КЛАДР. А в обработку работы со сканером штрихкодов можно поместить внешнюю компоненту - драйвер этого
сканера. При открытии обработка проверяет наличие драйвера в системе, и если его
нет - автоматически инсталлирует.
Это упрощает распространение программ через Интернет, а также перенос между рабочими
станциями - за одним файлом всегда проще уследить, чем за несколькими.
Кроме того, упакованные данные можно поместить в конфигурацию, это обеспечит доступность файлов после выгрузки конфигурации стандартными средствами 1С и загрузки на другом компьютере.

Особенности обработки

1. Простой и удобный интерфейс, никаких лишних действий со стороны пользователя.
2. Работает с файлами большого объема (несколько десятков MB).
3. Автоматически выбирает объект для работы с файлами ("Текст"/ "v7plus.dll: AddIn.V7TextFile") в зависимости от того, установлена v7plus.dll или нет.
4. Может автоматически устанавливать v7plus.dll - для этого достаточно добавить ее в список упаковываемых файлов.
5. Поддерживает 2 метода распаковки - с использованием WSH (Windows Scripting Host) либо приложения командной строки с автоматическим либо ручным выбором метода распаковки.
6. Все используемые процедуры, функции и переменные имеют уникальное имя, что позволяет избежать пересечения имен при вставке в существующие модули

Подробное описание

Обработка кодирует двоичные файлы по алгоритму base64. В результате образуется текст. состоящий из символов A-Z, a-z, 0-9, /, +, который и вставляется непосредственно в любой модуль. Соответственно, распаковка является обратным преобразованием этого текста в исходный файл.
К сожалению, в 1С нет функций для работы с двоичными данными, поэтому собственно кодирование/раскодирование выполняется "внешними" средствами, каковыми является Windows Scripting Host (встроен в Windows) и бесплатная утилита base64 (встроена в обработку). То есть для работы ничего дополнительно к обработке ставить не надо.

Для упаковки файлов

1. Откройте обработку и вставьте необходимые файлы в таблицу в верхней части формы. Имена файлов должны быть уникальны. Как и принято в Windows верхний/нижний регистры не различаются. Если файлы большого размера (больше 10Мб) то лучше их зархивировать перед вставкой.
Примечание: поскольку 1С сжимает файлы модулей, то на конечный размер md/ert предварительная влияет не сильно. Но размер самого модуля при предварительной архивации меньше, и такие модули 1С открывает быстрее.

2. Настройте опции упаковки:
Создавать
"полный текст модуля" - будет создан текст, включающий описания всех необходимых переменных, функций и процедур. Если Вы пользуетесь обработкой в первый раз, то используйте эту опцию.
"только упакованные файлы" - создает только текст, содержащий упакованные данные. Используйте, если Вы что-то поменяли и хотите просто вставить измененный файлы.

Метод распаковки
"Авто" - означает, что выбор метода распаковки будет произведен программой при формировании текста для вставки в модуль. Если общий объем файлов меньше 60К, то функция распаковки будет использовать только. Если объем больше 60К, то в текст модуля будет включена упакованная base64.exe.
"WSH + base64.exe" - принудительной включение упакованной "base64.exe" в формируемый текст модуля независимо от размера упаковываемых файлов
"Только WSH" принудительное отключение base64.exe

Символов в строке
Количество символов в строке кодированного в base64 текста. Число, от 72 до 480. должно быть кратно 4. Влияет в основном на внешний вид. Но: чем символов в строке меньше, тем больше самих строк, а значит больше и "накладные расходы" на хранение текста, и тем дольше открывается модуль.

3. Нажмите кнопку "Упаковать". После завершения обработки:
- если размер выходного файла менее 30 МБ, то сразу откроется окно с текстом для копирования.
- если размер выходного файла больше 30 МБ, будет выдано сообщение о том, текст будет сохранен в файл. Вы можете попробовать открыть этот файл программно, но иногда это приводит к зависанию 1С. Более надежно открывать большие файлы непосредственно конфигуратором.

4. Скопируйте текст в модуль своей обработки. Копировать необходимо 2 блока отдельно:
- описания переменных, функций и процедур вставляются в начало, после завершения описания переменных, но до начала описания функций и процедур, в т.ч. со словом "Далее".
- остальной текст вставляйте куда хотите (удобнее всего - в конец модуля)

5. Все переменные, функции и процедуры имеют имя, начинающиеся с os7764. Однако, если у Вас уже используется такое - следует сделать замену по всему тексту.

6. После вставки Вам становятся доступны 2 функции

os7764__ТаблицаФайлов()
- возвращает информацию об упакованных файлах в виде таблицы значений с колонками:
ИмяФайла (Строка)
Размер (Число, 15, 0)

os7764__Распаковать(Каталог, ИмяФайла, ПутьКBase64exe)
- извлекает файл в указанный каталог.
Параметры:
Каталог (Строка)
ИмяФайла (необязательно) (Строка с именем файла/СписокЗначений из строк с именами файлов которые надо извлечь. Если ИмяФайла не указано или "" (пустая строка), то распаковываются все файлы)
ПутьКBase64exe (необязательно) (Строка с путем к файлу base64.exe - ниже описано, в каких случаях используется)
Если все ОК, то возвращает "" (пустую строку), иначе строку с описанием ошибки

Как производится распаковка

Как уже было написано выше, обработка поддерживает 2 метода распаковки - WSH и base64.exe. Достоинство WSH в том, что он уже есть. Достоинство base64.exe в том, что она намного быстрее работает.
Выбор осуществляется следующим образом:
Если на диске в каталоге 1С77\Bin, каталоге с базой или указанному разработчиком пути существует файл base64.exe, то распаковка осуществляется с его помощь.
Если такого файла нет, то в том случае, если общий объем распаковываемых файлов составляет более 60К и base64.exe присутствует в тексте модуля, то сначала c помощью WSH распаковывается base64.exe, а затем с использованием base64.exe распаковываются уже сами файлы.

В связи с вышеизложенным, обратите пожалуйста внимание:
Если Вам надо упаковать и распаковать много мелких файлов, и упаковка/распаковка осуществляется маленькими порциями (меньше, чем по 60К), то необходимо:
1. Включить base64.exe в упаковываемый модуль
2. Перед распаковкой файлов, принудительно распаковать base64.exe в каталог программы или каталог ИБ. Можно использовать и любой другой каталог, но тогда при распаковке указывайте этот каталог третьим параметром функции os7764__Распаковать

Работа с упакованными файлами

Эта обработка содержит в своем модуле блоки, идентичные тем, что она формирует для распаковки. Таким образом, Вы можете подготовленный текст скопировать в эту же обработку (os7764.ert).

Внимание: в этом случае вставку текста необходимо производить с замещением еже имеющегося текста.

Для быстрого перехода к месту вставки откройте список функций и включите сортировку:
1. Если Вы хотите вставить весь модуль распаковки, то ищите функцию "A1_Модуль_распаковки_os7764"()
2. (Рекомендуется) Если Вы хотите вставить только данные, то ищите функцию "A2_Данные_втставлять_после_меня"()

После этого сохраните обработку и откройте ее снова в режиме предприятие. Если все сделано правильно, Вы увидите в таблице список файлов, рядом с каждым из них будет написано "Модуль".

Обработка упаковки двоичных файлов os7764 со вложенными файлами

Если Вы хотите быстро просмотреть какой-то файл, щелкните по нему 2 раза мышкой. Чтобы распаковать какие-то файлы, отметьте их, выберите каталог и нажмите "распаковать".

Обратите, пожалуйста, внимание

Обработка не имеет каких-либо ограничений на размеры вставляемых файлов, однако при вставке файлов более 100 МБайт открытие обработки может занять продолжительное время. Если такая необходимость все-таки существует, следует предварительно предупреждать пользователя об этом, иначе пользователь может решить, что 1С зависла и закрыть ее принудительно, не дожидаясь открытия файла с обработкой.

Обновлено 05.04.2015 21:36
 
home search