Размещение двоичных данных (обработок, документов, библиотек) в файле ERT

30.10.08

Разработка - Инструментарий разработчика

Обработка для конвертации любого файла в псевдо-BMP-файл. Сконвертированные таким образом файлы можно размещать внутри любой внешней обработки/отчета (контейнера) и извлекать по мере необходимости. Таким образом можно внутри одного файла - внешней обработки, размещать различные двоичные данные. Например: многочисленные служебные ert-файлы, документы Word и Excel, архивы, библиотеки и так далее.

Скачать файл

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

Наименование По подписке [?] Купить один файл
Обработка-конвертор
.1204802977 28,50Kb
595
595 Скачать (1 SM) Купить за 1 850 руб.
Пример реализации
.1225297119 24,00Kb
265
265 Скачать (1 SM) Купить за 1 850 руб.
1. Воспользовавшись приведенной обработкой-конвертором, сконвертируйте необходимые вам файлы. Теперь обработка-конвертор не требует никаких внешних компонент и позволяет обрабатывать сразу группу файлов. Запишите размеры исходных файлов.

2. В рабочем отчете/обработке (куда хотите зашить сконвертированные файлы) в любую из печатных таблиц вставьте картинки из полученных вами файлов. В свойствах этих картинок (в поле "текст") укажите уникальные идентификаторы этих картинок-файлов, по которым потом будете к ним обращаться. Эти идентификаторы не должны встречаться больше нигде в пределах файла (ну например "fileimage1", "fileimage2"). Можно практически скрыть эти картинки с глаз пользователя, если картинки размещать строго по размеру ячеек, а те колонки и строки где картинки расположены, уменьшить по размеру до минимума.

3. В коде рабочей обработки создаете процедуру "РаспаковатьBin" и переменную "СписокРаспакованныхФайлов". Исходный код процедуры можно взять в обработке-примере.

4. Ну и затем, в необходимых местах обработки, когда требуется получить запакованный файл, вызываете процедуру распаковки. Например:

// первый параметр - имя распаковываемого файла
// второй параметр - уникальный идентификатор файла (который вы указывали в свойствах картинки)
// третий параметр - размер исходного файла (который выводился в списке файлов обработки-конвертора)
РаспаковатьBin("ObAvtore.ert","ObAvtore",14848);
ОткрытьФормуМодально("Отчет",,КаталогВременныхФайлов()+"ObAvtore.ert");

ЗАКЛЮЧЕНИЕ.

Таким образом можно внутри одного файла - внешней обработки, размещать различные двоичные данные. Например: многочисленные служебные ert-файлы, документы Word и Excel, архивы, библиотеки и так далее. Распаковка файлов занимает некоторое время (от долей секунды до нескольких секунд - в зависимости от размера распаковываемого файла и размера файла-контейнера), поэтому нужно использовать эти возможности разумно. Например, можно внутрь главной обработки запихать 5 вспомогательных обработок по 50 килобайт, или одну библиотеку килобайт на 500, но явно не стоит запихивать 10 вордовских файлов по 600 килобайт каждый. В этом случае лучше их предварительно запаковать, уменьшив тем самым раз в 10, и зашить в контейнер архив + маленький разархиватор (unzip, unrar). Можно создавать обработки с несколькими уровнями вложенности (как например здесь: //infostart.ru/profile/1782/projects/2682/ ). На текущий момент большинство моих обработок, выложенных на Инфостарте, используют эту технологию.

См. также

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Консоль запросов к базе SQL, не требующая внешних компонент

10 стартмани

29.04.2015    22279    57    Gvozdod    8    

16

Инструментарий разработчика Системный администратор Программист Платформа 1С v7.7 Платформа 1С v8.3 Абонемент ($m)

Очередная редакция альтернативного стартера, являющегося продолжением StartManager 1.3. Спасибо всем, кто присылал свои замечания и пожелания, и тем, кто перечислял финансы на поддержку проекта. С учетом накопленного опыта, стартер был достаточно сильно переработан в плане архитектуры. В основном сделан упор на масштабируемость, для способности программы быстро адаптироваться к расширению предъявляемых требований (т.к. довольно часто просят добавить ту или иную хотелку). Было пересмотрено внешнее оформление, переработан существующий и добавлен новый функционал. В общем можно сказать, что стартер эволюционировал, по сравнению с предыдущей редакцией. Однако пока не всё реализовано, что планировалось, поэтому еще есть куда развиваться в плане функциональности.

1 стартмани

23.04.2014    168353    1882    Alexoniq    1596    

499

Инструментарий разработчика Программист Платформа 1С v7.7 Платформа 1С v8.3 Россия Абонемент ($m)

Согласитесь, что окно стандартное сообщений в 1С иногда приносит больше неудобств, чем пользы. И тем более разные "Предупредить"... Что с этим окном только не делают! Его отцепают от формы, делают маленьким, умудряются спрятать за границы экрана. А потом звонят программистам с претензией, что документ почему-то не проводится, отя ничего и не пишет. У вас такого не было? А вот у нас было и не раз )))

