Просмотр ресурсов 1С методами встроенного языка (8.3.9)

30.01.17

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

Использование новых методов работы с двоичными данными на примере ресурсных файлов 1с.

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

Наименование Файл Версия Размер
Анализ ресурсов 1С
.epf 18,66Kb
99
.epf 18,66Kb 99 Скачать

В последнее время на infostart идет достаточно активное обсуждение внутренних ресурсов платформы и их использование. Решил совместить просмотр всех ресурсов 1с с новыми методами работы с двоичными данными. В результате родилась обработка "Просмотр ресурсов 1с", которая при работе с файлами ресурсов использует только встроенные в платформу (8.3.9) методы. Реализовано только чтение файлов, но ничего не мешает сделать и запись. Пока таких планов нет.

Для позиционирования в файле используется объект Поток, с помощью него же читаются простые типы. Для сохранения двоичных данных используются объекты ЧтениеДанных и РезультатЧтенияДанных.

Наибольший интерес, наверно, представляют картинки, вытащенные из ресурсов. Но для понимания внутренних механизмов платформы интересны и другие ресурсы: *.f, *.lf, *.xdto и т.д.

Update2: Кардинальная переработка отображения ресурсов:

  1. Теперь можно анализировать ресурсы всех файлов, либо только отмеченных.
  2. Также добавлена возможность отбора по формату, например, отобразить только ресурсы *.epf.
  3. Добавлена возможность сохранения ресурсов с одновременным открытием каталога.
  4. Добавлена возможность открытия ресурсов epf в предприятии.
  5. Добавлено отображение количества файлов и ресурсов.
  6. Значительно увеличена скорость работы обработки.

Update: В связи с тем, что в 8.3.10 изменился формат хранения картинок (они стали в разных масштабах), реализован просмотр zip-архивов. Исправлены найденные ошибки.

Ресурсы двоичные данные

См. также

SALE! 20%

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

13000 10400 руб.

02.09.2020    121602    670    389    

711

SALE! 25%

Infostart PrintWizard

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 15300 руб.

06.10.2023    7261    21    6    

39

SALE! 20%

Infostart УДиФ: Управление данными и формами

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

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

10000 8000 руб.

10.11.2023    3502    11    1    

33

SALE! 30%

PowerTools

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

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

3600 2520 руб.

14.01.2013    177725    1073    0    

849

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99338    239    97    

296

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18102    6    8    

39

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28095    3    10    

15

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23595    15    15    

32
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1448 07.09.16 11:45 Сейчас в теме
Интересно.
Расскажи про скорость работы.
2. r0610201 314 07.09.16 15:20 Сейчас в теме
(1) artbear, на имеющихся ресурсных файлах практически мгновенно распаковывает.
Самый большой "\8.3.9.1648\bin\mngsrv_root.res" - 12 мегабайт - 0,411 секунды. Объемы маленькие, конечно. Так это я все распаковываю, можно ж по индексу получать только нужный ресурс, будет еще быстрее.
3. SlavaKron 11.09.19 15:08 Сейчас в теме
По-моему, недооцененная обработка.
Кстати, автор, эти файлы можно экспортировать без использования функций работы с двоичными данными.
Большинство функций 1С, использующих в качестве параметра какой-либо путь к файлу (КопироватьФайл(), Новый ДвоичныеДанные(), ВнешниеОбработки.Подключить() и т.д.), могут работать и с внутренними ресурсами:
Например, ВнутреннееИмя = "v8res://" + Родитель.ИмяРесурса + "/" + ТекущиеДанные.ИмяРесурса;

Где Родитель.ИмяРесурса - часть имени res-файла (для "\8.3.9.1648\bin\mngsrv_root.res" - "mngsrv"),
ТекущиеДанные.ИмяРесурса - имя файла ресурса

