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

30.01.17

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

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

Файлы

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

Наименование Скачано Купить файл
(только для физ. лиц)
Анализ ресурсов 1С
.epf 18,66Kb
119 1 850 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

В последнее время на 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    206488    1133    411    

1030

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

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

8400 руб.

20.08.2024    37107    212    111    

199

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

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

16000 руб.

10.11.2023    16867    73    39    

89

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

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм.

22200 руб.

06.10.2023    24483    65    28    

93

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

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

9500 руб.

17.05.2024    35489    129    53    

171

SALE! 30%

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

Инструмент для генерации OpenApi (Swagger) спецификаций на основании файлов конфигураций 1С. Это консольное и десктопное приложение на языке Rust с полноценным редактором кода, содержащим автозамену и подсвечивание ошибок для быстрого и безошибочного написания документирующего комментария.

18000 12600 руб.

22.11.2024    2071    1    0    

8

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

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

6000 руб.

07.02.2018    107894    249    100    

313
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. artbear 1571 07.09.16 11:45 Сейчас в теме
Интересно.
Расскажи про скорость работы.
2. r0610201 323 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 323 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 323 16.09.19 12:26 Сейчас в теме
(3) Переработал интерфейс, теперь можно анализировать хоть все ресурсные файлы сразу.
frkbvfnjh; BigB; SlavaKron; +3 Ответить
10. qad 8 16.03.20 15:32 Сейчас в теме
Подскажите, как Вы смогли получить список файлов хранящихся в файле ресурса?
11. r0610201 323 17.03.20 08:42 Сейчас в теме
(10)
Не очень понял вопрос. И имена ресурсов, их значения - все хранится в ресурсных файлах. Как конкретно анализируются ресурсные файлы - можно посмотреть код, он открыт.
12. qad 8 18.03.20 18:15 Сейчас в теме
Это был вопрос к SlavaKron, т.к на скрине у него другая обработка или та же, но интерфейс другой?
6. VKislitsin 1037 05.11.19 11:38 Сейчас в теме
Отличная штука! Спасибо!
Отдельно хочу заметить, что распаковка в данной обработке происходит не методом КопироватьФайл("v8res://...."), как в большинстве подобных разработок, а непосредственным чтением двоичных данных. Как результат, удается распаковать ресурсы, которые другими способами открыть не получается.
7. kuzyara 2176 06.03.20 07:23 Сейчас в теме
Спасибо! Все ресурсы облазил)
8. frkbvfnjh 815 06.03.20 15:35 Сейчас в теме
9. andruha44 06.03.20 17:35 Сейчас в теме
Очень интересно! Спасибо!
13. Pervuy 65 23.12.20 17:28 Сейчас в теме
Добрый день. Не очень понял зачем эта обработка и какой несет практический смысл...
Это не критика автора это моя не образованность в этом вопросе.
Подскажите в чем суть этого всего и что такое Ресурсы 1с?
14. r0610201 323 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 323 25.08.21 13:36 Сейчас в теме
(16) Far, просмотр в виде двоичных данных и немного терпения :)
EugeneSemyonov; +1 Ответить
19. ZhokhovM 775 08.10.21 11:33 Сейчас в теме
18. Obertone 82 08.10.21 07:40 Сейчас в теме
Кстати, а эта обработка получает встроенные в предприятие редакторы файлов HTML и географических схем?
20. Dmitryiv 165 04.04.23 19:57 Сейчас в теме
Насколько проблематично собрать обратно .res файл?
21. r0610201 323 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) ,Дмитрий, Вы можете дать какой-то ответ насчет сборки файла? Насколько это проблематично? Как это сделать? Возможно ли у вас заказать доработку? Очень интересует данный вопрос.
25. bgxz 07.03.25 11:55 Сейчас в теме
26. bgxz 07.03.25 11:58 Сейчас в теме
(21) Дмитрий, я приобрел у Вас данную обработку, я не мимо тут проходил со своими вопросами. Поддержки с вашей стороны не предполагается вообще? Вы хоть на один вопрос мне ответите? Я до вас полгода пытаюсь достучаться.
Оставьте свое сообщение