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

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

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

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

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

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

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

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

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

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

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

Для придания "рюшечек" использовалась идея, предложенная Шепотом теней в публикации //1c-soft.it-terminal.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» больше не используется.

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

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

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

В отчете по ролям добавлено программное генерирование кнопок для управления уровнями группировки из публикации //1c-soft.it-terminal.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
2330
.epf 1.13 933,79Kb 2330 Скачать

См. также

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


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

Если серьезно, еще несколько раз попробовал все работает четко.
3. BalVlad 27.01.12 21:02 Сейчас в теме
Очень нужная разработка, спасибо. От меня +
119. Zas1402 21.02.12 10:28 Сейчас в теме
(3) BalVlad,
очень нужная вещь
4. tango 480 27.01.12 21:30 Сейчас в теме
209. babys 82 04.09.12 15:49 Сейчас в теме
"Тут, эта, как его, не работает, начальника". В части "анализ и сравнение ролей и ограничений доступа" при нажатии на кнопки перехода "Различия в ограничениях доступа (4):" выдаёт вот такое сообщение:
{Форма.ФормаДляРолей.Форма(951)}" Ошибка при вызове метода контекста (Индекс)
     ИндексТекущейСтроки=ТабличноеПолеСравненияРЛС.Индекс(ТекущаяСтрока);
по причине:
Несоответствие типов (параметр номер '1')


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

На данный момент в стандартном функционале доступны следующие действия:
- открыть старую форму
- открыть новую форму
- вывести различия между формами в табличный документ (немного неудобно, но задачу поэлементного сравнения худо бедно решает)
Какая именно возможность отсутствует в стандартном функционале?
41. sound 525 30.01.12 17:50 Сейчас в теме
Работа, видимо, проделана немалая, поэтому плюс. Кстати как правильно подмечено в (17) многие пользователи (да и разработчики) не используют Меню "Файл - Сравнить файлы", хотя вещь действительно очень удобная. Америку не открою конечно ... вот для чего это нужно программистам понятно, а вот для бухгалтеров, например, она становится незаменимым помощником при "анализе обороток" (проводок), когда хочется понять что изменилось в оборотке за период или вообще что изменилось в проводках отдельного документа после его перепроведения. Работает это примерно так:

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

