gifts2017

V8Reader (с расширенным анализом форм) Upd.

Опубликовал Андрей Д. (bambr1975) в раздел Программирование - Инструментарий

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

Логическое продолжение публикаций http://infostart.ru/public/97194/ и http://infostart.ru/public/69976/
вызванное обсуждением в комментариях (в частности, этим комментарием), с попыткой объединить в себя параллельное направление разработки, обозначенное в публикациях:

Декомпиляция и анализ форм с генерацией кода формы от MRAK

Сравнение объектов и форм метаданных (очередная декомпиляция и анализ форм) от alexer

Деструктивный анализ формы от asady

Декомпилятор форм от Sverkalov

И, наконец, их обобщенным и логичноструктурированным продолжением -

Декомпиляция элементов формы для 8.2 для обычных форм (не управляемых) от Istur - всем рекомендую (только ошибки исправить надо - письмо о них было написано - никакой реакции)

Для более тщательного анализа форм был использован материал, предложенный brix8x в этом комментарии, а также развитие этой идеи, предложенное tormozit в публикации http://infostart.ru/public/57431/

Для придания "рюшечек" использовалась идея, предложенная Шепотом теней в публикации http://infostart.ru/public/59581/

Ну, и, как обычно... использовалась программа V8Unpack от disa_da

Update от 15.02.2012:

Добавлена возможность анализа и сравнения внешних отчетов.

Измененные файлы выводятся в дерево сравнения окрашенными строками в зависимости от изменения размера сравниваемых файлов.

Учтены изменения в количестве видов метаданных, появившихся в конфигурации с версии платформы 8.2.14

Update от 04.03.2012:

Исправлена ошибка в алгоритме сравнения измененных файлов (касается изменений модулей форм)

Доработано сравнение элементов формы - изменения учитываются поэлементно - можно просмотреть значения изменений в свойствах.

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

Фильтр сравнения работает!!!

Update от 10.03.2012:

По просьбе pumbaE добавлен режим 3-way diff. Работает, вызывая внешнюю программу сравнения файлов, поддерживающую 3-х уровневое сравнение (из бесплатных - KDiff3 и SourceGear DiffMerge). Для корректной работы с кирилицей в именах файлов качайте последние версии.
На данный момент - сравнение только текстовое - причем для форм раскраской строк анализируются как изменения в модулях, так и изменения в диалогах - а на сравнение выводятся только файлы модулей. Обращайте внимание.

Update от 27.04.2012:

Исправлены ошибки

Специально для сравнения форм в проекте "Снегопат" - snegopat.ru по инициативе pumbaE добавлен новый режим выбора объекта "Режим ssf" - можно сравнить файлы форм снегопата.

В навигаторе файлов появилась колонка "Размер", с возможностью сортировки по ней (для определения наиболее "массивных" составляющих конфигурации).

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

Панель "Свойства" отделена от формы разбора форм - вызывается двойным щелчком по дереву элементов формы
В панели "Свойства" выводятся и свойства, и привязки, и обработчики событий элемента, причем в режиме сравнения - щелчок по строке различающихся действий выводит окно сравнения текстов-обработчиков.

На вкладке "Модуль" формы "Разбор элементов формы" - появилось табличное поле структурных различий процедур и функций модуля. Аналогично - двойным щелчком выводится окно сравнения их текстов.

Новая функция - "Декомпиляция изменений" - тестовый вариант.

Значительно увеличилась скорость разбора форм!!!!!

Кстати - для желающих сравнить и декомпилировать изменения двух произвольно выбранных форм можно воспользоваться режимом ssf, указав в качестве каталогов распаковки каталоги распакованных форм...Smile

Update от 29.06.2012:

Добавлена новая функциональность - анализ и сравнение ролей и ограничений доступа

За основу формата вывода взята обработка Отчет по системе прав для 8.2 на СКД от  Zigfridish

В качестве быстрых отборов при сравнении ролей можно отбирать объекты с измененными правами, объекты с измененными ограничениями доступа. Также обработка позволяет сравнивать изменения в шаблонах ролей и в ограничениях доступа.

Update от 19.08.2012:

Исправлены ошибки. Учтены некоторые пожелания пользователей.

В частности, при перемещении по дереву метаданных при открытом навигаторе файлов по умолчанию происходит позиционирование на файл выделенной строки. Также для возможности использовать режим ssf для анализа выгруженных платформой 8.3 бинарных файлов форм в процедуру выбора файла формы добавлен фильтр .form.

Update от 01.11.2012:

