Федотов Виталий | Ведущий специалист | ГК Невада

«Повышение эффективности работы отдела разработки»

Основные слагаемые успеха: - Архитектура - Грамотный код - Ориентация на повторное использование кода - Управление ошибками Методы: - Обучение линейного и руководящего состава - Внимание на архитектуру - Итерационный подход к разработке API - Профилирование Результат: Повышение производительности труда отдела разработки в 2-3 раза. Особенность доклада заключается в изложении личного опыта построения работы отдела, где описанные методы были с успехом применены и повысили производительность труда отдела разработки.

V8Unpack 2.0

Программирование - Инструментарий

От имени и по поручению автора программы  выкладываю новую версию V8Unpack.exe с исходниками.

Версия 2.0 переписана "с нуля" и дополнена новой парой ключей PARSE-BUILD

Внимание, изменились значения ключей, так что сначала нужно запустить программу без ключей.
В частности, 'P' - теперь parse, а не pack

Так что, любители и уметели чтения кода, могут теперь оценить насколько новая версия стала концептуально чище ;-)
А юзатели, могут разбирать конфу в файловую систему одним ключом PARSE (он представляет собой UNPACK+UNDEFLATE в одном флаконе)

Вроде всё ... Всем удачи.

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

Наименование Файл Версия Размер
V8Unpack20
.1207111136 144,42Kb
25.09.09
6187
.1207111136 144,42Kb 6187 Скачать бесплатно

См. также