То же самое касается "обороток", когда "что-то изменилось, а что не пойму". По крайней мере у меня бухгалтера очень ценят данную возможность сравнивать файлы.
18. bambr1975 796 28.01.12 20:14 Сейчас в теме
Ну - считайте, что про сравнение обработок вы меня просветили (стыдно). Да и отчеты о сравнении в стандартном функционале, не спорю, побогаче. Но, Вы ведь понимаете, что все мы занимаемся одним общим делом - пытаемся разобраться... У каждого это происходит по-своему - кому-то нужно написать такую обработку для того, чтобы что-то расставить по своим местам. И, может, если это, все-таки, дает какие-то видимые результаты, оно к лучшему?
19. amiralnar 8 28.01.12 20:21 Сейчас в теме
(18) Как я уже отметил, вы проделали отличную работу, я нисколько не умаляю важность вашей обработки.
Мне было важно узнать, какое преимущество она имеет, как её можно использовать в работе, вот и все.
Спасибо!
МимохожийОднако; +1 Ответить
20. Кадош 29.01.12 03:00 Сейчас в теме
21. Pavel777777 53 29.01.12 09:58 Сейчас в теме
Гениально) ... а нет ли возможности выводить размер файлов в колонке ... у меня, например, "раздулась" конфигурация КА мегов на 150 после всех обновлений, а как найти из-за чего, пока не нашёл возможности ... а так было бы наглядно видно, какие объекты конфигурации сколько места занимают....
Или же это уже есть в этой обработке?
23. bambr1975 796 29.01.12 11:21 Сейчас в теме
(21) Pavel777777, в навигаторе файлов есть кнопки, перемещающие Вас в каталог распаковки - делаете в этом каталоге сортировку по размеру файлов и определяете, в чем у вас проблема. Наверное, так.
24. Pavel777777 53 29.01.12 11:36 Сейчас в теме
(23) Ясно, спасибо ... но тут есть два момента ))) во-первых - названия файлов не совсем понятные сходу), а во-вторых - многие объекты расположены в папках, поэтому размер сразу не показывается. В принципе, это, конечно, можно прикрутить и самому...
22. Pim 156 29.01.12 11:17 Сейчас в теме
Если то, что нарисовано на картинках правда, то ОГРОМНЫЙ респект и уважуха автору.
25. karakozov 29.01.12 13:04 Сейчас в теме
Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+
26. samamoiloff 859 29.01.12 20:39 Сейчас в теме
Здравствуйте. Огромное спасибо. Могу ли использовать в своих исследованиях-разработках? Со ссылкой на Вас, разумеется.
27. bambr1975 796 29.01.12 20:40 Сейчас в теме
28. Rustig 973 30.01.12 03:09 Сейчас в теме
(0) можно ли с помощью вашего инструмента увидеть код в модулях, не включенных в поставку?
29. bambr1975 796 30.01.12 07:11 Сейчас в теме
31. Rustig 973 30.01.12 12:32 Сейчас в теме
(29) Спасибо :)
есть своя разработка, код модуля не включен в поставку, поэтому вот спрашиваю - анализирую: достаточна ли защита? ...обфускацию кода делать не хочется (имхо, трудоемко)
182. DMSDeveloper 16.05.12 09:53 Сейчас в теме
(31) Rustig, защиты на основе исключения модулей в комплект поставки не достаточно. На основе V8Unpack была не известным мне автором разработана обработка - декодирование модулей V8. Эта обработка прекрасно вскрывает и декодирует модули с "псевдокодом". Таким же образом обходит установленные пароли на текст.

Дабы не совсем offtop :) Автору МЕГАРеспект! Я давно искал алгоритм + механизм разбора и формирования дерева конфигурации из файлов после V8Unpack.
Есть идея реализовать свой собственный (на базе 1С) SVN-чик с функциями автоматического документирования на основе комментариев. Шаблоны для документирования уже готовы и успешно используются в кодировании, а вот с разбором программного кода сервером при добавлении новой версии в хранилище - затык. Конфигуратор может выгружать только всю конфигурацию в текстовые файлы, и не может выгружать отдельные объекты из конфигурации или внешние обработки или отчеты. А из поставленной задачи это основное.
Еще раз - автору МЕГАРеспект.
30. FLYYY1986 30.01.12 10:00 Сейчас в теме
Спасибо большое, очень меганужная штука!
32. MRAK 707 30.01.12 13:28 Сейчас в теме
33. antek 30.01.12 13:33 Сейчас в теме
Спасибо. Плюс за огромную проделанную работу, полезная вещь для кодеров и к сожалению бесполезная для юзеров 1с.
Как тока времени хватает писать такое для себя любимых
34. yalo 30.01.12 13:35 Сейчас в теме
Обязательно скачаю, спасибо!
35. awa 2447 30.01.12 15:16 Сейчас в теме
К сожалению, на данный момент, обработка несовместима с подсистемой "Инструменты разработчика". В общем модуле ирГлобальный есть функция
Функция ЛксСтрокаВнутрВХМЛТело(вхСтрока, выхХМЛТело = Неопределено) Экспорт

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

