На просторах Infostart уже есть обработка публикация с обработкой CFU-reader авторства Андрей Д. (bambr1975). За что ему огромное спасибо. Поскольку многое из его обработки было использовано мною. Честно сказать, я бы вряд ли осилил изучать все тонкости внутреннего устройства файлов .cfu, если бы не нашел на что опереться. Отчасти поэтому, мною было решено не уделять внимание проверке на обновлениях для 1С 8.2 и ниже, поскольку считаю что можно использовать обработку из указанной выше статьи. Поэтому внимание: обработка тестировалась в основном на обновлениях выпущенных для платформы 8.3 (но подходит и для более ранних версий).
Для чего эта обработка.
Я попробую рассказать зачем она была написана лично для меня. У нас в фирме мы тихонечко (но уже давно) пилим себе систему автоматизации нашей работы. Сначала это была система учета задач, потом она стала системой управления процессами. Сейчас в ее задачи было решено добавить автоматизированные операции связанные со сборкой и установкой обновлений. В тестовые, рабочие и другие конфигурации.
Но поскольку установка обновлений может быть проблемой, когда пропущено несколько релизов, необходимо было узнать, а какие поддерживаемые релизы входят в обновление. Спрашивать у пользователей, надеяться что программисты при сборке укажут все верно (да и зачем делать повторную работу)? Вот и было решено узнавать это напрямую у файла .cfu. А раз уж пошла такая пьянка, то почему бы и не сделать больше?
Для наших собственных разработок, мы учитываем измененные объекты. Сборкой релиза при этом могут заниматься разные специалисты (даже на одном проекте). И было бы неплохо проверить, что собранный релиз "бьется" с измененными объектами по задачам отмеченным как "выполненные". Поэтому полный разбор файла не помешал бы.
Отличия от оригинала
Обработка CFU-reader (назовем ее "версия 1.0"), увы, написана на обычных формах, не обновлялась с 2011 года, к тому же не поддерживает последние версии платформы. А также не поддерживает расширения. И на обновлениях собранных на 8.3 валится с ошибкой с разной степенью вероятности. Поэтому было решено реализовать поддержку УФ и файлов обновлений 8.3 (с учетом новых объектов). В итоге и появилась эта обработка.
И так, все отличия (надеюсь ничего не забыл):
- реализована на управляемых формах
- поддерживает все объекты платформы 8.3.+
- имеет формы просмотра
- текстов модулей
- макетов (табличные и текстовые документы)
- справок
- графических карт
- схем бизнес-процессов
- картинок
- просмотр модулей с подсветкой кода (используется консоль кода)
- ВНИМАНИЕ: не имеет режима сравнения с текущим .cf
Известные недостатки:
- Иногда не сразу распаковывает файлы обновлений, помогает повторная попытка;
- Не показывает предопределенные элементы;
- В некоторых случаях, не удается выделить текст модуля формы отдельно. В таком случае модуль формы может оставаться пустым. Происходит очень редко.
В обработке используются некоторые процедуры из общих модулей БСП. В частности: ОбщегоНазначенияКлиентСервер, СтроковыеФункцииКлиентСервер. Как говорится "batteries not included", поэтому рекомендую открывать в конфигурациях, основанных на БСП.
Файлы CFU проверенные на обработке
- ЗУП 3.1.10.50 76Мб - положительно
- УПП 1.3.122.3 8.5Мб - положительно
- УПП 1.2.39.1 7.7Мб - положительно
- Документооборот КОРП 2.1.13.28 77.7Мб - положительно
- БухгалтерияПредприятияКОРП 3.0.71.63 58.3Мб - положительно
- БухгалтерияПредприятияКОРП 2.6.66.82 11Мб - положительно
- УТ 11.4.7.141 314 Мб - положительно
А также собственные сборки и просто тестовые экземпляры созданные на пустых конфигурациях.
Платформа при тестировании: 8.3.20.1838
Минимальная версия платформы: 8.3.18
История версий
Последнюю версию всегда можно скачать в моем репозитории, более того, некоторые незначительные багофиксы там выкладываются оперативнее.
Версия 3.1 от 25.12.2022
* добавлена возможность чтения файлов расширений (*.cfe)
* переход на использование методов Асинх
* переход на версию v8unpack 3.0.43
* просмотр модулей при помощи консоли кода (Monaco editor)
Версия 2.6 от 24.06.2019
* исправлена ошибка разбора данных формы (и отображения модуля)
* исправлена ошибка отображения справки
Версия 2.5 от 22.06.2019
* добавлено отображение измененных измерений, ресурсов и реквизитов для регистров
* добавлено отображение измененных реквизитов объектов метаданных
* добавлено отображение измененных табличных частей объектов метаданных
* добавлено отображение измененных значений перечислений
* добавлена возможность просмотра макета СКД (в виде XML)
* добавлена возможность просмотра макета Табличный документ
* добавлена возможность просмотра карты маршрута для бизнес-процесса
* исправлены выявленные ошибки
Версия 2.4 от 21.06.2019
* доработан механизм разбора информации о текущем и поддерживаемых релизах
* доработан механизм выделения текста модуля формы
* добавлена возможность просмотра картинки
* исправлены выявленные ошибки
Версия 2.1 от 20.06.2019
* первая версия обработки
Заключение
На этом собственно все. Спасибо за внимание.
Все неточности и ошибки прошу писать в личное сообщение, будет исправлено.
UPD
Только будьте внимательны, при распаковке в каталоге %temp% создается временная папка с данными из файла обновления. А это как правило в 4 раза больший объем, чем сам .cfu. Т.е. проверяйте наличие свободного места. Ну и SSD конечно был бы крайне желателен.