Просмотр ресурсов 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С.

15500 руб.

02.09.2020    175459    976    403    

933

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

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

8400 руб.

20.08.2024    17010    119    59    

120

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

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

22200 руб.

06.10.2023    18185    49    19    

81

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

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

9360 руб.

17.05.2024    28314    98    48    

143

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

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

15000 руб.

10.11.2023    12440    49    33    

70

Инструментарий разработчика Программист 8.3.14 Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

20000 руб.

07.10.2021    18411    7    32    

43

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

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

3600 руб.

27.12.2024    1507    2    0    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1566 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 1023 05.11.19 11:38 Сейчас в теме
Отличная штука! Спасибо!
Отдельно хочу заметить, что распаковка в данной обработке происходит не методом КопироватьФайл("v8res://...."), как в большинстве подобных разработок, а непосредственным чтением двоичных данных. Как результат, удается распаковать ресурсы, которые другими способами открыть не получается.
7. kuzyara 2117 06.03.20 07:23 Сейчас в теме
Спасибо! Все ресурсы облазил)
8. frkbvfnjh 810 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 763 08.10.21 11:33 Сейчас в теме
18. Obertone 78 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-файл?
24. bgxz 11.02.25 20:31 Сейчас в теме
(21) ,Дмитрий, Вы можете дать какой-то ответ насчет сборки файла? Насколько это проблематично? Как это сделать? Возможно ли у вас заказать доработку? Очень интересует данный вопрос.
Оставьте свое сообщение