Хотелось бы видеть подобный функционал/интерфейс, как во вложении. Достаочно поискать все res-файлы в папке КаталогПрограммы().
Прикрепленные файлы:
tormozit; user774630; BigB; +3 Ответить
4. r0610201 314 12.09.19 09:36 Сейчас в теме
Большинство ресурсных файлов делятся на основные и русские, последние имеют постфикс "_ru". Например, есть файлы "mngbase_root.res" и "mngbase_ru.res". В этих файлах есть ресурс "About.lf". Выполнение кода
КопироватьФайл("v8res://mngbase/About.lf","C:\temp\About.lf");
приводит к копированию ресурса из файла ru и я пока не знаю способа, как скопировать файл из root.
К тому же, было просто интересно изучить возможности работы с двоичными данными, на тот момент они были совсем новыми.
5. r0610201 314 16.09.19 12:26 Сейчас в теме
(3) Переработал интерфейс, теперь можно анализировать хоть все ресурсные файлы сразу.
frkbvfnjh; BigB; SlavaKron; +3 Ответить
10. qad 8 16.03.20 15:32 Сейчас в теме
Подскажите, как Вы смогли получить список файлов хранящихся в файле ресурса?
11. r0610201 314 17.03.20 08:42 Сейчас в теме
(10)
Не очень понял вопрос. И имена ресурсов, их значения - все хранится в ресурсных файлах. Как конкретно анализируются ресурсные файлы - можно посмотреть код, он открыт.
12. qad 8 18.03.20 18:15 Сейчас в теме
Это был вопрос к SlavaKron, т.к на скрине у него другая обработка или та же, но интерфейс другой?
6. VKislitsin 960 05.11.19 11:38 Сейчас в теме
Отличная штука! Спасибо!
Отдельно хочу заметить, что распаковка в данной обработке происходит не методом КопироватьФайл("v8res://...."), как в большинстве подобных разработок, а непосредственным чтением двоичных данных. Как результат, удается распаковать ресурсы, которые другими способами открыть не получается.
7. kuzyara 1900 06.03.20 07:23 Сейчас в теме
Спасибо! Все ресурсы облазил)
8. frkbvfnjh 785 06.03.20 15:35 Сейчас в теме
9. andruha44 06.03.20 17:35 Сейчас в теме
Очень интересно! Спасибо!
13. Pervuy 62 23.12.20 17:28 Сейчас в теме
Добрый день. Не очень понял зачем эта обработка и какой несет практический смысл...
Это не критика автора это моя не образованность в этом вопросе.
Подскажите в чем суть этого всего и что такое Ресурсы 1с?
14. r0610201 314 25.12.20 12:21 Сейчас в теме
(13) Мне когда-то давно все это понадобилось ради картинок. В ресурсах можно найти любую картинку, которую видно в конфигураторе или предприятии. Далеко не все из них вынесены в библиотеку картинок. Но затем стали интересны и другие вещи: например, встроенные обработки (Все функции, Журнал регистрации, Активные пользователи и другие *.epf), встроенные общие формы - разнообразные диалоги (*.lf). Плюс я получил опыт в чтении двоичных данных средствами 1С. Как-то так.
15. Pervuy 62 29.12.20 13:31 Сейчас в теме
(14)Спасибо за ответ. Теперь все стало понятно.
16. ump1975 18.08.21 15:56 Сейчас в теме
Классная обработка!
Как уже говорилось выше недооцененная вещь. Получил большое удовольствие в разборе кода и адаптации функционала под свои нужды. Если не секрет, откуда знания структуры файлов ресурсов 1С? Искал в своё время информацию по этой теме в интернете, не нашел.
17. r0610201 314 25.08.21 13:36 Сейчас в теме
(16) Far, просмотр в виде двоичных данных и немного терпения :)
EugeneSemyonov; +1 Ответить
19. ZhokhovM 724 08.10.21 11:33 Сейчас в теме
18. Obertone 74 08.10.21 07:40 Сейчас в теме
Кстати, а эта обработка получает встроенные в предприятие редакторы файлов HTML и географических схем?
20. Dmitryiv 161 04.04.23 19:57 Сейчас в теме
Насколько проблематично собрать обратно .res файл?
21. r0610201 314 06.04.23 08:45 Сейчас в теме
(20)
Больше не занимался этим вопросом, думаю, res-файл собрать не очень большая проблема.
22. lostcay 5 27.11.23 15:20 Сейчас в теме
Я тут потыкался с этими файлами, платформе такой движ очень не нравится.
Интересное замечание - кажется сами dll, связанные с ресурсным файлом берут от туда данные по индексу, а не читают и преобразуют каждый раз в какой-нибудь свой формат. С одной стороны это конечно вопрос оптимизации. Например если у тебя есть json который точно не изменяется, конечно возьми значение по индексу символа или номеру строки и не читай и десериализуй каждый раз, а с другой стороны, почему бы не компилировать эти библиотеки сразу с данными ресурсов.
Еще один момент, похоже платформа где-то хеширует ресурсные файлы и крашится если они были изменены, дело в том, что, даже с учетом первого замечания, редактируя двоичные данные ресурсного файла, платформа иногда крашится, то есть я просто некоторые байты зануляю и именно на этом моменте обрубается результат запроса. Хотя заменив в html`e цифры другими цифрами все работает)

И черт его знает как их можно безболезненно редактировать. Иногда нужно чистить кэш перед изменением, иногда без этого встает. Думаю взять отпуск и доломать все это дело)
Если есть какие идеи на примете, накидывайте
Оставьте свое сообщение