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

30.10.08

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

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

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

Наименование Файл Версия Размер
Обработка-конвертор
.1204802977 28,50Kb
593
.1204802977 28,50Kb 593 Скачать
Пример реализации
.1225297119 24,00Kb
264
.1225297119 24,00Kb 264 Скачать
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    21562    54    Gvozdod    8    

14

StartManager 1.4 - Развитие альтернативного стартера

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

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

1 стартмани

23.04.2014    165729    1864    Alexoniq    1596    

496

Tray Informer

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

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

1 стартмани

04.09.2013    32883    61    O-Planet    78    

49

Изменение структуры баз 1С 7.7 без долгой реструктуризации. Часть 1. Справочники

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

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

1 стартмани

13.08.2013    21200    Reptile    5    

35

v7.7 1CDialogControls: Инструмент в помощь разработчику на 7.7.

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

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

1 стартмани

21.02.2013    18031    35    MarSeN    14    

16

[Разработчику] Любая таблица значений в OLAP

Инструментарий разработчика Платформа 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    36105    51    venger    7    

23

Библиотека кода 1С 7.7 (накопленная за 8 лет)

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

Весь код на 1С 7.7, собранный для повторного использования за 8 лет работы.

10 стартмани

25.11.2012    34960    248    adhocprog    51    

70
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
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. корум 287 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 182 11.10.07 10:17 Сейчас в теме
11. CheBurator 3119 11.10.07 10:57 Сейчас в теме
Аналогичную штуку SmaharbA показывал...
12. Rebel2007 10.12.07 09:32 Сейчас в теме
Скачивание недоступно, поэтому и судить нечего ;о)
14. astonvilla 234 10.12.07 10:20 Сейчас в теме
Ну дык "сам породил, сам и убью".
Жаль... С чего было психовать?
16. CheBurator 3119 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 3468 06.03.08 15:49 Сейчас в теме
Почитал описание, ну как тока не выкручиваются семерочники, какие тока костыли не придумывают! ))
Ещё, щас забавно читать пост автора о проклабе, вот ведь как время ситуацию меняет! )
За смекалку плюс.
ЗЫ: надеюсь ничем не обидел уважаемого автора.
24. maljaev 789 06.03.08 15:58 Сейчас в теме
Да, времена меняются... и люди тоже. Насчет проклаба хочу сказать, что Лумпов имел возможность кардинально улучшить свой сайт, но упустил свой шанс или не захотел им воспользоваться. С другой стороны, не все в организации Инфостарта мне нравиться, многое можно было сделать удобнее, нагляднее, функциональнее, и дизайн постоянно перекраивают, но несмотря на это сайтом занимаются и идут в ногу со временем - а это самое главное.
25. coder1cv8 3468 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 3119 14.11.08 16:10 Сейчас в теме
Автор! выложи свою библиотеку пиктограмм!!!
;-)
32. maljaev 789 14.11.08 16:17 Сейчас в теме
(31) Что ты имеешь ввиду? Я не пользуюсь готовыми библиотеками - чаще рисую под конкретную разработку, ну плюс ранее нарисованные.
33. JohnyDeath 301 14.11.08 16:25 Сейчас в теме
34. AntiBuh 6 03.12.08 10:42 Сейчас в теме
Да плюс
прикольная весчь
35. Noy 1076 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 1076 15.12.08 09:35 Сейчас в теме
40. brr 182 16.01.09 15:54 Сейчас в теме
В порядке бреда. А если бинарник хранить в строке бесконечной длины? Уйдем от конфигуратора.
41. sml 41 29.01.09 15:07 Сейчас в теме
плюсанул за идею - буду думать куда прикрутить у себя
LanaSN; snl; +2 Ответить
43. Noy 1076 29.01.09 15:24 Сейчас в теме
(41) Можешь написать "инсталятор внешних обработок" ;)
Попиарюсь:
Я эту идею использовал для запаковки внешней компоненты в обработках http://infostart.ru/projects/3312/ и http://infostart.ru/projects/3057/
42. Ёпрст 1063 29.01.09 15:17 Сейчас в теме
(42) смотри у автора другие работы, и думать, куда прикрутить "идею" будет не надо :)
44. script 128 17.02.10 04:16 Сейчас в теме
А когда будет продолжение... ?
Разработка очень нужная но долго выгружает файл от 100 кб. При файле в 500 кб у меня 1С вообще виснет. Да и упаковка и распаковка нескольких файлов одновременно была бы тоже оч. полезной.
45. nafa 657 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 годы и ужаснулся. :) Молодой был, горячий... Приношу извинения всем кого обидел ненароком.
Оставьте свое сообщение