Комментарии
Сортировка: Древо
1. MMF 673 02.04.08 15:39 Сейчас в теме
странная идея хранения .header перекочевала и в эту версию. Header это всего-навсего
{ описание заголовка файла }
TFileHeader = class
private
FCreated: TDateTime;
{ время создания файла }
FModified: TDateTime;
{ время последнего изменения файла }
FAttributes: TFileAttrSet;
{ атрибуты файла }
FName: string;
{ имя файла }
public
при этом
{ аттрибуты файла }
TFileAttributes = (faNormal, faReadOnly, faDir, faHidden, faSystem);
TFileAttrSet = set of TFileAttributes;
8 байт - дата создания, 8 байт - модификации, 4 байта аттрибуты, имя файла в юникоде.
Зачем плодить файлы? если вам интересны эти поля - устанавливайте их на соответствующих файлах данных. Хотя лично я бы выкинул бы их нафиг. У вас и так еле ползает эта утилита, а вы еще эту бодягу разводите.
4. tormozit 4742 02.04.08 21:51 Сейчас в теме
(1) А че, можно быстрее все сделать? (чтобы как в конфигураторе летало)
5. disa_da 05.04.08 18:49 Сейчас в теме
(4) Распаковака в памяти делается быстро. Все остальное время занимает запись на диск. Поэтому чем быстрее диск, тем быстрее будет работать.
6. MMF 673 06.04.08 13:46 Сейчас в теме
(4) распаковка УТ (аналог вашего Parse, т.е. с разбором всех base64, с 1С-именами файлов и т.п. преобразованиями) - 32 сек, сборка - 27 сек
2. disa_da 02.04.08 17:45 Сейчас в теме
Файлы .header используются при unpack/pack - тут я ничего не менял.
А в режиме parse/build создаются только файлы с данными.
3. disa_da 02.04.08 17:49 Сейчас в теме
А за информацию по атрибутам огромное спасибо. Но вот мне ни разу не попадались файлы, в которых бы эти атрибуты были заполнены. Было бы интересно на такие файлы посмотреть.
7. brix8x 481 06.04.08 18:10 Сейчас в теме
я рад за "распаковку УТ" ;-) только из комментария непонятно: распаковка УТ это или название программы или распаковка Управления торговлей, а "аналог вашего Parse" - это дистанцирование от "жуткого V8Unpack" или ссылка на некую волшебную программу? ;-)
в общем не понял ... сорри ...
8. MMF 673 06.04.08 22:09 Сейчас в теме
(7) УТ - конфигурация Управления торговлей (т.е. файл *.CF), аналог вашего Parse - подразумевалось, что результат распаковки на диск - в преобразованном из внутреннего формата виде (http://slil.ru/25659603) А приведение мною замеров времени - не только членомерение, но и подтверждение того, что есть еще резервы для ускорения и не только в "записи на диск" дело.
9. disa_da 07.04.08 00:14 Сейчас в теме
(8) Мда. Круто. Прям таки завидую, белой завистью естественно. Но теперь мы знаем к чему стремиться - это уже хорошо =)
10. disa_da 07.04.08 00:18 Сейчас в теме
(8) Проверил сейчас на УТ (старенькой правда) - 52 секунды. Но это без преобразования в осмысленные имена.
И все таки запись на диск составляет процентов 90. Видимо есть способы писать быстрее, осталось их узнать.
12. MMF 673 07.04.08 10:12 Сейчас в теме
(10) используй профайлер, а не умозрительные 90%. Однозначно DWORD CV8File::_httoi(char *value) надо переписать (учитывая кол-во вызовов).
Жестоко выглядит:
pFileData = new BYTE[FileDataSize];
****
FILE *file_in = fopen(filename_in, "rb");
учитывая размеры cf с образами распределенки и/или конфы поставщика.
14. disa_da 08.04.08 10:00 Сейчас в теме
(12) Пока что приоритетнее все-таки преобразовывать в имена 1С, а потом и наращивание производительности можно занятся. Профайлером под VC6 никогда не пользовался, может посоветуешь что-нибудь? Или в VS2005 что-нибудь есть?
15. MMF 673 08.04.08 10:36 Сейчас в теме
(14) AQTime, тока он денег стоит, ежели белый
11. tormozit 4742 07.04.08 08:34 Сейчас в теме
Может кэширование записи на диск?
13. MMF 673 07.04.08 10:14 Сейчас в теме
(12+) потерялось ret = fread(pFileData, 1, FileDataSize, file_in);
16. Ghost mail 09.04.08 09:26 Сейчас в теме
MMF, так может присоединишься к коллективу disa_da, brix8x и иже с ними. И совместными усилиями сделаете "красивую" утилиту ???
17. MMF 673 09.04.08 10:20 Сейчас в теме
(16) у меня детки дома по лавке скачут голодные, мал мал меньше, ждут, когда я краюху хлеба принесу. Альтруизм в больших количествах мне не доступен.
18. kitt 321 27.05.08 05:36 Сейчас в теме
Не глядя плюс за исходники, дома гляну. Автор спасибо!!
19. tojocky 51 26.06.08 12:00 Сейчас в теме
Автор спасибо! уверен что будут новые идеи!
20. tojocky 51 26.06.08 12:03 Сейчас в теме
MMF Но жмуриться не надо! у всех есть проблемы... а если будем по одиночестве работать то ничего не добьемся!
21. tojocky 51 26.06.08 12:27 Сейчас в теме
еще такой вопрос! как можно открыть файл .1CD или .dt файл?
22. tojocky 51 29.06.08 18:54 Сейчас в теме
К стати... есть бинарный вариант для распаковки hbk файл! кому нужно оброщайтесь!
23. BorovikSV 14.07.08 13:14 Сейчас в теме
24. tojocky 51 15.12.08 17:32 Сейчас в теме
25. vladnet 251 16.01.09 14:40 Сейчас в теме
Насколько понял не распаковывает обработки с паролями на модуле, даже если этот пароль известен?
26. harmit 14 20.03.09 14:11 Сейчас в теме
Данная распаковщик допускает ошибки в командах "Исключение" и "КонецЕсли";

Исправил кто?
27. Zergos 01.04.09 03:12 Сейчас в теме
Вот уж мега-спасибо!
С помощью тулзы успешно провёл даунгрейд внешней обработки с 8.1 до 8.0. .)
Конечно, пришлось немного поковыряться ручками... но, в целом, сэкономил массу времени.
---
One Ass
28. artbear 929 17.04.09 13:29 Сейчас в теме
(0) Разборку файлов не удалось довести до "человеческих" имен папок?
29. disa_da 17.04.09 20:59 Сейчас в теме
(28) Все дело в том, что у меня нет реальных задач, где бы такая функциональность понадобилась. Все с чем мне приходится сталкиваться - решается через тот функционал, который есть. А просто сделать ради сделать неинтересно!

Напишите на чем угодно преобразование в осмысленные имена (например на том же 1С) и я добавлю это в V8Unpack. Ничего сложного там нет, правда MMF ругался что некоторые данные хранятся замудренно, но я думаю и это можно решить. Но сразу предупреждаю - перебирать все GUID'ы и где и как хранятся данные каждого вида метаданных занятие ну очень нудное.