Исправлены ошибки.

Существенно доработан отчет «Декомпиляции изменений». Теперь он представляет собой готовую совокупность процедур, необходимых для программного формирования нужных изменений формы. Основой этого отчета является процедура МодифицироватьФормуПриОткрытии(). В качестве дополнения к основной, для сокращения выводимых строк и лучшей читаемости кода используется процедура "УстановитьПоложениеЭлемента(Элемент,Верх,Высота,Лево,Ширина)" (из обработки от Istur) – тоже будет выведена в отчет. Также в случае добавления на форму элементов типа «Переключатель» в отчет будет добавлена дополнительная процедура ИзменитьПорядокОбхода() – позволяет назначить для добавляемого переключателя корректный номер порядка обхода.

Теперь для программной модификации нужной формы в ее обработчик открытия нужно будет добавить процедуру МодифицироватьФормуПриОткрытии(). А саму эту процедуру (вместе с дополнительными процедурами, выведенными в отчете «Декомпиляция изменений») разместить в модуле с кодом вывода элементов формы или поместить в общем модуле.

Расширены возможности по корректной обработке свойства «Данные» элементов формы в отчете «Декомпиляция изменений».

Реализовано сравнение произвольно выбранных объектов (в контекстном меню дерева метаданных пункт «Добавить к сравнению»).

Обработка работает теперь только в режиме полного структурного разбора (то, что раньше называлось режимом разбора «Hard»). Оптимизирована работа этого режима. Режим «Light» больше не используется.

Структурное сравнение модулей – используется для сравнения всех модулей (включается в настройках).

В сравнении дерева метаданных теперь дополнительно анализируется изменение внутреннего представления структурных составляющих объектов – можно узнать изменения конкретного реквизита в объекте (пока что только во внутреннем представлении).

Добавлена настройка «Проверять обновления публикации». Использованы рекомендации Жолтокнижниг из этого комментария.

В отчете по ролям добавлено программное генерирование кнопок для управления уровнями группировки из публикации http://infostart.ru/public/83915/ от mtv:)

Update от 21.11.2012:

Исправлена критичная ошибка произвольного сравнения ролей.

Update от 13.02.2013:

Исправлены ошибки.

Две новых фунциональности.

Первая функциональность - расширенный анализ управляемых форм. В панель свойств выводится список свойств элемента управляемой формы. Свойства анализируются во внутреннем представлении

Вторая функциональность - возможность вывода отчета по роли в режиме "дополнения" - в отчет выводятся не только заданные в файле роли права, но и права по умолчанию. (возможность пока тестовая)

Update от 25.01.2015

Долгожданное обновление)))))

Исправлены ошибки. Реализованы пожелания. Добавлена возможность корректной обработки объектов платформы 8.3.

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

Логика построения дерева обычных форм отвязана от идеи деструктивного анализа – иерархия элементов строится на основе внутреннего представления.

На этом этапе большой вклад в развитие был сделан pumbaE. В частности, его силами в V8Reader была добавлена возможность разбора обработок в структуру папок с исходниками, имеющими человекопонятные имена. Эта автоматизация была реализована в рамках проекта precommit, представляющего собой скрипт, который запускает этот разбор при каждом коммите в систему контроля версий Git. Также в рамках проекта diff1C он реализовал скрипт, запускающий V8Reader для сравнения выгруженных с помощью стандартной выгрузки 8.3 обычных форм и табличных документов в формате xml. Попробуйте, это очень удобно!

Еще хочется поблагодарить уважаемого awa за его бесценные исследования и artbear за тестирование функционала и конструктивные предложения.

Update от 29.01.2015