1 стартмани

04.09.2013    33408    61    O-Planet    78    

49

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

На днях встретил вопрос на форуме про возможность внесения изменений в конфигурацию без долгого сохранения в рабочей базе большого объема. Вот решил поделиться опытом, как это делал я. База у нас была объемом порядка 120 Гб. К базе обращался сайт в режиме 24/7, поэтому важно было быстро сохранять изменения и желательно без последующего монопольного запуска для восстановления индексов и процедур и без отключения пользователей от базы. Это первая часть статьи и посвящена она справочникам. С одной стороны - это самый простой объект, с другой стороны, именно про справочник спрашивалось на форуме. Если статья будет востребована, то я напишу аналогичные про документы, регистры и может еще что.

1 стартмани

13.08.2013    21798    Reptile    5    

35

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Встала недавно задача для одной организации, которая все еще на 1С 7.7 немного автоматизировать работу отдела продаж. А именно уйти от ручного заполнения договоров, сделанных юристами в MS Word. Договора от разных фирм и разного назначения отличались. Переводить их в таблицы 1С очень не хотелось и нашел способ прямо в файлах Word сделать небольшие дополнения, чтобы можно было печатать, используя именно эти заготовки юристов.

1 стартмани

14.07.2013    27643    56    adamx    11    

14

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Давным давно, когда я еще плотно писал на 7.7 работа с формами была мучительной и неудобной. Приходилось каждый элемент выкладывать, выравнивать на форме ручками, прописывать код в модуле. Иногда при разработке очередной формы приходила в голову мысль: "а где-то я уже похожее делал..." и начинался мучительный поиск подходящего кода в своих запасах........

1 стартмани

21.02.2013    18345    36    MarSeN    14    

17

Инструментарий разработчика Программист Платформа 1С v7.7 Конфигурации 1cv7 Абонемент ($m)

Анализируем различные данные в 1С, используя OLAP-технологии со всеми прелестями. Т.е. наглядное отображение данных, быстрые расчеты, горизонтальные и вертикальные группировки любой вложенности, удобная фильтрация, Drag'n'Drop и ещё много приятных вещей от MS. Обработка на входе принимает практически любую таблицу значений (ТЗ в которой колонкам указаны типы значений, строка, число и т.п.), на выходе имеем на форме 1С сводную таблицу и график по этой ТЗ, с которой работаем, как и в Excel со сводной таблицей и диаграммой. Взял за основу разработку «OLAP Анализ счёта» ( http://infostart.ru/public/14964/ ) от JohnyDeath и переделал под любую ТЗ. Опционально используется «Прогресс бар для 1С 77» (http://infostart.ru/public/14061/ ) от Gmix.

1 стартмани

21.12.2012    36349    51    venger    7    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. maljaev 789 30.10.06 21:24 Сейчас в теме
Успокою сразу: вирусов здесь нет. Можете предварительно поглядеть код обработки, он небольшой и довольно простой. Кроме того, в данном случае производится только распаковка компоненты, без ее подключения. Но в дальнейшем смотрите в оба ;)
2. 30.10.06 21:37 Сейчас в теме
Выложи, плиз, также эту обработку
Интересно было бы посмотреть :)
3. maljaev 789 30.10.06 22:15 Сейчас в теме
Добавлена обработка по преобразованию любых двоичных фaйлов в файлы BMP. Для работы обработки требуется загруженная ВК 1С++ версии не ниже 2.0.3.1
4. maljaev 789 31.10.06 01:13 Сейчас в теме
Обновил обе обработки.
1) Добавил везде комментарии
2) Исправил ошибку (нюанс) в алгоритме формирования BMP (выравнивание строк по 4 байта)
3) Увеличил удобство и наглядность кода
4) На порядки ускорил алгоритм восстановления бинарника (тот, что на VBS)
5. defini 464 02.11.06 11:05 Сейчас в теме
Народ, ну вы даёте, столько скачиваний и нулевой рейтинг, неужто никому не понравилось. +1 адназначна (жаль, что нельзя +10).
6. maljaev 789 02.11.06 11:54 Сейчас в теме
Я еще радуюсь, что в минус нельзя ставить! А то бы мне сисадмины живо до -100 опустили. :)))
7. maljaev 789 02.11.06 12:07 Сейчас в теме
Надо было в ERT-шник патч Сауроновский зашить или еще что полезное - вот тогда бы рейтинг пополз :) На будущее хочу конвертер в BMP тоже без использования ВК переписать, и выложить дополнительно portable-сборку Uchoise (обработку подбора объектов) 8-ERT + 1-TXT ->> 1-ERT как пример практического использования.
8. корум 288 02.11.06 13:15 Сейчас в теме
(0) Клянчишь, клянчишь... Не поставлю.
1. 1с++ = не у всех будет работать. Не проверить никак.
2. патчик, ДЛЛ в ЕРТ закинуть - а смысл?
Фото номенклатуры к каждой позиции всё равно не прикрутить...

