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

30.01.17

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

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

Скачать файл

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

Наименование По подписке [?] Купить один файл
Анализ ресурсов 1С
.epf 18,66Kb
112
112 Скачать (1 SM) Купить за 1 850 руб.

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

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

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

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

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

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

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

См. также

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

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

12000 руб.

02.09.2020    169274    937    403    

905

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

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя. Решение в Реестре отечественного ПО

8400 руб.

20.08.2024    12599    99    42    

101

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

Инструмент для написания и отладки кода в режиме «1С:Предприятие». Представляет собой консоль кода с возможностью пошаговой отладки, просмотра значений переменных любых типов, использования процедур и функций, просмотра стека вызовов, вычисления произвольных выражений на встроенном языке в контексте точки останова, синтаксического контроля и остановки по ошибке. В консоли используется удобный редактор кода с подсветкой, контекстной подсказкой, возможностью вызова конструкторов запроса и форматной строки.

9360 руб.

17.05.2024    26529    90    48    

134

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

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

22200 руб.

06.10.2023    16825    41    15    

75

SALE! %

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

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

4800 3840 руб.

14.01.2013    190550    1150    0    

918

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

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

15000 руб.

10.11.2023    11392    40    27    

66

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

Разработка Конструктор автоматизированных рабочих мест "Конструктор АРМ" реализована в виде расширения и является универсальным инструментом для создания АРМ любой сложности в пользовательском режиме.

3600 руб.

27.12.2024    775    2    0    

4

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

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

5000 руб.

07.02.2018    103926    244    100    

306
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1565 07.09.16 11:45 Сейчас в теме
Интересно.
Расскажи про скорость работы.
2. r0610201 316 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 316 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 316 16.09.19 12:26 Сейчас в теме
(3) Переработал интерфейс, теперь можно анализировать хоть все ресурсные файлы сразу.
frkbvfnjh; BigB; SlavaKron; +3 Ответить
10. qad 8 16.03.20 15:32 Сейчас в теме
Подскажите, как Вы смогли получить список файлов хранящихся в файле ресурса?
11. r0610201 316 17.03.20 08:42 Сейчас в теме
(10)
Не очень понял вопрос. И имена ресурсов, их значения - все хранится в ресурсных файлах. Как конкретно анализируются ресурсные файлы - можно посмотреть код, он открыт.
12. qad 8 18.03.20 18:15 Сейчас в теме
Это был вопрос к SlavaKron, т.к на скрине у него другая обработка или та же, но интерфейс другой?
6. VKislitsin 1021 05.11.19 11:38 Сейчас в теме
Отличная штука! Спасибо!
Отдельно хочу заметить, что распаковка в данной обработке происходит не методом КопироватьФайл("v8res://...."), как в большинстве подобных разработок, а непосредственным чтением двоичных данных. Как результат, удается распаковать ресурсы, которые другими способами открыть не получается.
7. kuzyara 2106 06.03.20 07:23 Сейчас в теме
Спасибо! Все ресурсы облазил)
8. frkbvfnjh 808 06.03.20 15:35 Сейчас в теме
9. andruha44 06.03.20 17:35 Сейчас в теме
Очень интересно! Спасибо!
13. Pervuy 65 23.12.20 17:28 Сейчас в теме
Добрый день. Не очень понял зачем эта обработка и какой несет практический смысл...
Это не критика автора это моя не образованность в этом вопросе.
Подскажите в чем суть этого всего и что такое Ресурсы 1с?
14. r0610201 316 25.12.20 12:21 Сейчас в теме
(13) Мне когда-то давно все это понадобилось ради картинок. В ресурсах можно найти любую картинку, которую видно в конфигураторе или предприятии. Далеко не все из них вынесены в библиотеку картинок. Но затем стали интересны и другие вещи: например, встроенные обработки (Все функции, Журнал регистрации, Активные пользователи и другие *.epf), встроенные общие формы - разнообразные диалоги (*.lf). Плюс я получил опыт в чтении двоичных данных средствами 1С. Как-то так.
15. Pervuy 65 29.12.20 13:31 Сейчас в теме
(14)Спасибо за ответ. Теперь все стало понятно.
16. ump1975 18.08.21 15:56 Сейчас в теме
Классная обработка!
Как уже говорилось выше недооцененная вещь. Получил большое удовольствие в разборе кода и адаптации функционала под свои нужды. Если не секрет, откуда знания структуры файлов ресурсов 1С? Искал в своё время информацию по этой теме в интернете, не нашел.
17. r0610201 316 25.08.21 13:36 Сейчас в теме
(16) Far, просмотр в виде двоичных данных и немного терпения :)
EugeneSemyonov; +1 Ответить
19. ZhokhovM 760 08.10.21 11:33 Сейчас в теме
18. Obertone 77 08.10.21 07:40 Сейчас в теме
Кстати, а эта обработка получает встроенные в предприятие редакторы файлов HTML и географических схем?
20. Dmitryiv 162 04.04.23 19:57 Сейчас в теме
Насколько проблематично собрать обратно .res файл?
21. r0610201 316 06.04.23 08:45 Сейчас в теме
(20)
Больше не занимался этим вопросом, думаю, res-файл собрать не очень большая проблема.
22. lostcay 10 27.11.23 15:20 Сейчас в теме
Я тут потыкался с этими файлами, платформе такой движ очень не нравится.
Интересное замечание - кажется сами dll, связанные с ресурсным файлом берут от туда данные по индексу, а не читают и преобразуют каждый раз в какой-нибудь свой формат. С одной стороны это конечно вопрос оптимизации. Например если у тебя есть json который точно не изменяется, конечно возьми значение по индексу символа или номеру строки и не читай и десериализуй каждый раз, а с другой стороны, почему бы не компилировать эти библиотеки сразу с данными ресурсов.
Еще один момент, похоже платформа где-то хеширует ресурсные файлы и крашится если они были изменены, дело в том, что, даже с учетом первого замечания, редактируя двоичные данные ресурсного файла, платформа иногда крашится, то есть я просто некоторые байты зануляю и именно на этом моменте обрубается результат запроса. Хотя заменив в html`e цифры другими цифрами все работает)

И черт его знает как их можно безболезненно редактировать. Иногда нужно чистить кэш перед изменением, иногда без этого встает. Думаю взять отпуск и доломать все это дело)
Если есть какие идеи на примете, накидывайте
SlavaKron; BigB; +2 Ответить
23. bgxz 30.08.24 18:33 Сейчас в теме
(21) день добрый! Вы можете вкратце обрисовать алгоритм сборки всего, чтобы было внутри, обратно в res-файл?
Оставьте свое сообщение