В макет V8Unpack помещена новая версия, собранная Сергеем Батановым aka baton_pk (ссылка на релиз https://build.batanov.me/job/v8unpack-win/label=mingw32/lastSuccessfulBuild/artifact/bin/Release/v8unpack.exe) Новая версия не требует дополнительных библиотек + прирост скорости распаковки по сравнению с версией V8Unpack2.0 порядка 20%.

Update от 18.02.2015

Исправлены ошибки. 

В таблице структурного сравнения модулей изменена сортировка по изменениям - неизмененные строки выводятся в самом низу.

Реализована совместимость регулярок реквизитов и табличных частей с внутренним представлением 8.3.6 (в первом приближении - возможно, позже потребуются правки). В управляемой форме в число допустимых видов поля формы добавлен новый вид - Поле планировщика.

Update от 10.06.2015

Доработана совместимость регулярок с внутренним представлением 8.3.6.

Реализован программный интерфейс для открытия сравнения файлов из стороннего кода 1С – в модуле обработки экспортная процедура ОткрытьСравнение(ПутьФайла1,ПутьФайла2). Этот интерфейс позволяет использовать весь функционал проекта v8diff – можно сравнивать обработки, отчеты, конфигурации, файлы mxl, файлы форм и сериализованные в XML табличные документы, выгруженные платформой 8.3. Для всего остального будет открываться произвольное текстовое сравнение.

Добавлена обработка ключа запуска convert-mxl2txt для скрипта precommit.
// Пример строки запуска для precommit - "decompile;pathtocf;E:\ПутьКФайлуКоторыйНадоРазобратьНаИсходники;pathout;E:\ПутьКПапкеИсходников;convert-mxl2txt;shutdown"
В случае запуска скрипта precommit с ключом convert-mxl2txt для файлов табличных документов дополнительно создаются текстовые аналоги с постфиксом *_mxl.txt.

Используется новая версия V8Unpack (by baton_pk) – исправлены ошибки распаковки файлов form, ssf и cfu. Главное преимущество новой версии – возможность распаковки конфигураций большого объема (например ERP2.0, которую V8Unpack2.0 не распаковывает) без ущерба для производительности.

Мелкие доработки эргономики вывода сравнения временных файлов.

Update от 22.07.2016

1) Исправлена ошибка разбора ролей, возникающая при обнаружении неизвестных идентификаторов стандартных реквизитов
2) Исправлен алгоритм построения дерева элементов обычной формы в случае, если у главной панели формы (ЭтаФорма.Панель) есть несколько страниц.
3) Гиперссылка, декомпилирующая обычную форму целиком, теперь формирует полноценный текст декомпиляции (раньше по этой гиперссылке формировался файл в режиме «бутафории»)
4) Добавлена настройка использования внешней программы для сравнения модулей и их методов
5) В режиме анализа файла конфигурации, содержащего конфигурацию поставщика, появилась возможность по нажатию отдельной кнопки распаковать файл конфигурации поставщика и запустить сравнение с исходной конфигурацией
6) В рамках проекта precommit1c исправлены ошибки формирования соответствия распакованных файлов для их последующей сборки в полноценный 1С-файл силами скрипта precommit.
7) Также в рамках проекта precommit1c для распакованных файлов формируется отдельный файл maps.txt, позволяющий найти в исходниках управляемых форм номера строк, которые соответствуют началу и концу модуля управляемой формы
8) Кроме этого, в рамках проекта precommit1c при распаковке макетов теперь для каждого из них создаются файлы с соответствующим расширением:

  • Компоновка – xml,
  • Табличный документ – mxl,
  • Текстовый документ – txt,
  • Макет оформления компоновки данных – xml,
  • Графическая схема – grs,
  • Географическая схема – geo,
  • ActiveDocument – bin,
  • ДвоичныеДанные – bin (исключение составляют макеты с префиксом ПФ_, для которых создаются файлы с расширением, соответствующим второй части префикса – например, ПФ_DOC_* - будет создан файл с расширение doc и т.д) ,
  • HTMLДокумент – html (вложения html будут распакованы в папку ИмяМакета_files рядом с html – естественно, сам html при этом их видеть не будет, но главное, что вложения тоже распаковываются).

9) Ну и самая главная доработка в рамках проекта precommit1c – это добавление ко всем модулям отчетов и обработок расширения bsl, наличие которого позволит эффективнее осваивать 1С-разработчикам инфраструктуру веб-сервисов GitHub и проще применять инструменты, заточенные под формат исходных кодов 1С, будь-то анализаторы или подсветка синтаксиса.

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

Наименование Файл Версия Размер Кол. Скачив.
V8Reader.epf
.epf 933,79Kb
22.07.16
2129
.epf 1.13 933,79Kb 2129 Скачать

См. также

Подписаться Добавить вознаграждение

Комментарии

1. Taras Варварич (itar59) 27.01.12 18:19
Даже нет слов!
Мог бы и 10+ поставил
одна из полезнейших разработок!
2. Евгений Сосна (pumbaE) 27.01.12 18:56
При сравнение 2-х конфигураций:
{Форма.НавигаторПоФайлам.Форма(41)}: Поле объекта не обнаружено (ИндексКартинки)
	ОформлениеСтроки.Ячейки.Имя.ИндексКартинки=ДанныеСтроки.ИндексКартинки;