Приведи пример практической сферы применения обработки.
9. maljaev 789 02.11.06 17:07 Сейчас в теме
Я НЕ КЛЯНЧУ! Это раз! Нахер мне у ВАС рейтинг клянчить, если у меня на ПРОКЛУБЕ все регалии, которых только можно добиться, ключая входимость в МОДЕРЫ и КОМАНДУ клуба. ВАМ до уровня этого ресурса еще расти долго, как бы ПРОКЛУБ ни висел. А выложил я исключительно ради любви к искусству, а не для плюсов, хотя просто комменты были бы приятны. Пример практического использования каждый для себя находит сам, это КОНЦЕПТ-работа. Главное предназначение - создание portable-сборок, если это слово что-нибудь ВАМ говорит.

Ну и в-общем, за одно только это оскорбление, которое главное Я считаю оскорблением, пожалуй отказываюсь от дальнейших издевательств и сношу обработки. Больше этого не повторится. Кому сильно понадобиться, тот напишет в личку.
13. АЛьФ 10.12.07 09:50 Сейчас в теме
2(9) Ну и глупо поступил.
15. vasilykushnir 63 10.12.07 11:18 Сейчас в теме
(9)Сань, да плюнь ты да разотри - на все шпильки реагировать жизни не хватит. Глупо так обижатся. Есть отличная восточная поговорка: собака лает - караван идет...
10. brr 184 11.10.07 10:17 Сейчас в теме
11. CheBurator 2712 11.10.07 10:57 Сейчас в теме
Аналогичную штуку SmaharbA показывал...
12. Rebel2007 10.12.07 09:32 Сейчас в теме
Скачивание недоступно, поэтому и судить нечего ;о)
14. astonvilla 234 10.12.07 10:20 Сейчас в теме
Ну дык "сам породил, сам и убью".
Жаль... С чего было психовать?
16. CheBurator 2712 10.12.07 13:01 Сейчас в теме
Автор! Не психовать! Обработка нужная! А то есть юзвери, которые неспособны файлы копировать...
17. maljaev 789 10.12.07 13:34 Сейчас в теме
Да господи, че за сыр-бор-то? Ну снес давно как-то, жаль всю тему снести не смог. И странное дело: обработки нету, а обсуждают... Может, ее хоть выложить, чтобы было что обсуждать? Тем более, что уже никаких ВК не требуется и скрипт не пишется в файл.
18. vip 10.12.07 13:42 Сейчас в теме
(17) Не нужно слушать мнение людей, способных создать только очередную гениальную форму ТОРГ-12.
Выкладывай.
19. astonvilla 234 10.12.07 14:13 Сейчас в теме
Давай, выкладывай. Хоть посмотрич, из-за чего сыр-бор начался :))
20. maljaev 789 06.03.08 15:11 Сейчас в теме
Ну вот выложил. Немного не доработал - для конвертации все еще требуется 1C++ (ну я думаю для разработчика это не проблема), но для дальнейшей работы контейнера и распаковки запакованных данных уже ничего не требуется.
22. vasilykushnir 63 06.03.08 15:40 Сейчас в теме
21. maljaev 789 06.03.08 15:29 Сейчас в теме
Конечно, блин, вещь эта бомбе подобна - так как зашить вирус внутрь обработки раз плюнуть, но ведь взрывчатку не только в терактах используют. Надеюсь, что эта вещь не вызовет эпидемии 1С-заразы, а будет использоваться авторами разумно и по назначению.
23. coder1cv8 3477 06.03.08 15:49 Сейчас в теме
Почитал описание, ну как тока не выкручиваются семерочники, какие тока костыли не придумывают! ))
Ещё, щас забавно читать пост автора о проклабе, вот ведь как время ситуацию меняет! )
За смекалку плюс.
ЗЫ: надеюсь ничем не обидел уважаемого автора.
24. maljaev 789 06.03.08 15:58 Сейчас в теме
Да, времена меняются... и люди тоже. Насчет проклаба хочу сказать, что Лумпов имел возможность кардинально улучшить свой сайт, но упустил свой шанс или не захотел им воспользоваться. С другой стороны, не все в организации Инфостарта мне нравиться, многое можно было сделать удобнее, нагляднее, функциональнее, и дизайн постоянно перекраивают, но несмотря на это сайтом занимаются и идут в ногу со временем - а это самое главное.
25. coder1cv8 3477 06.03.08 16:04 Сейчас в теме
(24) Вот. Самый большой плюс, на мой взгляд, что этим проектом занимаются. А проклабу позволили спокойно умереть, ну да туда и дорога, никогда он мне не нравился, вечно тормозил сколько помню...
26. p1l1gr1m 09.09.08 18:47 Сейчас в теме
Великолепно! Автору - поклон в пояс
27. alexqc 150 17.09.08 12:21 Сейчас в теме
Можно пару-тройку предложений внести :)?
1а. 1С++ - компонента хорошая, регистрации под админом не требующая. Потому, может, не стоит от нее бегать, на скрипты переписывать?
1б. А если используем 1С++ - там BinaryData сжатие поддерживает, можно заодно и сжимать-разжимать.