Вот если иметь реальную задачу, группой, да еще бы платил кто-нибудь за это - дело сразу пойдет =). Или кризис дойдет до такого момента, что работы совсем не будет, тогда можно и распаковку будет продолжать =)

А так могу только идейно помочь. Например для затравки дать элементарную обработку, которая строит дерево метаданных до документа/справочника/константы по распакованным данным.
30. artbear 929 20.04.09 13:15 Сейчас в теме
(29) Давай обработку, вдруг руки дойдут или время найду :)
31. disa_da 20.04.09 19:59 Сейчас в теме
32. disa_da 20.04.09 19:59 Сейчас в теме
38. darj 03.09.10 12:06 Сейчас в теме
(32) по ссылке файлик удален :(
39. bambr1975 796 03.09.10 14:09 Сейчас в теме
(38) рискну предложить посмотреть публикацию http://infostart.ru/public/69976 - честно говоря, смысл обработки выложенной в (32) был заимствован там целиком.
33. Evg-Lylyk 2038 24.04.09 15:40 Сейчас в теме
(0) Супер вещь. Что то не нашел в описании что означает PARSELEVEL={0|1|2}
На счет профилировщика VC6 он примитивен до нельзя... работает только в DEBUG запускаешь его через меню далее все как в 1С8 список точек их время и количество запусках (пишет в окне сообщений). А еще он есть только в Prof версии.
34. MSensey 55 12.08.09 14:42 Сейчас в теме
35. acsent 1065 14.08.09 12:08 Сейчас в теме
36. tormozit 4742 02.11.09 15:24 Сейчас в теме
Кто нибудь нашел способ добавить новую форму во внешнюю обработку?
37. tormozit 4742 15.04.10 09:40 Сейчас в теме
(36) Я таки нашел, но гемор это БОЛЬШОЙ. Хочется API уже наконец заиметь.
40. tormozit 4742 20.10.10 14:24 Сейчас в теме
41. mozz 144 21.04.11 10:42 Сейчас в теме
Конвертнул исходники в VS 2010 может кому пригодятся... Архив с исходниками во вложении.
Прикрепленные файлы:
src.zip
адуырщдв; German; +2 Ответить
46. lustin 13.10.11 15:51 Сейчас в теме
(41) архив исходников VS2010 скачивается битым с Инфостарта
49. mozz 144 10.11.11 17:53 Сейчас в теме
(46) Проверил вроде не битый... Может временный баг был?
50. lustin 10.11.11 21:41 Сейчас в теме
(49) сейчас отлично - видимо был глюк Битрикса
42. KVS 15.09.11 16:04 Сейчас в теме
Как собрать обратно уже с открытым кодом?
43. Famza 80 15.09.11 16:29 Сейчас в теме
44. Sergey_Murzinov 02.10.11 03:54 Сейчас в теме
Безоной разработки по жизни ни как, точно.
45. pmtvv 09.10.11 15:00 Сейчас в теме
48. Софтэксперт 02.11.11 16:28 Сейчас в теме
Весьма полезная вещь для анализа внутренней структуры
51. bissov 31 12.12.11 10:40 Сейчас в теме
Не могу запустить утилиту, может есть мануал какой на эту тему.
52. Elisy 912 06.01.12 13:53 Сейчас в теме
Предлагаю ознакомиться с аналогичной разработкой, написанной на C# и .Net Framework. Была идея организовать контроль версия для конфигураций 1С:
http://infostart.ru/public/103834/files/
53. simnn 25.01.12 20:38 Сейчас в теме
а документацию к программе где посмотреть?
54. serezhka87 63 31.01.12 15:56 Сейчас в теме
Скачал. Будем смотреть что это за зверь. =)
55. zarius 159 02.07.12 13:37 Сейчас в теме
Кто нибуть пробовал EPF запаковывать? При UnpackAll.bat - распаковываются нормально, PackAll.bat - результата не дает...
Я так понимаю что в результате распаковки должен создаться каталог с файлами (это есть) и в нем в том числе должны быть файлы с расширением .unp (этого нет). Фактически в каталоге только файлы:
FileHeader
куча *.header
куча *.data

Пробовал обработки и 8.1 и 8.2. В какую сторону смотреть?

Вообще, реально добавить с помощью данной разработки произвольный макет в существующую обработку?
56. EmpireSer 09.08.12 00:11 Сейчас в теме
Супер! Особая благодарность за открытый код! Спасибо!
Я именно такое и искал!