Извините, видно вспышка газа на Венере и в результате преломления лучей солнца, мне ударило в голову и я получил такую ошибку...

Если серьезно, еще несколько раз попробовал все работает четко.
3. Владимир Водин (BalVlad) 27.01.12 21:02
Очень нужная разработка, спасибо. От меня +
4. Михаил Ражиков (tango) 27.01.12 21:30
5. oleg grom (ThunderUA) 27.01.12 23:59
6. Владимир Клименко (KliMich) 28.01.12 02:41
7. Ирек Бикмухаметов (xbic) 28.01.12 08:14
8. WendyH (WendyH) 28.01.12 11:25
Вообще-то функциональности стандартной обработки сравнения и объединения конфигураций во многом хватает и даже где-то удобней и быстрей. Единственное прекрасное незаменимое - это сравнение печатных форм. За это спасибище!
9. Max Potapov (Max.Potapov) 28.01.12 11:34
Архиважная вещь, большое спасибо за полезную разработку.
10. Программулькин (Программулькин) 28.01.12 14:24
( 8 ) WendyH , +1 . Стандартный вполне функционален и удобен . А вот за сравнение форм - действительно плюс !
11. Евгений Сосна (pumbaE) 28.01.12 14:52
(8) Подскажите, а как получить сравнение печатных форм? Ну никак не получается. скрин
12. Семен Буханов (semenich_b) 28.01.12 15:10
13. Андрей Д. (bambr1975) 28.01.12 15:27
(11) pumbaE, спасибо Вам за скриншот - сразу стало видно, что с привязками имеет смысл еще поработать - а по поводу макетов печатных форм - просто по умолчанию работает режим:
Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;
При попытке показать различие в табличном документе, он вызывает исключение - а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали - отдышусь - и все исправлю.
14. Андрей Д. (bambr1975) 28.01.12 18:49
(11) pumbaE, привязки и обработку сравнения табличных документов исправил - смотри рисунок к сообщению и новый скриншот к публикации.
15. Илья Олегович Червяков (amiralnar) 28.01.12 19:15
Отличная работа! Но я так и не понял, в чем отличие от стандартной? Расскажите, пожалуйста, как вы ей пользуетесь? Какой сценарий работы применяете?
16. Андрей Д. (bambr1975) 28.01.12 19:35
(15) amiralnar, стандартный функционал ограничен сравнением конфигураций (и файлов конфигураций) и работает в режиме конфигуратора. Моя обработка работает в режиме предприятия и способна сравнивать и анализировать файлы конфигураций, а также - в отличие от стандартной - файлы обновлений и обработок. Сценарии работы каждый выбирает по мере своих потребностей - удобно анализировать приходящие обновления, есть возможность детально проанализировать изменения в формах (эта возможность отсутствует в стандартном функционале). Работает медленно - много анализируемой информации. Но я не предлагаю Вам запускать ее каждый день - только по мере необходимости. Для часто анализируемых файлов - в случае, когда изменения в них нужно смотреть "в несколько подходов" можно не запускать каждый раз распаковку - создать для них постоянный каталог на диске и при случае просто вызывать этот каталог для вывода информации из него - тогда получается быстрее. Ничего сложного и заумного там нет. Все прозрачно и понятно.
17. Илья Олегович Червяков (amiralnar) 28.01.12 19:56
(16) bambr1975, Спасибо за ответ!
Сравнение обновлений может быть полезно для принятия решения о перепрыгивании через версию.
Сравнение обработок доступно через стандартный диалог сравнения файлов: Меню "Файл - Сравнить файлы"
Поясните, пожалуйста еще один момент:
есть возможность детально проанализировать изменения в формах (эта возможность отсутствует в стандартном функционале)