Думается мне, что при заимствовании чужого кода, префиксы все-же лучше менять.
36. bambr1975 796 30.01.12 15:20 Сейчас в теме
(35) awa, спасибо за совет. Признаю, исправлюсь. На счет заимствования чужого кода - вообще сложный вопрос - насколько это допустимо. Поэтому и не хотелось изменять характерные признаки, для сохранения сходства с оригиналом.
37. tormozit 4742 30.01.12 15:28 Сейчас в теме
(36) Префикс Лкс был выбран специально на основе анализа вероятности встретить его в коде в другой роли. Поэтому достаточно просто сделать замену всех вхождений "Лкс" на свой префикс. Несовместимость с подсистемой ИР для многих станет очень неудобным фактором.
39. awa 2447 30.01.12 15:42 Сейчас в теме
(36) Насчет допустимости заимствования чужого кода - если бы автор (в данном случае уважаемый tormozit) не хотел бы допустить копирования своего кода, то не выкладывал бы его в открытом виде, или четко написал бы в публикации и в самом коде о нежелании использования своего кода другими. Повторное использование кода - вещь, безусловно, полезная. Я думаю, что при копировании чужого кода префиксы можно и нужно менять, а в комментариях просто оставить информацию об авторстве кода и ссылку на источник.
1cmax; Yasen; sasha_r; +3 Ответить
44. bambr1975 796 30.01.12 23:13 Сейчас в теме
(35),(37),(39) Обновил. Добавил в код комментарии со ссылками на изначальные источники. Убрал префикс Лкс из трех функций анализа документа DOM формы.
38. Trofimov_M 30.01.12 15:34 Сейчас в теме
40. zavedeev 30.01.12 15:44 Сейчас в теме
Авторы +10, классная разработка, молодец.
43. Boroda 90 30.01.12 22:18 Сейчас в теме
Да, это то, что было бы очень полезно иметь в своём арсенале инструментов. Большое спасибо и, конечно, "+".
48. RomanUzmov 42 31.01.12 11:02 Сейчас в теме
Обработка супер! Спасибо!
49. elena_77 31.01.12 11:16 Сейчас в теме
Спасибо огромное. Проделана большая и нужная работа.
50. elena_77 31.01.12 11:17 Сейчас в теме
Разработка полезная автору плюс
51. iov 364 31.01.12 11:29 Сейчас в теме
(0)сравнение УПП-УПП cf windows 7 проф

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

а перед этим надпись результат распаковки не является результатом распаковки файла конфигурации
52. bambr1975 796 31.01.12 11:33 Сейчас в теме
(51) iov, эта надпись появляется, когда что-то напутано с каталогами распаковки. Создайте для каждой конфигурации свой каталог распаковки (который не будет удаляться при закрытии обработки) - попробуйте еще раз. Напишите, если не получится. На сравнении cf УПП проверялось. Было все в порядке.
54. iov 364 31.01.12 11:54 Сейчас в теме
(52) два разных каталога
УПП допиленная и УПП типовая - указаны каталоги распаковки
допиленная - загружается в пустую базу без ошибок (по крайней мере не найдены пока)
на допиленной вылетает. причем сразу же при запуске.
Типовая - без проблем.
(53) Конечно распаковать и вывести.
56. bambr1975 796 31.01.12 12:23 Сейчас в теме
58. iov 364 31.01.12 12:47 Сейчас в теме
(56) естессно...
вылетает практически сразу после нажатия. так что в каталоге распаковки даже ничего не появляется
55. iov 364 31.01.12 11:59 Сейчас в теме
(52) Сейчас попробую выгрузить опять и проверить...
53. bambr1975 796 31.01.12 11:34 Сейчас в теме
+52 (51)Распаковать и вывести. Не просто Вывести
57. bambr1975 796 31.01.12 12:46 Сейчас в теме
(51) iov, сообщение "Результат распаковки не является результатом распаковки для файла конфигурации" пишется, если в каталоге распаковки отсутствует файл root
Структуру файлов каталога распаковки посмотрите, пожалуйста. Обычно, при сортировке файлов по имени там в самом низу должно быть три файла - root, version, versions
59. bambr1975 796 31.01.12 12:55 Сейчас в теме
Хотелось бы разобраться... А Вам не трудно из командной строки запустить что-то вроде:
V8Unpack.exe -parse [ПолныйПутьКФайлуРаспаковкиВКавычках] [ПолныйПутьККаталогуРаспаковкиВКавычках]
В каталоге с программой V8Unpack.exe и zlib1.dll
Получится что-нибудь?
60. iov 364 31.01.12 13:08 Сейчас в теме
62. bambr1975 796 31.01.12 13:11 Сейчас в теме
(60) iov, от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
63. iov 364 31.01.12 13:16 Сейчас в теме
(62) В любом случае спасибо за участие. попробуем добиться истины в других местах.
184. ndacoder 107 14.06.12 10:26 Сейчас в теме
(60), (62)
<< от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
>>