2. В BMP теоретически может быть участок-дырка между заголовком и данными: смотрим на смещение 1078 до данных. Если его увеличить - получим "дырку", в которую можно засунуть что-то свое. Надо проверить, если это так (т.е. если такой "рисунок" корректно читается системой и не меняется 1Ской при вставке), то можно использовать даже "фиксированную" BMP - т.е. взять какой-то рисунок, (кстати не обязательно 256-цветный, дабы на палитру не расходоваться), и вставлять данные в него, меняя только размер "дырки". При этом сам рисунок можно вполне смысловым взять - дискету там какую-нибудь, или скрепку. Типа - "присоединенный файл" :)
28. maljaev 789 29.10.08 19:29 Сейчас в теме
Наконец-то у меня дошли руки доработать конвертор. Так как я часто теперь эту технологию использую, решил максимально облегчить себе процесс на будущее. Теперь преобразование файла в псевдо-BMP не требует никаких внешних компонент, плюс может обрабатывать сразу группу файлов (смотрите скриншот). Код для внедрения в свои разработки я вынес в обработку "Пример реализации", которую можно скачать там же где и конвертор.
29. anatoliy123 10.11.08 15:23 Сейчас в теме
Огромное спасибо автору. Инструмент действительно стоящий внимания!
30. konan 14.11.08 15:19 Сейчас в теме
31. CheBurator 2712 14.11.08 16:10 Сейчас в теме
Автор! выложи свою библиотеку пиктограмм!!!
;-)
32. maljaev 789 14.11.08 16:17 Сейчас в теме
(31) Что ты имеешь ввиду? Я не пользуюсь готовыми библиотеками - чаще рисую под конкретную разработку, ну плюс ранее нарисованные.
33. JohnyDeath 302 14.11.08 16:25 Сейчас в теме
34. AntiBuh 6 03.12.08 10:42 Сейчас в теме
Да плюс
прикольная весчь
35. Noy 1079 08.12.08 19:06 Сейчас в теме
У такой обработки рейтинг должен быть гораздо выше.
ИМХО - недооценили.
36. nickVZ 10 14.12.08 15:43 Сейчас в теме
Можно еще предложение? Мне вот не нравится третий параметр в РаспаковатьBin() - размер исходного файла.
Ведь эти файлы - очень часто "живые", их может быть много (с вариантами), и хранить лишнюю техническую информацию как-то ломает ;)
Может, просто запсочить этот размер после заголовка BMP в виде 36-ричного значения при упаковке, да и дело с концом, а? И функции готовые в 1С имеется (_IdToStr и StrToId)... Ну не документированные - не беда, исключат - воспроизвести не проблема ;)
37. maljaev 789 14.12.08 23:58 Сейчас в теме
Отличное предложение, спасибо. Сделаю.
38. maljaev 789 15.12.08 00:09 Сейчас в теме
У меня даже получше идея появилась - использовать область палитры bmp-файла как fat. Тогда можно будет все необходимые файлы запихать в один bmp, а в fat записывать имена файлов, смещения, размеры. По идее, скорость должна возрасти (довольно сильно, если файлов много или они большие), и удобство тоже.
39. Noy 1079 15.12.08 09:35 Сейчас в теме
40. brr 184 16.01.09 15:54 Сейчас в теме
В порядке бреда. А если бинарник хранить в строке бесконечной длины? Уйдем от конфигуратора.
41. sml 41 29.01.09 15:07 Сейчас в теме
плюсанул за идею - буду думать куда прикрутить у себя
LanaSN; snl; +2 Ответить
43. Noy 1079 29.01.09 15:24 Сейчас в теме
(41) Можешь написать "инсталятор внешних обработок" ;)
Попиарюсь:
Я эту идею использовал для запаковки внешней компоненты в обработках http://infostart.ru/projects/3312/ и http://infostart.ru/projects/3057/
42. Ёпрст 1065 29.01.09 15:17 Сейчас в теме
(42) смотри у автора другие работы, и думать, куда прикрутить "идею" будет не надо :)
44. script 128 17.02.10 04:16 Сейчас в теме
А когда будет продолжение... ?
Разработка очень нужная но долго выгружает файл от 100 кб. При файле в 500 кб у меня 1С вообще виснет. Да и упаковка и распаковка нескольких файлов одновременно была бы тоже оч. полезной.
45. nafa 661 19.04.10 00:01 Сейчас в теме
(44) Если файлы большие или их много, то можно попробовать os7764
46. BlueWind 21.04.10 16:56 Сейчас в теме
Обработка чрезвычайно полезная! Мне - 100% нужная вещь!!!