На данный момент в стандартном функционале доступны следующие действия:
- открыть старую форму
- открыть новую форму
- вывести различия между формами в табличный документ (немного неудобно, но задачу поэлементного сравнения худо бедно решает)
Какая именно возможность отсутствует в стандартном функционале?
18. Андрей Д. (bambr1975) 28.01.12 20:14
Ну - считайте, что про сравнение обработок вы меня просветили (стыдно). Да и отчеты о сравнении в стандартном функционале, не спорю, побогаче. Но, Вы ведь понимаете, что все мы занимаемся одним общим делом - пытаемся разобраться... У каждого это происходит по-своему - кому-то нужно написать такую обработку для того, чтобы что-то расставить по своим местам. И, может, если это, все-таки, дает какие-то видимые результаты, оно к лучшему?
19. Илья Олегович Червяков (amiralnar) 28.01.12 20:21
(18) bambr1975, Как я уже отметил, вы проделали отличную работу, я нисколько не умаляю важность вашей обработки.
Мне было важно узнать, какое преимущество она имеет, как её можно использовать в работе, вот и все.
Спасибо!
МимохожийОднако; +1 Ответить
20. Доржи Хренов (Кадош) 29.01.12 03:00
21. Павел (Pavel777777) 29.01.12 09:58
Гениально) ... а нет ли возможности выводить размер файлов в колонке ... у меня, например, "раздулась" конфигурация КА мегов на 150 после всех обновлений, а как найти из-за чего, пока не нашёл возможности ... а так было бы наглядно видно, какие объекты конфигурации сколько места занимают....
Или же это уже есть в этой обработке?
22. Пимшин 1 (Pim) 29.01.12 11:17
Если то, что нарисовано на картинках правда, то ОГРОМНЫЙ респект и уважуха автору.
23. Андрей Д. (bambr1975) 29.01.12 11:21
(21) Pavel777777, в навигаторе файлов есть кнопки, перемещающие Вас в каталог распаковки - делаете в этом каталоге сортировку по размеру файлов и определяете, в чем у вас проблема. Наверное, так.
24. Павел (Pavel777777) 29.01.12 11:36
(23) Ясно, спасибо ... но тут есть два момента ))) во-первых - названия файлов не совсем понятные сходу), а во-вторых - многие объекты расположены в папках, поэтому размер сразу не показывается. В принципе, это, конечно, можно прикрутить и самому...
25. Владимир Каракозов (karakozov) 29.01.12 13:04
Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+
26. Владимир Самойлов (samamoiloff) 29.01.12 20:39
Здравствуйте. Огромное спасибо. Могу ли использовать в своих исследованиях-разработках? Со ссылкой на Вас, разумеется.
27. Андрей Д. (bambr1975) 29.01.12 20:40
28. г. Казань Рустем Гумеров (Rustig) 30.01.12 03:09
(0) можно ли с помощью вашего инструмента увидеть код в модулях, не включенных в поставку?
29. Андрей Д. (bambr1975) 30.01.12 07:11
30. dfg dgf (FLYYY1986) 30.01.12 10:00
Спасибо большое, очень меганужная штука!
31. г. Казань Рустем Гумеров (Rustig) 30.01.12 12:32
(29) Спасибо :)
есть своя разработка, код модуля не включен в поставку, поэтому вот спрашиваю - анализирую: достаточна ли защита? ...обфускацию кода делать не хочется (имхо, трудоемко)
32. Роман Ершов (MRAK) 30.01.12 13:28
33. Antonio Ant (antek) 30.01.12 13:33
Спасибо. Плюс за огромную проделанную работу, полезная вещь для кодеров и к сожалению бесполезная для юзеров 1с.
Как тока времени хватает писать такое для себя любимых
34. Yalo (yalo) 30.01.12 13:35
Обязательно скачаю, спасибо!
35. Валерий Агеев (awa) 30.01.12 15:16
К сожалению, на данный момент, обработка несовместима с подсистемой "Инструменты разработчика". В общем модуле ирГлобальный есть функция
Функция ЛксСтрокаВнутрВХМЛТело(вхСтрока, выхХМЛТело = Неопределено) Экспорт

из-за этого при попытке анализа формы возникает ошибка
{Форма.РазборФормы.Форма(1904,9)}: Процедура или функция с указанным именем уже определена (ЛксСтрокаВнутрВХМЛТело)
Функция <<?>>ЛксСтрокаВнутрВХМЛТело(вхСтрока) (Проверка: Толстый клиент (обычное приложение))