Вот только жалко, что последняя запись в SVN числится 2008 годом.
58. Kamikadze 44 23.10.12 22:12 Сейчас в теме
как запустить инструмент?
59. babys 82 06.12.12 11:56 Сейчас в теме
Обращаюсь к разместившему здесь от имени автора, пора автору опять учить 1С :)
В 17 релизе не работает.
60. Elisy 912 11.12.12 08:26 Сейчас в теме
(59) babys,
Попробуйте на 17 релизе C#-аналог, может будет работать
http://infostart.ru/public/103834/
61. zavsom 49 26.02.13 14:51 Сейчас в теме
А можно разжувать что запускать то? Мне нужно например увидеть в рарс альфа 5.0 текст в закрытых модулях общего модуля - скачал, запускаю приложение - что то моргает на экране и тишина... ЧЯДНТ ? подскажите что нужно по шагам чтобы это запускалось.
62. leonet 06.05.14 09:53 Сейчас в теме
v8unpack Версия 3.0

Оптимизировал сборку .cf(.epf|.erf) файла. На больших конфигурациях вылетала "Segmentation fault".
Исходники и собранные бинарники здесь.

Проект для codelite IDE. Workspace создаем в корне (иначе грабли при сборке по F5) далее добавляем проект v8unpack.project.

Всем удачи!

dj_serega; serge_focus; MrWonder; DigitalMan; Biligor; zergnm; AlexanderKai; YPermitin; andrewks; lustin; mozz; tormozit; buganov; RomanRomans; awa; bambr1975; pumbaE; +17 Ответить
63. Sabfir 20.08.14 12:50 Сейчас в теме
С помощью этого инструмента можно ли заменить тип реквизита обработки и тип элементов на форме.
Было бы здорово иметь такую возможность, или подскажите как самому это доделать.
Заранее благодарен.
64. Manticor 63 13.10.14 13:04 Сейчас в теме
Под Windows 8 не запускается V8Unpack.exe. Может кто то сталкивался - библиотеки какой не хватает?
osin_d79@mail.ru; +1 Ответить
65. SeiOkami 643 08.11.14 15:14 Сейчас в теме
(64) Manticor, попобуй запускать от имени админа
66. SeiOkami 643 08.11.14 15:16 Сейчас в теме
Можно ли этим приложением извлечь из базы необходимые модули (не из конфигурации, а именно из базы)?
67. Mi4man 149 08.02.15 19:51 Сейчас в теме
Подскажите плиз, где инструкции, описание и т.п. ???
68. Gotcha 5 23.06.15 18:47 Сейчас в теме
При попытке распаковать файл конфигурации БП 2.0.64.27, происходит unpacktofolder error in creating file!, ближе к концу файла.
Успевает распаковаться 13107 файлов. А жаль, я уж размечтался привинтить свой любимый Tortoise SVN+Merge
69. smilohov 5 20.01.16 18:10 Сейчас в теме
Кто может быстро помочь починить базу после сетевого сбоя? Прошу откликнуться.

email: smilohov@mail.ru
skype: smilohov
70. amiralnar 8 30.01.16 10:12 Сейчас в теме
Спасибо огромное за программу!! Она спасла меня!

Мне нужно было найти старый релиз 2.1.10.2, а у меня была конфигурация с релизом 2.1.7.1, и все обновления, которые не хотели ставиться ни при каких условиях.
Конфигуратор говорил, что обновление не подходит под этот релиз, а предназначено для другого релиза, и писал номер моего, который я пытался обновить.
Все ссылки на всех обменниках давно протухли, половина обменников позакрывалась, и взять следующий файл поставки было негде!

Но с этой программой мне удалось выполнить восстановление поставки, распаковав мою конфигурацию, и файл обновления этой конфигурации в одну папку, а потом собрав из этой папки конфигурацию обратно! И все начало нормально обновляться!
71. sss999 36 12.01.17 13:03 Сейчас в теме
получится файл dt ею распарсить на файлы?
72. zekrus 153 05.08.17 10:06 Сейчас в теме
73. МихаилМ 05.08.17 11:25 Сейчас в теме
это вопрос к 1с , а не к распаковщику . распаковщик распаковывает так, чтобы можно было обратно запаковать.
74. zekrus 153 05.08.17 19:40 Сейчас в теме
Смысл теряется в распаковке. Цена вопроса 2 строки кода.
Оставьте свое сообщение