автору спасибо за труд.
НО! архитектура решения жестко завязана на V8Unpack, что не даёт легкого простора для перевода на другие решения (в свободном доступе есть как минимум ещё 2 решения для получения аналогичного результата)

P.S. автору V8Unpack писать бесполезно разработка не поддерживается и передана сообществу.

P.P.S.если у кого не распаковывается V8Unpack-ом приму на изучение другими инструменами.
bambr1975; +1 Ответить
61. iov 364 31.01.12 13:08 Сейчас в теме
(59)файл не заблокирован - перемещал на разные диски - типовая распаковывается доработанная - нет
64. xhronx 31.01.12 15:34 Сейчас в теме
Отличная обработка, дерзайте! Ждем доступных версий.
65. Збянтэжаны Саўка 238 31.01.12 16:56 Сейчас в теме
67. Gasdrubal 01.02.12 08:12 Сейчас в теме
отличная обработка, качну ,спасибО очень нехватало такого в вид дерева сравнения форм и печатных формочек!
68. xbic 16 01.02.12 10:26 Сейчас в теме
69. vasiliy_b 276 01.02.12 10:38 Сейчас в теме
Надеюсь 1Су теперь станет стыдно, и они реализуют это в платформе =)
71. amiralnar 8 02.02.12 04:13 Сейчас в теме
Здравствуйте!
Скажите, пожалуйста, знакомились ли вы с методом динамического добавления элементов формы от TormozIT?
Как вы думаете, возможно ли в вашей обработке написать функцию, которая по информации о сравнении форм - сгенерирует код для динамического добавления элементов на форму?
72. bambr1975 796 02.02.12 07:20 Сейчас в теме
(71) amiralnar, эта функция в обработке и так есть - в слегка непричесанном виде, согласен - при нажатии на гиперссылку с синонимом формы выводится текст для динамического добавления элементов формы - в случае сравнения - сравнение этих текстов динамического добавления. Задачи сформировать отдельно именно текст изменений одной формы от другой не ставилось - хотя, по-моему, это не сложно. Сильно восхищает предложенный формат подачи нужных изменений в обработке от Istur - у него более специализированная обработка, может, он возьмется ее слегка развить?
amiralnar; +1 Ответить
77. amiralnar 8 02.02.12 16:35 Сейчас в теме
(72) Большое спасибо за подсказку на обработку! Это как раз то, что мне было нужно.
73. KVIKS 02.02.12 09:34 Сейчас в теме
74. petrov_al 10 02.02.12 09:54 Сейчас в теме
Плюс только за потраченное время и знания. Стандартные механизмы в 1С все это предоставляют и не в худшем варианте... сранение конфигураций и обработок и макетов и файлов и т.д., кто этого не знает советую получше познакомиться с возможностями конфигуратора. Не понятно стремление многих авторов перенести функционал конфигурации в пользовательский режим...ненужно это пользователям и даже вредно.
75. bambr1975 796 02.02.12 10:06 Сейчас в теме
(74) petrov_al, пользовательский режим используется для вывода только потому, что других способов вывести для анализа нужные данные еще не знаю. Аудиторию бухгалтеров и операторов баз данных охватить в мои планы не входило. Конфигуратор, конечно, нужно еще подучить. Но альтернативные методы получения нужной для анализа информации тоже должны быть изучены.
76. astonvilla 227 02.02.12 14:02 Сейчас в теме
Однозначно одна из полезнейших разработок...
78. vikorn 03.02.12 09:35 Сейчас в теме
79. Magister 134 03.02.12 09:40 Сейчас в теме
Приятно видеть такие разработки :)
А про объединение ещё не думали? Как замену функционалу конфигуратора?
80. bambr1975 796 03.02.12 09:46 Сейчас в теме
(79) Magister, ридер - от слова "читать". Подразумевалось, что те, кто ищет альтернативный разбор форм - как Вы в своих комментариях к CFU-ридеру, найдет для себя что-то подходящее. Замена конфигуратору не планировалась.
81. Magister 134 04.02.12 04:31 Сейчас в теме
(80) Понял, спасибо за ответ.
82. Batman 136 05.02.12 14:38 Сейчас в теме
спасибо, отличная разработка
83. lexa12345 05.02.12 20:12 Сейчас в теме
Спасибо, очень полезная вещь.
84. SSO 06.02.12 12:09 Сейчас в теме
Отличный и удобный механизм. Очень помогает когда есть множество изменений в форме. Спасибо.
85. svbel85 18 06.02.12 15:28 Сейчас в теме
видно, что проделана большая работа, но не повторяет ли механизм этой обработки, механизм сравнения конфигуратора???
86. bambr1975 796 06.02.12 16:06 Сейчас в теме
(85) svbel85, на самом деле - такая видимость действительно имеет место быть. И если у Вас нет потребности расширить имеющиеся механизмы и развить их в нужном для Вас направлении - обработка не для Вас. На возможности сравнения форм конфигуратором Вы, к сожалению, повлиять не сможете, а тут - проявить немного фантазии и... может быть, узнаете что-то новое для себя.
87. fanilya 06.02.12 16:24 Сейчас в теме
Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;
При попытке показать различие в табличном документе, он вызывает исключение - а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали - отдышусь - и все исправлю.
88. fap82 08.02.12 09:02 Сейчас в теме
Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+
89. yalo 08.02.12 13:07 Сейчас в теме
Супер экономии времени при обновлении. Спасибо!!
90. yalo 08.02.12 13:07 Сейчас в теме
Экономия времени при обновлении. Спасибо!!
91. Uscolegy 08.02.12 13:24 Сейчас в теме
Спасибо, очень помогло. а дальнейшее развитие будет ?
92. bambr1975 796 08.02.12 13:45 Сейчас в теме
(91) Usc, конечно, было бы здорово довести дело до чего-то более практичного. То, что требует простой доработки напильником - будет реализовано в ближайшее время. Мне пока что не определиться с тем - в каком виде будет получаться информация на выходе. Поможете в этом "ступоре идей"?
93. Dethmond 08.02.12 14:18 Сейчас в теме
Оболденная вещь, спасибо большое
94. pumbaE 600 08.02.12 15:13 Сейчас в теме
Вариант: пустая база анализирует параметры командной строки и допустим если передается 2 пути к файлам выводить их diff (erf, epf, mxl) неважно. В этом случаи можно для svn написать скрипт, что эти файлы сравнивать с помощью определенной программы.

Особенно будет прикольно для клюшечников - посмотреть визуально различия в mxl файле...
96. commo 10.02.12 14:02 Сейчас в теме
97. Yasen 491 10.02.12 16:24 Сейчас в теме
98. Artemuch2 10.02.12 19:58 Сейчас в теме
Ну с удовольствием бы протестировал функционал и поставил плюс и содержательный комментарий. Из за этого ретинга приходится всякую ерунду писать что бы скачать обработку. Неужели инфостарту это реально нужно?
99. владимирп 24 11.02.12 20:43 Сейчас в теме
Дошли руки попробовать. Задумка очень нравится, но произошло: {Форма.Форма.Форма(1111)}: Значение не является значением объектного типа (ВидМетаданных)ВидМетаданныхОбъекта=СтрокаДереваМетаданных.ВидМетаданных;
Это выдала машина. В чем может быть причина? Пытался просмотреть свою конфигурацию УПП, но измененную
100. bambr1975 796 11.02.12 23:34 Сейчас в теме
(99) владимирп, единственное, что приходит в голову - это то, что в конфигурациях с версии 8.2.14 появились новые виды метаданных - обработка их еще не учитывает. Буду работать в этом направлении.
Оставьте свое сообщение