Думается мне, что при заимствовании чужого кода, префиксы все-же лучше менять.
36. Андрей Д. (bambr1975) 30.01.12 15:20
(35) awa, спасибо за совет. Признаю, исправлюсь. На счет заимствования чужого кода - вообще сложный вопрос - насколько это допустимо. Поэтому и не хотелось изменять характерные признаки, для сохранения сходства с оригиналом.
37. Сергей Старых (tormozit) 30.01.12 15:28
(36) Префикс Лкс был выбран специально на основе анализа вероятности встретить его в коде в другой роли. Поэтому достаточно просто сделать замену всех вхождений "Лкс" на свой префикс. Несовместимость с подсистемой ИР для многих станет очень неудобным фактором.
39. Валерий Агеев (awa) 30.01.12 15:42
(36) Насчет допустимости заимствования чужого кода - если бы автор (в данном случае уважаемый tormozit) не хотел бы допустить копирования своего кода, то не выкладывал бы его в открытом виде, или четко написал бы в публикации и в самом коде о нежелании использования своего кода другими. Повторное использование кода - вещь, безусловно, полезная. Я думаю, что при копировании чужого кода префиксы можно и нужно менять, а в комментариях просто оставить информацию об авторстве кода и ссылку на источник.
1cmax; Yasen; sasha_r; +3 Ответить 1
40. zavedeev (zavedeev) 30.01.12 15:44
Авторы +10, классная разработка, молодец.
41. sound sound (sound) 30.01.12 17:50
Работа, видимо, проделана немалая, поэтому плюс. Кстати как правильно подмечено в (17) многие пользователи (да и разработчики) не используют Меню "Файл - Сравнить файлы", хотя вещь действительно очень удобная. Америку не открою конечно ... вот для чего это нужно программистам понятно, а вот для бухгалтеров, например, она становится незаменимым помощником при "анализе обороток" (проводок), когда хочется понять что изменилось в оборотке за период или вообще что изменилось в проводках отдельного документа после его перепроведения. Работает это примерно так:

1) Бухгалтер открывает проводки документа любимой кнопкой "ДтКт".
2) Жмакает правой кнопкой по полю с проводками, выбирает "вывести список", получает печатную форму, и сохраняет ее на комп в формате по умолчанию MXL (файл1.mxl).
3) Перепроводит документ, заходит в проводки и также как в пунке 2 создает файл файл2.mxl
4) Меню "Файл - Сравнить файлы", выбирает файл1.mxl и файл2.mxl
5) Видит что изменилось.

То же самое касается "обороток", когда "что-то изменилось, а что не пойму". По крайней мере у меня бухгалтера очень ценят данную возможность сравнивать файлы.
43. Vladimir (Boroda) 30.01.12 22:18
Да, это то, что было бы очень полезно иметь в своём арсенале инструментов. Большое спасибо и, конечно, "+".
44. Андрей Д. (bambr1975) 30.01.12 23:13
(35),(37),(39) Обновил. Добавил в код комментарии со ссылками на изначальные источники. Убрал префикс Лкс из трех функций анализа документа DOM формы.
48. Роман Узьмов (RomanUzmov) 31.01.12 11:02
Обработка супер! Спасибо!
49. Елена (elena_77) 31.01.12 11:16
Спасибо огромное. Проделана большая и нужная работа.
50. Елена (elena_77) 31.01.12 11:17
Разработка полезная автору плюс
51. Александр Зубцов (iov) 31.01.12 11:29
(0)сравнение УПП-УПП cf windows 7 проф

{Форма.Форма.Форма(1512)}: Индекс находится за границами массива
СтрокаСравнения=ДеревоМетаданных.Строки[0];