(44) (45) в той же os7764 имеется такой комментарий:


11. Noy 20.04.2010 17:13
По-поводу обработки Маляева (Размещение двоичных данных (обработок, документов, библиотек) в файле ERT) - она действительно очень медленная, но если ее чуть-чуть "допилить" то можно получить такие результаты:
Код
Распаковка файла FormEx.dll (558'080 байт): 0.133 сек
Распаковка файла far.com.ua.xls (10'362'368 байт): 0.953 сек
Распаковка файла Snatch_Goblin.avi (47'741'596 байт): 9.149 сек

что гораздо лучше чем
Цитата
kladr.zip (12Мб) извлекается за 16 секунд

Ответили: (12.) (13.) (16.) (18.)
Показать



13. Ёпрст 20.04.2010 18:01
(11.) чем допиливал обработку Маляева?

Ответили: (14.)

14. Noy 20.04.2010 18:06
(13.) Просто читаю не по-байтно, а блоками по 4К

Ответили: (15.)

47. VRP 270 04.06.10 02:25 Сейчас в теме
48. krupp 27.10.11 13:02 Сейчас в теме
49. пользователь 20.12.11 12:53
Сообщение было скрыто модератором.
...
50. maljaev 789 12.08.13 01:49 Сейчас в теме
Я случайно прочел свои же комменты за 2006-2007 годы и ужаснулся. :) Молодой был, горячий... Приношу извинения всем кого обидел ненароком.
51. CheBurator 2712 18.06.24 02:35 Сейчас в теме
Убиться ;-)
Взял сабж.
Завернул в BMP 1C++ и Formex
Если положить их в одну обработку для распаковки - пример распаковки уходит в себя куда-то и висит жрет проц...
52. CheBurator 2712 18.06.24 03:42 Сейчас в теме
Как не боролся - так и не удалось распаковать из одного макета две уложенные в макет картинки с использованием данной обработки-примера распаковки (паковал также паковщиком из данной публикации)
первая картинка прикрепленная: formex.bmp - размер для распаковки 1137152
вторая прикрепленная 1Cpp.bmp - размер для распаковки 2076672

первой распаковать 1С++, второй - формекс,
ВК должны оказаться в КаталогВременныхФайлов()
Прикрепленные файлы:
53. BlueWind 19.06.24 02:23 Сейчас в теме
(52) Вот эту обработку не пробовал? "Упаковщик двоичных файлов os7764"
https://infostart.ru/1c/tools/69202/
У нас она прекрасно работает. Наполнили ее нужными файлами, вставили в мд-шник, и распаковываем через нее 1c++, formex, консольный rar и прочее в филиалах при запуске базы..
54. CheBurator 2712 19.06.24 02:37 Сейчас в теме
(53) Спсб! Посмотрю!
(ранее пробегал когда-то, но не набрел сейчас ;-)
Оставьте свое сообщение