а перед этим надпись результат распаковки не является результатом распаковки файла конфигурации
52. Андрей Д. (bambr1975) 31.01.12 11:33
(51) iov, эта надпись появляется, когда что-то напутано с каталогами распаковки. Создайте для каждой конфигурации свой каталог распаковки (который не будет удаляться при закрытии обработки) - попробуйте еще раз. Напишите, если не получится. На сравнении cf УПП проверялось. Было все в порядке.
53. Андрей Д. (bambr1975) 31.01.12 11:34
+52 (51)Распаковать и вывести. Не просто Вывести
54. Александр Зубцов (iov) 31.01.12 11:54
(52) два разных каталога
УПП допиленная и УПП типовая - указаны каталоги распаковки
допиленная - загружается в пустую базу без ошибок (по крайней мере не найдены пока)
на допиленной вылетает. причем сразу же при запуске.
Типовая - без проблем.
(53) Конечно распаковать и вывести.
55. Александр Зубцов (iov) 31.01.12 11:59
(52) Сейчас попробую выгрузить опять и проверить...
56. Андрей Д. (bambr1975) 31.01.12 12:23
57. Андрей Д. (bambr1975) 31.01.12 12:46
(51) iov, сообщение "Результат распаковки не является результатом распаковки для файла конфигурации" пишется, если в каталоге распаковки отсутствует файл root
Структуру файлов каталога распаковки посмотрите, пожалуйста. Обычно, при сортировке файлов по имени там в самом низу должно быть три файла - root, version, versions
58. Александр Зубцов (iov) 31.01.12 12:47
(56) естессно...
вылетает практически сразу после нажатия. так что в каталоге распаковки даже ничего не появляется
59. Андрей Д. (bambr1975) 31.01.12 12:55
Хотелось бы разобраться... А Вам не трудно из командной строки запустить что-то вроде:
V8Unpack.exe -parse [ПолныйПутьКФайлуРаспаковкиВКавычках] [ПолныйПутьККаталогуРаспаковкиВКавычках]
В каталоге с программой V8Unpack.exe и zlib1.dll
Получится что-нибудь?
60. Александр Зубцов (iov) 31.01.12 13:08
61. Александр Зубцов (iov) 31.01.12 13:08
(59)файл не заблокирован - перемещал на разные диски - типовая распаковывается доработанная - нет
62. Андрей Д. (bambr1975) 31.01.12 13:11
(60) iov, от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
63. Александр Зубцов (iov) 31.01.12 13:16
(62) В любом случае спасибо за участие. попробуем добиться истины в других местах.
64. sergey trifonov (xhronx) 31.01.12 15:34
Отличная обработка, дерзайте! Ждем доступных версий.
65. Саўка Збянтэжаны (Збянтэжаны Саўка) 31.01.12 16:56
66. Саўка Збянтэжаны (Збянтэжаны Саўка) 31.01.12 17:00
(8) WendyH, по мне так для сравнения печатных форм стандарта за глаза хватит, но вот визуальное сравнения форм - это жемчужинка, которой всегда хотелось!
67. FFFF FFF (Gasdrubal) 01.02.12 08:12
отличная обработка, качну ,спасибО очень нехватало такого в вид дерева сравнения форм и печатных формочек!
68. Ирек Бикмухаметов (xbic) 01.02.12 10:26
69. Василий Зайцев (vasiliy_b) 01.02.12 10:38
Надеюсь 1Су теперь станет стыдно, и они реализуют это в платформе =)
71. Илья Олегович Червяков (amiralnar) 02.02.12 04:13
Здравствуйте!
Скажите, пожалуйста, знакомились ли вы с методом динамического добавления элементов формы от TormozIT?
Как вы думаете, возможно ли в вашей обработке написать функцию, которая по информации о сравнении форм - сгенерирует код для динамического добавления элементов на форму?
72. Андрей Д. (bambr1975) 02.02.12 07:20
(71) amiralnar, эта функция в обработке и так есть - в слегка непричесанном виде, согласен - при нажатии на гиперссылку с синонимом формы выводится текст для динамического добавления элементов формы - в случае сравнения - сравнение этих текстов динамического добавления. Задачи сформировать отдельно именно текст изменений одной формы от другой не ставилось - хотя, по-моему, это не сложно. Сильно восхищает предложенный формат подачи нужных изменений в обработке от Istur - у него более специализированная обработка, может, он возьмется ее слегка развить?
73. Vik_Krivobok (KVIKS) 02.02.12 09:34
74. al petrov (petrov_al) 02.02.12 09:54
Плюс только за потраченное время и знания. Стандартные механизмы в 1С все это предоставляют и не в худшем варианте... сранение конфигураций и обработок и макетов и файлов и т.д., кто этого не знает советую получше познакомиться с возможностями конфигуратора. Не понятно стремление многих авторов перенести функционал конфигурации в пользовательский режим...ненужно это пользователям и даже вредно.
75. Андрей Д. (bambr1975) 02.02.12 10:06
(74) petrov_al, пользовательский режим используется для вывода только потому, что других способов вывести для анализа нужные данные еще не знаю. Аудиторию бухгалтеров и операторов баз данных охватить в мои планы не входило. Конфигуратор, конечно, нужно еще подучить. Но альтернативные методы получения нужной для анализа информации тоже должны быть изучены.
76. Владимир Костецкий (astonvilla) 02.02.12 14:02
Однозначно одна из полезнейших разработок...
77. Илья Олегович Червяков (amiralnar) 02.02.12 16:35
(72) bambr1975, Большое спасибо за подсказку на обработку! Это как раз то, что мне было нужно.
78. Игорь (vikorn) 03.02.12 09:35
79. Misha ⁠ (Magister) 03.02.12 09:40
Приятно видеть такие разработки :)
А про объединение ещё не думали? Как замену функционалу конфигуратора?
80. Андрей Д. (bambr1975) 03.02.12 09:46
(79) Magister, ридер - от слова "читать". Подразумевалось, что те, кто ищет альтернативный разбор форм - как Вы в своих комментариях к CFU-ридеру, найдет для себя что-то подходящее. Замена конфигуратору не планировалась.
81. Misha ⁠ (Magister) 04.02.12 04:31
(80) Понял, спасибо за ответ.
82. Дмитрий Бертман (Batman) 05.02.12 14:38
спасибо, отличная разработка
83. Алексей Иванов (lexa12345) 05.02.12 20:12
Спасибо, очень полезная вещь.
84. Сергей Серебренников (SSO) 06.02.12 12:09
Отличный и удобный механизм. Очень помогает когда есть множество изменений в форме. Спасибо.
85. Сергей Беленченко (svbel85) 06.02.12 15:28
видно, что проделана большая работа, но не повторяет ли механизм этой обработки, механизм сравнения конфигуратора???
86. Андрей Д. (bambr1975) 06.02.12 16:06
(85) svbel85, на самом деле - такая видимость действительно имеет место быть. И если у Вас нет потребности расширить имеющиеся механизмы и развить их в нужном для Вас направлении - обработка не для Вас. На возможности сравнения форм конфигуратором Вы, к сожалению, повлиять не сможете, а тут - проявить немного фантазии и... может быть, узнаете что-то новое для себя.
87. Фаниля Чунтонова (fanilya) 06.02.12 16:24
Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;
При попытке показать различие в табличном документе, он вызывает исключение - а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали - отдышусь - и все исправлю.
88. Александр Иванов (fap82) 08.02.12 09:02
Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+
89. Yalo (yalo) 08.02.12 13:07
Супер экономии времени при обновлении. Спасибо!!
90. Yalo (yalo) 08.02.12 13:07
Экономия времени при обновлении. Спасибо!!
91. Usc (Uscolegy) 08.02.12 13:24
Спасибо, очень помогло. а дальнейшее развитие будет ?
92. Андрей Д. (bambr1975) 08.02.12 13:45
(91) Usc, конечно, было бы здорово довести дело до чего-то более практичного. То, что требует простой доработки напильником - будет реализовано в ближайшее время. Мне пока что не определиться с тем - в каком виде будет получаться информация на выходе. Поможете в этом "ступоре идей"?
93. StronG-X (Dethmond) 08.02.12 14:18
Оболденная вещь, спасибо большое
94. Евгений Сосна (pumbaE) 08.02.12 15:13
Вариант: пустая база анализирует параметры командной строки и допустим если передается 2 пути к файлам выводить их diff (erf, epf, mxl) неважно. В этом случаи можно для svn написать скрипт, что эти файлы сравнивать с помощью определенной программы.

Особенно будет прикольно для клюшечников - посмотреть визуально различия в mxl файле...
96. Алексей Аборин (commo) 10.02.12 14:02
97. Анатолий (Yasen) 10.02.12 16:24
98. IR IR (Artemuch2) 10.02.12 19:58
Ну с удовольствием бы протестировал функционал и поставил плюс и содержательный комментарий. Из за этого ретинга приходится всякую ерунду писать что бы скачать обработку. Неужели инфостарту это реально нужно?
99. ВладимирП Пономарев (владимирп) 11.02.12 20:43
Дошли руки попробовать. Задумка очень нравится, но произошло: {Форма.Форма.Форма(1111)}: Значение не является значением объектного типа (ВидМетаданных)ВидМетаданныхОбъекта=СтрокаДереваМетаданных.ВидМетаданных;
Это выдала машина. В чем может быть причина? Пытался просмотреть свою конфигурацию УПП, но измененную
100. Андрей Д. (bambr1975) 11.02.12 23:34
(99) владимирп, единственное, что приходит в голову - это то, что в конфигурациях с версии 8.2.14 появились новые виды метаданных - обработка их еще не учитывает. Буду работать в этом направлении.
101. Алексей Литвин (alitvin) 11.02.12 23:50
102. ВладимирП Пономарев (владимирп) 12.02.12 10:12
(100) bambr1975,
Спасибо за ответ, да я тоже думаю, что дело в новых объектах. Буду ждать результата!!!
103. Oleg karp (Oleg1708) 13.02.12 17:06
Спасибо. Последний релиз поддерживает? Что с новыми объектами?
104. Алекс Ю (AlexO) 14.02.12 02:05
(0) а можно изменения обработки освещать на главной странице - в виде upd: что-то.
Или хотя бы как-то выделять в комментариях - чтобы ориентироваться, когда было изменение функционала (доработка), а когда - смена описания на главной странице.
Для написания сообщения необходимо авторизоваться
Прикрепить файл
Дополнительные параметры ответа