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
2049
.epf 1.13 933,79Kb 2049 Скачать

См. также

Лучшие комментарии

299. artbear (файл скачал) 08.07.2015 11:40
+(298) структура проекта v83unpack:
- есть обработка для 1С - ВыгрузкаКонфигурации.epf, которая умеет все перечисленные операции выполнять как в интерактивном режиме, так и в режиме командной строки.
- есть набор скриптов unpack.os для проекта 1Script, который фактически является портированной версией ВыгрузкаКонфигурации.epf и работает в режиме консоли из командной строки.

Лично я предпочитаю последний вариант (спец.скрипты для 1Script). Этот вариант уже работает более полугода в боевой эксплуатации для нескольких команд крупного (150 человек) ИТ-отдела разработки 1С (используются кучей команд разработки)
Ответили: (300)
# Ответить
39. awa (файл скачал) 30.01.2012 15:42
(36) Насчет допустимости заимствования чужого кода - если бы автор (в данном случае уважаемый tormozit) не хотел бы допустить копирования своего кода, то не выкладывал бы его в открытом виде, или четко написал бы в публикации и в самом коде о нежелании использования своего кода другими. Повторное использование кода - вещь, безусловно, полезная. Я думаю, что при копировании чужого кода префиксы можно и нужно менять, а в комментариях просто оставить информацию об авторстве кода и ссылку на источник.
Ответили: (44)
+ 3 [ 1cmax; Yasen; sasha_r; ]
# Ответить
290. bambr1975 10.06.2015 14:52
Доработана совместимость регулярок с внутренним представлением 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 не распаковывает) без ущерба для производительности.

Мелкие доработки эргономики вывода сравнения временных файлов.
+ 3 [ Gotcha; awa; Armando; ]
# Ответить
213. bambr1975 01.11.2012 16:20
Исправлены ошибки.

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

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

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

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

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

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

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

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

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

(211) artbear, (204) khaoos, (208) SkorikA, - исправлено, (195) pumbaE, (209) (210) babys, - реализовано
+ 2 [ teflon; khaoos; ]
# Ответить
293. bambr1975 29.06.2015 19:29
(292) Gotcha, во-первых, проясните, что значит
В постоянные у меня распаковать не получается, падает распаковка с ошибкой.

Какая именно последовательность действий приводит к ошибке?
Во-вторых - функциональность Вашей мечты реализует проект precommit - у него свои тонкости и свои контрибьютеры - но задачу хранения распакованных данных для возможности просмотра изменений отчетов и обработок на github этот проект решает. Кнопка получения структуры человекопонятных папок с исходными кодами внутри в V8Reader находится на панели дерева метаданных главной формы обработки (кнопка с дискеткой). В принципе, можно ее нажимать и вручную. Также в проекте precommit реализована и упаковка данных средствами V8Unpack.
В-третьих - если все Ваши неудобства пользования моей обработкой упираются в невозможность использования kdiff, то в принципе ничего сложного в том, чтобы сделать настройку использования для сравнения текстовых файлов именно ее.
Хотелось бы понять по всем этим трем пунктам, что конкретно Вам нужно.
Ответили: (294) (295)
+ 2 [ artbear; Evil Beaver; ]
# Ответить
192. bambr1975 19.08.2012 23:29
Обновлено. Учтены некоторые пожелания пользователей. В частности, при перемещении по дереву метаданных при открытом навигаторе файлов по умолчанию происходит позиционирование на файл выделенной строки. Также для возможности использовать режим ssf для анализа выгруженных платформой 8.3 бинарных файлов форм в процедуру выбора файла формы добавлен фильтр .form.
(191) khaoos, исправления внесены. Однако, признаюсь, что проблема, возникшая у Вас в первом пункте, может у кого-нибудь проявится снова. Дело в том, что визуализация форм реализована исключительно для демонстрации факта, что «все-таки, она вертится!», и сделано это с помощью различных бутафорских трюков, которые, конечно, не полностью компенсируют весь набор заложенного в платформу (к примеру, кнопки стандартных действий и автозаполнение панелей в визуализированной форме отображаются далеко не полностью). Но, я надеюсь, большого неудобства это доставлять не должно. Может, позже станет лучше понятно, каким образом было бы правильнее учитывать эту проблему, но на данный момент – так.
+ 2 [ khaoos; teflon; ]
# Ответить
285. bambr1975 25.01.2015 14:17
(273) yandextesting, (262) 8SiriuS8, опубликована новая версия обработки - ваши замечания там реализованы:
В управляемых формах реализован разбор командного интерфейса.
Логика построения дерева обычных форм отвязана от идеи деструктивного анализа – иерархия элементов строится на основе внутреннего представления.
+ 2 [ yandextesting; awa; ]
# Ответить
184. ndacoder (файл скачал) 14.06.2012 10:26
(60), (62) bambr1975,
<< от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
>>

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

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

P.P.S.если у кого не распаковывается V8Unpack-ом приму на изучение другими инструменами.
+ 1 [ bambr1975; ]
# Ответить
158. Magister (файл скачал) 06.04.2012 14:03
(157)
Т.к. программа приняла более-менее нормальный вид и функциональность, выложил публикацией: http://infostart.ru/public/124213/
+ 1 [ bambr1975; ]
# Ответить
197. khaoos (файл скачал) 21.08.2012 10:48
Вот еще что накопал: при декомпиляции формы вместо свойства "ГоризонтальноеПоложение" элемента формы (если важно, то у меня "переключателе" проявляется) еще раз выводится "ВертикльноеПоложение":

Переключатель.Заголовок = "Банковским переводом";
Переключатель.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Переключатель.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Переключатель.ПоложениеЗаголовка = ПоложениеЗаголовка.ЗаголовокСправа;
Ответили: (198)
+ 1 [ bambr1975; ]
# Ответить

Комментарии

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


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

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

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

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

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

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

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

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

а перед этим надпись результат распаковки не является результатом распаковки файла конфигурации
Ответили: (52) (53) (57)
# Ответить
52. bambr1975 31.01.2012 11:33
(51) iov, эта надпись появляется, когда что-то напутано с каталогами распаковки. Создайте для каждой конфигурации свой каталог распаковки (который не будет удаляться при закрытии обработки) - попробуйте еще раз. Напишите, если не получится. На сравнении cf УПП проверялось. Было все в порядке.
Ответили: (54) (55)
# Ответить
53. bambr1975 31.01.2012 11:34
+52 (51)Распаковать и вывести. Не просто Вывести
Ответили: (54)
# Ответить
54. iov (файл скачал) 31.01.2012 11:54
(52) два разных каталога
УПП допиленная и УПП типовая - указаны каталоги распаковки
допиленная - загружается в пустую базу без ошибок (по крайней мере не найдены пока)
на допиленной вылетает. причем сразу же при запуске.
Типовая - без проблем.
(53) Конечно распаковать и вывести.
Ответили: (56)
# Ответить
55. iov (файл скачал) 31.01.2012 11:59
(52) Сейчас попробую выгрузить опять и проверить...
# Ответить
56. bambr1975 31.01.2012 12:23
(54) iov, УПП на платформе 8.2?
Ответили: (58)
# Ответить
57. bambr1975 31.01.2012 12:46
(51) iov, сообщение "Результат распаковки не является результатом распаковки для файла конфигурации" пишется, если в каталоге распаковки отсутствует файл root
Структуру файлов каталога распаковки посмотрите, пожалуйста. Обычно, при сортировке файлов по имени там в самом низу должно быть три файла - root, version, versions
Ответили: (234)
# Ответить
58. iov (файл скачал) 31.01.2012 12:47
(56) естессно...
вылетает практически сразу после нажатия. так что в каталоге распаковки даже ничего не появляется
# Ответить
59. bambr1975 31.01.2012 12:55
Хотелось бы разобраться... А Вам не трудно из командной строки запустить что-то вроде:
V8Unpack.exe -parse [ПолныйПутьКФайлуРаспаковкиВКавычках] [ПолныйПутьККаталогуРаспаковкиВКавычках]
В каталоге с программой V8Unpack.exe и zlib1.dll
Получится что-нибудь?
Ответили: (60) (61)
# Ответить
60. iov (файл скачал) 31.01.2012 13:08
(59) UnpackToFolder. Error in reading file!
Ответили: (62) (184)
# Ответить
61. iov (файл скачал) 31.01.2012 13:08
(59)файл не заблокирован - перемещал на разные диски - типовая распаковывается доработанная - нет
# Ответить
62. bambr1975 31.01.2012 13:11
(60) iov, от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
Ответили: (63) (184)
+ 1 [ iov; ]
# Ответить
63. iov (файл скачал) 31.01.2012 13:16
(62) В любом случае спасибо за участие. попробуем добиться истины в других местах.
# Ответить
64. xhronx 31.01.2012 15:34
Отличная обработка, дерзайте! Ждем доступных версий.
# Ответить
65. Збянтэжаны Саўка (файл скачал) 31.01.2012 16:56
Das ist fantastish!!!
# Ответить
66. Збянтэжаны Саўка (файл скачал) 31.01.2012 17:00
(8) WendyH, по мне так для сравнения печатных форм стандарта за глаза хватит, но вот визуальное сравнения форм - это жемчужинка, которой всегда хотелось!
Ответили: (118)
# Ответить
67. Gasdrubal 01.02.2012 08:12
отличная обработка, качну ,спасибО очень нехватало такого в вид дерева сравнения форм и печатных формочек!
# Ответить
68. xbic (файл скачал) 01.02.2012 10:26
нужная штука
# Ответить
69. vasiliy_b (файл скачал) 01.02.2012 10:38
Надеюсь 1Су теперь станет стыдно, и они реализуют это в платформе =)
# Ответить
71. amiralnar (файл скачал) 02.02.2012 04:13
Здравствуйте!
Скажите, пожалуйста, знакомились ли вы с методом динамического добавления элементов формы от TormozIT?
Как вы думаете, возможно ли в вашей обработке написать функцию, которая по информации о сравнении форм - сгенерирует код для динамического добавления элементов на форму?
Ответили: (72)
# Ответить
72. bambr1975 02.02.2012 07:20
(71) amiralnar, эта функция в обработке и так есть - в слегка непричесанном виде, согласен - при нажатии на гиперссылку с синонимом формы выводится текст для динамического добавления элементов формы - в случае сравнения - сравнение этих текстов динамического добавления. Задачи сформировать отдельно именно текст изменений одной формы от другой не ставилось - хотя, по-моему, это не сложно. Сильно восхищает предложенный формат подачи нужных изменений в обработке от Istur - у него более специализированная обработка, может, он возьмется ее слегка развить?
Ответили: (77)
+ 1 [ amiralnar; ]
# Ответить
73. Vik_Krivobok 02.02.2012 09:34
хорошая обработка
# Ответить
74. petrov_al 02.02.2012 09:54
Плюс только за потраченное время и знания. Стандартные механизмы в 1С все это предоставляют и не в худшем варианте... сранение конфигураций и обработок и макетов и файлов и т.д., кто этого не знает советую получше познакомиться с возможностями конфигуратора. Не понятно стремление многих авторов перенести функционал конфигурации в пользовательский режим...ненужно это пользователям и даже вредно.
Ответили: (75)
− 2 [ SeiOkami; awa; ]
# Ответить
75. bambr1975 02.02.2012 10:06
(74) petrov_al, пользовательский режим используется для вывода только потому, что других способов вывести для анализа нужные данные еще не знаю. Аудиторию бухгалтеров и операторов баз данных охватить в мои планы не входило. Конфигуратор, конечно, нужно еще подучить. Но альтернативные методы получения нужной для анализа информации тоже должны быть изучены.
# Ответить
76. astonvilla 02.02.2012 14:02
Однозначно одна из полезнейших разработок...
# Ответить
77. amiralnar (файл скачал) 02.02.2012 16:35
(72) bambr1975, Большое спасибо за подсказку на обработку! Это как раз то, что мне было нужно.
# Ответить
78. vikorn 03.02.2012 09:35
Полезно. Спасибо
# Ответить
79. Magister (файл скачал) 03.02.2012 09:40
Приятно видеть такие разработки :)
А про объединение ещё не думали? Как замену функционалу конфигуратора?
Ответили: (80)
# Ответить
80. bambr1975 03.02.2012 09:46
(79) Magister, ридер - от слова "читать". Подразумевалось, что те, кто ищет альтернативный разбор форм - как Вы в своих комментариях к CFU-ридеру, найдет для себя что-то подходящее. Замена конфигуратору не планировалась.
Ответили: (81) (132)
# Ответить
81. Magister (файл скачал) 04.02.2012 04:31
(80) Понял, спасибо за ответ.
# Ответить
82. Batman (файл скачал) 05.02.2012 14:38
спасибо, отличная разработка
# Ответить
83. lexa12345 05.02.2012 20:12
Спасибо, очень полезная вещь.
# Ответить
84. SSO 06.02.2012 12:09
Отличный и удобный механизм. Очень помогает когда есть множество изменений в форме. Спасибо.
# Ответить
85. svbel85 06.02.2012 15:28
видно, что проделана большая работа, но не повторяет ли механизм этой обработки, механизм сравнения конфигуратора???
Ответили: (86)
# Ответить
86. bambr1975 06.02.2012 16:06
(85) svbel85, на самом деле - такая видимость действительно имеет место быть. И если у Вас нет потребности расширить имеющиеся механизмы и развить их в нужном для Вас направлении - обработка не для Вас. На возможности сравнения форм конфигуратором Вы, к сожалению, повлиять не сможете, а тут - проявить немного фантазии и... может быть, узнаете что-то новое для себя.
# Ответить
87. fanilya 06.02.2012 16:24
Сравнениефайлов.СпособСравнения=СпособСравненияФайлов.ТекстовыйДокумент;
При попытке показать различие в табличном документе, он вызывает исключение - а при вызове исключения там ищется файл text (как для модулей объектов). Просто не предусмотрел потребность в сравнении табличных документов. Макеты-то сами из дерева объектов можно вызвать по-одиночке. Согласен, надо доработать. Вот, по поводу фильтра Вы мне тоже сказали, глюк с привязками показали - отдышусь - и все исправлю.
# Ответить
88. fap82 08.02.2012 09:02
Разработка весьма полезная, если не сказать очень полезная,Стандартные механизмы не позволяют анализировать формы и макеты, бывает сложно понять что же изменилось.Отличная работа.+
# Ответить
89. yalo (файл скачал) 08.02.2012 13:07
Супер экономии времени при обновлении. Спасибо!!
# Ответить
90. yalo (файл скачал) 08.02.2012 13:07
Экономия времени при обновлении. Спасибо!!
# Ответить
91. Usc 08.02.2012 13:24
Спасибо, очень помогло. а дальнейшее развитие будет ?
Ответили: (92)
# Ответить
92. bambr1975 08.02.2012 13:45
(91) Usc, конечно, было бы здорово довести дело до чего-то более практичного. То, что требует простой доработки напильником - будет реализовано в ближайшее время. Мне пока что не определиться с тем - в каком виде будет получаться информация на выходе. Поможете в этом "ступоре идей"?
# Ответить
93. StronG-X 08.02.2012 14:18
Оболденная вещь, спасибо большое
# Ответить
94. pumbaE (файл скачал) 08.02.2012 15:13
Вариант: пустая база анализирует параметры командной строки и допустим если передается 2 пути к файлам выводить их diff (erf, epf, mxl) неважно. В этом случаи можно для svn написать скрипт, что эти файлы сравнивать с помощью определенной программы.

Особенно будет прикольно для клюшечников - посмотреть визуально различия в mxl файле...
# Ответить
96. commo 10.02.2012 14:02
хорошая весчь спасибо
# Ответить
97. Yasen (файл скачал) 10.02.2012 16:24
Спасибо
# Ответить
98. Artemuch2 10.02.2012 19:58
Ну с удовольствием бы протестировал функционал и поставил плюс и содержательный комментарий. Из за этого ретинга приходится всякую ерунду писать что бы скачать обработку. Неужели инфостарту это реально нужно?
# Ответить
99. владимирп (файл скачал) 11.02.2012 20:43
Дошли руки попробовать. Задумка очень нравится, но произошло: {Форма.Форма.Форма(1111)}: Значение не является значением объектного типа (ВидМетаданных)ВидМетаданныхОбъекта=СтрокаДереваМетаданных.ВидМетаданных;
Это выдала машина. В чем может быть причина? Пытался просмотреть свою конфигурацию УПП, но измененную
Ответили: (100) (108) (111)
# Ответить
100. bambr1975 11.02.2012 23:34
(99) владимирп, единственное, что приходит в голову - это то, что в конфигурациях с версии 8.2.14 появились новые виды метаданных - обработка их еще не учитывает. Буду работать в этом направлении.
Ответили: (102)
# Ответить
101. alitvin 11.02.2012 23:50
Крутейшая вещь!!!
# Ответить
102. владимирп (файл скачал) 12.02.2012 10:12
(100) bambr1975,
Спасибо за ответ, да я тоже думаю, что дело в новых объектах. Буду ждать результата!!!
# Ответить
103. Oleg1708 (файл скачал) 13.02.2012 17:06
Спасибо. Последний релиз поддерживает? Что с новыми объектами?
Ответили: (108)
# Ответить
104. AlexO (файл скачал) 14.02.2012 02:05
(0) а можно изменения обработки освещать на главной странице - в виде upd: что-то.
Или хотя бы как-то выделять в комментариях - чтобы ориентироваться, когда было изменение функционала (доработка), а когда - смена описания на главной странице.
Ответили: (108)
# Ответить
105. SinglCOOLer (файл скачал) 14.02.2012 15:08
При сравнении двух ЗиУП (ЗиУП 2.5 и ЗиУП КОРП) вылетает следующее
{Форма.Форма.Форма(1720)}: Значение не является значением объектного типа (Имя)
Поз=Найти(Ячейка.Имя,"C");

Дерево не строится. Если нажать вручную Перестроить, сравнение появляется, но почему то говорит различаются только РС и Документы хотя при типовом сравнении различается вся конфа.
Ответили: (108)
# Ответить
107. alexer 15.02.2012 17:03
что ж, отличная вещь, плюсану, тем более что здесь есть часть моего труда
Ответили: (108)
# Ответить
108. bambr1975 16.02.2012 06:51
(104)Обновлено. Добавлена возможность анализа и сравнения внешних отчетов. Измененные файлы выводятся в дерево сравнения окрашенными строками в зависимости от изменения размера сравниваемых файлов. (99),(103)Учтены изменения в количестве видов метаданных, появившихся в конфигурации с версии платформы 8.2.14.(105)Ошибка исправлена.

(107) alexer, Ваш кропотливый и качественный труд действительно произвел на меня сильное впечатление. Большое Вам спасибо за обозначенные ориентиры.
+ 1 [ MRAK; ]
# Ответить
109. azmon (файл скачал) 16.02.2012 06:58
а на 8.2.15 работает?
Ответили: (111)
# Ответить
110. WendyH (файл скачал) 16.02.2012 07:37
Чем удобнее вывод о сравнении объектов, тем эта вещь будет полезнее. Так что начало очень хорошее и надеюсь проект вырастет в что-то незаменимое. Автору респект. Недавн, всё-таки, выручила эта работа.
# Ответить
111. bambr1975 16.02.2012 09:14
(109) azmon, тестировалось на 8.2.15.294. Проблема в распаковке, описанная в (99) проявлялась только на тех конфигурациях, где в дерево метаданных были добавлены объекты в ветку "Внешние источники данных" или в ветку "Общие реквизиты". Любые другие конфигурации/обработки/обновления проблем в распаковке не вызывали.
# Ответить
112. vasiliy_b (файл скачал) 16.02.2012 21:48
Заметил такой глюк, если в сравнении файлов начать работать без мышки, то 1С вываливается без ошибок.
# Ответить
113. bambr1975 16.02.2012 22:01
А что нужно сделать, чтобы ЭТО воспроизвести? Выткнуть мышку или нажать кнопку на клавиатуре? Делал и то и другое - и на 8.2.13 и на 8.2.15... Может, у Вас нестабильный релиз платформы или какие другие совокупности влияющих обстоятельств? Неужели действительно есть подозрение, что это вина моей обработки?
# Ответить
114. vasiliy_b (файл скачал) 16.02.2012 22:14
Повторилось на двух последних платформах. Последовательность следующая: Сравниваю 2е конфы, дальше открываю дерево сравнения файлов(раздел общие) и начинаю по списку их раскрывать подряд и по ним дважды мышкой щелкать... на каждом говориться что файлы идеентичны... далее мне это надоедает и я начинаю работать клавой стрелка вниз, вправо, ентер.... приехали обработка закрывается ни чего не сказав. второй раз даже стала ругаться что какой-то файл не может удалить(видимо чистит кэш), т.к. он заблокирован.
Ответили: (115)
# Ответить
115. bambr1975 16.02.2012 23:12
(114) vasiliy_b, во вчерашнем апдейте эта проблема частично решена - визуально теперь и так понятно, какие файлы идентичны. Так что лучше не мучать платформу количеством вызовов, а вызывать только измененные файлы.
# Ответить
116. phosphorror 19.02.2012 13:42
Вот это действительно пригодится в жизни!
# Ответить
117. Alexey55 (файл скачал) 20.02.2012 15:18
Спасибо огромное! полезнейшая вещь! +++++
# Ответить
119. Zas1402 21.02.2012 10:28
(3) BalVlad,
очень нужная вещь
# Ответить
120. oleg974 (файл скачал) 21.02.2012 11:16
Для сравнения форм мне больше подходит типовая галочка "Показывать различия графически" при формировании отчета о сравнении...
Все очень подробно и с картинками :)
Файлы отчетов и обработок отлично сравнивает типовая "Сравнить файлы"...

А вот за возможность сравнить *.cf и *.cfu ОГРОМНОЕ СПАСИБО!

Раньше приходилось держать одну чистую конфу и на нее накатывать обновление чтобы получить cf нового релиза, а тут опана и сразу сравнивай...
Мог бы еще пару раз плюсанул.
# Ответить
121. oiv 22.02.2012 10:21
Очень полезная разработока.
# Ответить
122. Aron23 (файл скачал) 22.02.2012 14:57
Это однозначно (+). Оченб полезная фича.
Спасибо.
# Ответить
124. yalo (файл скачал) 28.02.2012 15:54
Возможно ли с помощью данной обработки сравнить правила обмена в типой конфигурации и измененной?
Пробовала сравнивать, но сами правила обмена через данную обработку открываются в неизвестном формате. Или я что-то не так сделала?
# Ответить
125. dyh (файл скачал) 29.02.2012 10:41
Надеюсь облегчит жизнь в бесподдержной бескомментарной бухии 2.0.30
# Ответить
126. bambr1975 04.03.2012 21:10
Обновлено.
Исправлена ошибка в алгоритме сравнения измененных файлов (касается изменений модулей форм).
Доработано сравнение элементов формы - изменения учитываются поэлементно - можно просмотреть значения изменений в свойствах.
Расширены возможности фильтра сравнения.
Опционально добавлен "Hard" режим для вывода в дерево реквизитов, табличных частей и пр. (на хитрых конфигурациях обработка при разборе в "Hard" режиме может зависать - сообщайте название - буду исправлять)
# Ответить
127. Boroda (файл скачал) 04.03.2012 22:39
Очень полезный инструмент! Как я его раньше не увидел... Очень пригодился бы для анализа. Спасибо автору!
# Ответить
128. bambr1975 10.03.2012 21:56
Обновлено. По просьбе pumbaEдобавлен режим 3-way diff. Работает, вызывая внешнюю программу сравнения файлов, поддерживающую 3-х уровневое сравнение (из бесплатных - KDiff3и SourceGear DiffMerge). Для корректной работы с кирилицей в именах файлов качайте последние версии.
На данный момент - сравнение только текстовое - причем для форм раскраской строк анализируются как изменения в модулях, так и изменения в диалогах - а на сравнение выводятся только файлы модулей. Обращайте внимание.
# Ответить
129. pumbaE (файл скачал) 12.03.2012 17:41
Спасибо, большое!
# Ответить
131. Kaperang (файл скачал) 22.03.2012 12:26
Шикарная обработка!!!
Но позволяет, насколько я понял, только просматривать/сравнивать метаданные конфигурации. Возможность изменения метаданных вручную/по произвольному алгоритму и последующей запаковки обратно в .cf отсутствует.
Ответили: (132)
# Ответить
132. bambr1975 22.03.2012 12:37
(131) Kaperang, Вы правильно поняли. Это уже было сказано в (80).
# Ответить
133. genayo (файл скачал) 27.03.2012 17:17
Полезная обработка, подчерпнул несколько интерсных идей. Дальнейшее развитие функционала планируется?
Ответили: (134)
# Ответить
134. bambr1975 27.03.2012 17:33
(133) genayo, наращивание аналитических способностей и быстродействия - планируется... Идеями поделитесь?
# Ответить
135. genayo (файл скачал) 27.03.2012 18:06
Из функционала хотелось бы наличие возможности сравнения не просто модулей объектов/форм, а сравнение конкретных обработчиков событий. По быстродействию вроде особых вопросов нет, V8Unpack ускорить врядли удастся. Если только в качестве парсера использовать не VBScript.RegExp а какую-нибудь специализированную внешнюю компоненту...
Ответили: (136)
# Ответить
136. Magister (файл скачал) 29.03.2012 18:57
(135)
V8Unpack ускорить врядли удастся

Да ладно вам. Более быстрый распаковщик сделать достаточно несложно.
Ответили: (137) (138)
# Ответить
137. bambr1975 29.03.2012 19:01
(136) Magister, ну и????? Желание написать более быстрый распаковщик не пропало?
Ответили: (139)
# Ответить
138. genayo (файл скачал) 29.03.2012 19:10
(136) Может и не сложно, но за 3 года никто так и не написал почемуто... Ладно, попробую исходники эксперту по плюсам послать, может и найдет чего оптимизировать...
Ответили: (139)
+ 1 [ bambr1975; ]
# Ответить
139. Magister (файл скачал) 30.03.2012 00:59
(137) Попытаюсь завтра найти свои наработки. Насколько помню, распаковку я делал - только довел до ума, или нет, не помню. Если есть что-то стоящее - выложу.

(138) Потому что никому не нужно было.
# Ответить
140. Magister (файл скачал) 31.03.2012 02:52
Нашел я свою программу, чуть доделал. Получилось быстро :)
Ну вот например:
УТП для Украины, конфигурация поставщика.
V8Unpack: 59 секунд
Мой парсер: 18 секунд.
Как вам?
Файлик прикрепляю.

Программе можно передать параметром файл .cf, она его распакует перед открытием формы.
Ответили: (141)

Прикрепленные файлы:

showpack.zip
+ 1 [ bambr1975; ]
# Ответить
141. bambr1975 31.03.2012 13:30
(140) Magister, спасибо за доверие! Заготовка очень многообещающая.
Скорость распаковки, правда показалось немного нестабильной и есть проблемы при распаковке форм.
Например, при сравнении результатов распаковки V8Reader-а и Вашей программмы, видны такие проблемы:

Причем они далеко не единичны:

На счет
Потому что никому не нужно было.
- зря вы так...
Главное - начать...
Ответили: (142) (143)
# Ответить
142. Magister (файл скачал) 31.03.2012 13:50
(141) Скорость распаковки может быть нестабильной в зависимости от ОС. У меня используется отображение файлов в память, соответственно скорость тут зависит во многом от количества свободной памяти и состояния дискового кэша.
По поводу проблем - можете дать тестовый пример?

А на счет
- зря вы так...
Главное - начать...

Тут мне кажется, что просто не было нормального применения распаковке - соответственно, зачем делать?
Теперь вот есть ваша разработка, уже практический смысл появился :)
# Ответить
143. Magister (файл скачал) 31.03.2012 14:07
(141) Хм, сам уже нашел проблемную форму. Буду разбираться.
Ответили: (144)
# Ответить
144. pumbaE (файл скачал) 31.03.2012 14:17
(143) Magister, причем по логам вроде как форму находит:
- file form, created 19.06.2011 21:54:46, modified 19.06.2011 21:54:46
Ответили: (145) (151)
# Ответить
145. Magister (файл скачал) 31.03.2012 20:26
(144) Видел. Программа находит, но не может распаковать. Похоже где-то с адресами ошибся при сборке данных по блокам.
Найду время, поправлю...
# Ответить
146. Alex353 (файл скачал) 01.04.2012 20:04
Обработка не анализирует цвета текста и цвета фона элементов и не показывает в различиях.
Ответили: (147)
# Ответить
147. bambr1975 01.04.2012 20:13
(146) Alex353, а по моему, анализирует - и сравнить можно...(см. скриншот) Или Вам важно получить отличия в каком-то другом виде?
Ответили: (148)

Прикрепленные файлы:

2012-04-01_201222.jpg
+ 1 [ Alex353; ]
# Ответить
148. Alex353 (файл скачал) 02.04.2012 12:06
(147) bambr1975, Да прошу прощения, на это окно не обратил внимания. Я имел ввиду в сравнении кода генерации форм нет различий, поэтому я руками добавлял строки следующего вида:
Надпись.ЦветТекста = Новый Цвет(153, 51, 0);
Ответили: (149)
# Ответить
149. bambr1975 02.04.2012 15:22
(148) Alex353, а куда и зачем Вы их добавляли?
P.S. Моя обработка имеет крайне отдаленное отношение к задаче декомпиляции форм - так что автоматизированное получение этих строк - это не ко мне...
Задачи анализа и сравнения - это да, мое. А всяческая автоматизация получения кода чего либо... приходится довольствоваться заимствованным...:)
Ответили: (150)
# Ответить
150. Alex353 (файл скачал) 02.04.2012 16:19
(149) bambr1975, я прочитал статью http://infostart.ru/public/67729/ и решил опробовать на деле рекомендации по декомпиляции формы и переносу реквизитов формы путем генерации элементов в коде. Я сравнивал формы типовой и модифицированной конфигурации для того чтобы добавленные мной реквизиты выводить на форму кодом, так поддерживать конфигурацию будет проще при обновлениях. В статье упоминается другая обработка, но я понял, что ваша основана на ней и подобных. Я пересмотрел несколько обработок и все они не могут выполнить свою задачу в полном объеме. Мне попалась только одна обработка декомпиляции которая видит свойство Данные объекта ПолеВвода, но в любом случае объем ручной работы не так велик.
# Ответить
151. Magister (файл скачал) 03.04.2012 00:38
(144)
Вот поправил распаковку.
Также по кнопке "Analyze" сделал вывод и составных объектов тоже (можно развернуть, например форму - внутри будет form и module).
Ответили: (152)

Прикрепленные файлы:

showpack.zip
+ 1 [ bambr1975; ]
# Ответить
152. bambr1975 03.04.2012 09:50
(151) Magister, с очевидной проблемой Вы справились (kDiff это подтверждает). Но заявленных Вами 18 секунд распаковки УПП мне, к сожалению, зарегистрировать не удалось (см. скриншот). УТП у меня, к сожалению, нет - но и УТ Вашим просмотрщиком распаковывается дольше, чем вы утверждаете...
Ответили: (153) (154)

Прикрепленные файлы:

2012-04-03_093007.jpg
# Ответить
153. Magister (файл скачал) 03.04.2012 11:22
(152) А сравните с V8Unpack.
18 секунд на УТП - это второй запуск, когда сам .cf уже закеширован Windows.
У меня на ноуте сейчас получается, что ограничивающим фактором является скорость дисковой подсистемы, а не процессора.
А про 18 секунд на УТ я не утверждал, т.к. у меня её просто нет. Ну и скорость Вашего компьютера мне тоже неизвестна.
---
Вобщем, сравните с V8Unpack.
Ответили: (216)
# Ответить
154. Magister (файл скачал) 03.04.2012 11:36
(152) И да, я про УПП ничего не говорил. Только про УТП для Украины - а она намного меньше, чем УПП.
# Ответить
155. pumbaE (файл скачал) 03.04.2012 12:55
УТП - 78 секунд, по ощущениям быстрее чем unpack, но замеров точных не производил.
18 секунд на УТП - это второй запуск, когда сам .cf уже закеширован Windows.
Если честно непонятно зачем второй раз запускать, если необходимо распаковать и проанализировать результат... То, что второй раз 18 сек конечно хорошо, только я не могу придумать применения, для второго раза.

можно попросить вас сделать консольный вариант, хотелось бы на реальных задачах попробовать - встроить в v8Reader 2 варианта распаковки?

Правильно ли я понимаю, что у вас используется in-memory технология, и если вдруг при распаковке большой конфигурации зайдем в своп, то скорость уменьшиться значительно?
Ответили: (156)
# Ответить
156. Magister (файл скачал) 03.04.2012 14:41
(155) Именно консольную? Зачем? Может хватит сделать просто "тихий" режим, без открытия вообще любых окон?
Второй раз - ну, это я просто тестировал собвственно распаковку, потому запускал несколько раз. А потом уже проводил сравнение - соответственно, в кэше данные остались.

Правильно ли я понимаю, что у вас используется in-memory технология, и если вдруг при распаковке большой конфигурации зайдем в своп, то скорость уменьшиться значительно?

Сейчас память используется далеко не оптимально. Это ведь черновик :)
На данный момент программа держит в памяти упакованные данные и распакованные данные одновременно, до момента закрытия программы. Для самой распаковки это не нужно - просто так было быстрее сделать.
В нормальном варианте память будет использоваться не сильно - думаю, не более размера .cf, умноженного на два.
Ответили: (157)
# Ответить
157. pumbaE (файл скачал) 04.04.2012 18:28
(156) Magister,
Может хватит сделать просто "тихий" режим, без открытия вообще любых окон?
давайте так, но при этом тогда хотелось бы еще и указывать в параметрах командной строки куда и в какую папку распаковывать...

Хотелось бы, конечно иметь альтернативу для v8unpack.
Ответили: (158)
# Ответить
158. Magister (файл скачал) 06.04.2012 14:03
(157)
Т.к. программа приняла более-менее нормальный вид и функциональность, выложил публикацией: http://infostart.ru/public/124213/
+ 1 [ bambr1975; ]
# Ответить
159. bambr1975 28.04.2012 08:11
Обновлено.Исправлены ошибки.
Специально для сравнения форм в проекте "Снегопат" - snegopat.ru по инициативе pumbaE добавлен новый режим выбора объекта "Режим ssf" - можно сравнить файлы форм снегопата.
В навигаторе файлов появилась колонка "Размер", с возможностью сортировки по ней (для определения наиболее "массивных" составляющих конфигурации).
Добавлено "кэширование" сформированных деревьев метаданных (при включенном "кэшировании" дерево файла конфигурации, которую уже хотя бы раз разбирали - будет построено из кэша).
Панель "Свойства" отделена от формы "Разбор элементов форм" - вызывается двойным щелчком по дереву элементов формы
В панели "Свойства" выводятся и свойства, и привязки, и обработчики событий элемента, причем в режиме сравнения - щелчок по строке различающихся действий выводит окно сравнения текстов-обработчиков.
На вкладке "Модуль" формы "Разбор элементов формы" - появилось табличное поле структурных различий процедур и функций модуля. Аналогично - двойным щелчком выводится окно сравнения их текстов.
Новая функция - "Декомпиляция изменений" - тестовый вариант.
Значительно увеличилась скорость разбора форм!!!!!
Ответили: (161)
# Ответить
160. slavich (файл скачал) 04.05.2012 14:05
Плюс и только плюс, жалею только одно, что не видел эту обработку два месяца назад, обновлял конфу, очень сильно переписанную, но хотя хоть как нужно еще 4 обновления накатить, так что +++++.
# Ответить
161. AlexO (файл скачал) 04.05.2012 15:16
(159) bambr1975,
так и не увидел описание функции "Декомпиляция изменений"....
:(
Ответили: (162)
# Ответить
162. bambr1975 04.05.2012 15:28
(161) AlexO, ну... вас порядок действий интересует? Или смысл этой функции вообще? Если смысл понятен - то и результат тоже будет понятен. Гиперссылка вызова этой функции вроде не спрятана - находится в строке навигации по изменениям элементов форм (естественно, будет видна только в режиме сравнения). Само сравнение форм можно вызвать либо из строки дерева сравнения объектов метаданных, либо - в режиме ssf - открывается по умолчанию. Надеюсь, если Вы попробуете, Вам все станет понятнее...
Ответили: (164)
# Ответить
163. Magister (файл скачал) 04.05.2012 16:01
"Режим ssf" - можно сравнить файлы форм снегопата.

А что за ssf такой? Я сходу не нашел нигде. Дайте, пожалуйста, ссылочку почитать.
Ответили: (165) (166)
# Ответить
164. AlexO (файл скачал) 04.05.2012 17:07
(162) bambr1975,
да я как бы сам термин не до конца понимаю - и отсюда вопрос, для чего эта функция? :)
Т.е. это так названо визуализация отличий форм при сравнении?
Ответили: (167) (175)
# Ответить
165. pumbaE (файл скачал) 04.05.2012 17:08
(163) Magister, это файлы форм для скриптов снегопата , там такое же внутреннее представление формы, только без отдельного файла заголовка.
Ответили: (170)
# Ответить
166. AlexO (файл скачал) 04.05.2012 17:08
(163) Magister,
видимо, ssf - это формат скриптов для Снегопата...
# Ответить
167. pumbaE (файл скачал) 04.05.2012 17:10
(164) AlexO, нет вы можете не добавлять на форму реквизиты, исправлять привязки а просто скопировать код и вставить его как вызов отдельной процедурой в "ПриОткрыти", по факту изменения в форме у вас будут только в модуле формы.
Ответили: (168) (175)
# Ответить
168. AlexO (файл скачал) 04.05.2012 17:13
(167) pumbaE,
а, т.е. обработка умеет "читать" не только ЭУ, но и научилась пониамть код в ПриОткрытии формы, откуда потом "воспроизводит" программные ЭУ этой формы? Или снова не то?
# Ответить
169. pumbaE (файл скачал) 04.05.2012 17:19
нет, у вас есть различия в формах, в теории эти различия можно программно сделать, т.е. есть типовая форма и добавленный какой либо элемент на форму вами или исправленный (представление), т.к. формы не часто меняются, то с помощью данного инструмента вы можете сформировать код для программного добавления/изменения элементов формы и вручную прописать в его (куда вы его пропишите уже от вас зависит). При следующем обновлении конфигурации, если форма не изменялась то и вам не надо будет никаких изменений вносить в форму, модуль формы, конечно будет изменен, но изменения модуля легче понять, чем визуально искать изменения в представлении формы.
Ответили: (170) (171)
# Ответить
170. Magister (файл скачал) 04.05.2012 17:24
(165) Спасибо, понял.
(169) Реквизиты формы все равно не добавляются, так что только модулем не всегда получится обойтись. Или нашли уже способ?
Ответили: (172) (173)
# Ответить
171. AlexO (файл скачал) 04.05.2012 17:51
(169) pumbaE,
если форма не изменялась то и вам не надо будет никаких изменений вносить в форму, модуль формы, конечно будет изменен, но изменения модуля легче понять, чем визуально искать изменения в представлении формы.

ну, т.е. все-таки обработка сравнивает две формы по методу "реальная форма + программные элементы" ))
Объясняю, почему пытаюсь прозрачно все уяснить.
Андрей пишет для себя, и понимает, зачем ему нужно то или то-то, но в описании не всегда все есть - а многие даже возможность того или иного действия над формами не обдумывали, поэтому и не ясно, что когда есть некая функция - а для чего она, собственно, реализована в обработке-то? ))
Ответили: (175)
# Ответить
172. pumbaE (файл скачал) 04.05.2012 17:53
(170) Magister, обходной способ: для частного случая, при использовании общих реквизитов, общий реквизит неявно добавляется в форму.

p.s.: личный совет снегопат стоит своих денег.
# Ответить
173. AlexO (файл скачал) 04.05.2012 17:53
(170) Magister,
Реквизиты формы все равно не добавляются

я думаю, мы с вами не до конца понимаем, о чем речь - поэтому я и прошу прозрачно разъяснить, из каких соображений появилась то-то или то-то - ведь не все думали именно в том же русле, что и автор обработки :)
# Ответить
174. pumbaE (файл скачал) 04.05.2012 18:12
AlexO, код формируется для реальной формы, без учета программного добавления элементов в форму. (мы то читаем cf, epf и т.д.).
# Ответить
175. bambr1975 05.05.2012 10:10
(164),(171) AlexO,
да я как бы сам термин не до конца понимаю - и отсюда вопрос, для чего эта функция? :)

Термин "Декомпиляция форм" был придуман не мной, как и сам алгоритм декомпиляции форм вообще... Источники использованного алгоритма - в описании указаны. Могу, специально для Вас их продублировать (Декомпилятор форм, Декомпиляция и анализ форм с декомпиляцией кода формы , Декомпиляция элементов формы для 8.2 для обычных форм (не управляемых)).
Функция непосредственно самой декомпиляции (в виде получения программного кода изменений и в виде визуализации анализируемой формы)используется в обработке только как бонус, - меня, все-таки, больше интересовал именно АНАЛИЗ и СРАВНЕНИЕ элементов, реквизитов и модулей форм - а для анализа и сравнения использовалась идея деструктивного анализа форм ( теоретическая база , Деструктивный анализ) и идея получения списка реквизитов форм и определения ее основного реквизита (Получение массива имен реквизитов обычной формы и имя ее основного реквизита).
Если Вам необходимо ПРОАНАЛИЗИРОВАТЬ изменение состава и свойств элементов двух форм, - то текст, сформированный функцией "Декомпилировать изменения" является неким "отчетом о сравнении", которому, при желании, можно найти практическое применение (как уже предлагалось в (167)).
Т.е. это так названо визуализация отличий форм при сравнении?

Визуализация формы действительно получается путем программного добавления проанализированных элементов на форму-пустышку. Но "Декомпиляция изменений" - это программный код только измененных свойств элементов двух форм (сам сформированный текст изменений разбит на четыре блока: "Изменения свойств самой формы" - ширины, высоты и заголовка, "Удаление элементов форм", "Добавление элементов форм", "Изменение элементов форм"). Посмотрите дерево сравнения элементов форм - там видно, какие элементы старой формы в новой не присутствуют (удалены), какие элементы появились в новой форме, но их не было в старой (добавлены), а какие элементы старой формы изменили свои свойства (изменены).
а, т.е. обработка умеет "читать" не только ЭУ, но и научилась пониамть код в ПриОткрытии формы, откуда потом "воспроизводит" программные ЭУ этой формы?

ну, т.е. все-таки обработка сравнивает две формы по методу "реальная форма + программные элементы" ))

Обработка видит форму такой, какой видит ее конфигуратор (в конфигураторе в режиме просмотра формы никаких "программных элементов" на форме нет). Сравниваются представления форм, такими, какими их видит конфигуратор.
P.S. V8Reader - это обработка для анализа и сравнения, инструмент исследователя, там четко разделены ЭЛЕМЕНТЫ формы, МОДУЛЬ формы и РЕКВИЗИТЫ формы - смешивать все в кучу и искажать смысл, не сделав попытку самому разобраться - все-таки неправильно.
Ответили: (176)
# Ответить
176. AlexO (файл скачал) 05.05.2012 16:30
(175) bambr1975,
я успешно пользуюсь декомпиляцией форм, но смысл (или построение фразы-термина) "декомпиляция изменений" (декомпиляция - "вытаскивание" в обратку визуальных ЭУ как кода, а "декомпиляция изменений" - вытаскивание визуальных изменений как кода?) как-то не укладывается.
Т.е. вы получаете этой функцией отчет (в виде кода) об изменениях визуальных ЭУ при сравнении двух форм? Теперь правильно?
Ответили: (177)
# Ответить
177. bambr1975 05.05.2012 16:46
(176) AlexO, функция "Декомпиляция изменений" выдает отчет - в виде кода, поместив который в процедуру "ПриОткрытии" в старой форме можно добиться ее полного соответствия новой форме по части статических (не добавленных программно) ЭУ (анализируются свойства, привязки и добавленные/удаленные действия). Это правильно.
Ответили: (178)
# Ответить
178. AlexO (файл скачал) 05.05.2012 17:19
(177) bambr1975,
вот теперь все понятно, спасибо ))
# Ответить
179. rybusha (файл скачал) 10.05.2012 11:35
Очень понравилось.Но объясните ,для тех кто в танке."Различаются тлько тексты представления форм"-это что.Показывает для не изменненых объектов
Ответили: (180)
# Ответить
180. bambr1975 10.05.2012 11:51
(179) rybusha, "Отличаются только представления форм" - это гиперссылка, если на нее нажать, станет видно что на физическом уровне файлы форм все-таки различны (изменены некоторые идентификаторы свойств элементов и пр.). По каким причинам форма может измениться таким образом я не знаю... Спонтанно такие изменения не происходят - возможно, это может произойти при реструктуризации таблиц или при работе с буфером обмена. Точно не скажу.
# Ответить
182. Padonak-XXI (файл скачал) 16.05.2012 09:53
(31) Rustig, защиты на основе исключения модулей в комплект поставки не достаточно. На основе V8Unpack была не известным мне автором разработана обработка - декодирование модулей V8. Эта обработка прекрасно вскрывает и декодирует модули с "псевдокодом". Таким же образом обходит установленные пароли на текст.

Дабы не совсем offtop :) Автору МЕГАРеспект! Я давно искал алгоритм + механизм разбора и формирования дерева конфигурации из файлов после V8Unpack.
Есть идея реализовать свой собственный (на базе 1С) SVN-чик с функциями автоматического документирования на основе комментариев. Шаблоны для документирования уже готовы и успешно используются в кодировании, а вот с разбором программного кода сервером при добавлении новой версии в хранилище - затык. Конфигуратор может выгружать только всю конфигурацию в текстовые файлы, и не может выгружать отдельные объекты из конфигурации или внешние обработки или отчеты. А из поставленной задачи это основное.
Еще раз - автору МЕГАРеспект.
# Ответить
183. lion-killer (файл скачал) 24.05.2012 13:30
А где же структурное сравнение модулей объектов? Только в модулях форм нашел.
# Ответить
184. ndacoder (файл скачал) 14.06.2012 10:26
(60), (62) bambr1975,
<< от имени всей медицины ничего Вам сказать не могу. Но V8Unpack.exe - это не совсем мое. Хотелось бы думать, что выход найдется. Наверное, об этом надо написать в комментариях к соответствующей публикации.
>>

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

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

P.P.S.если у кого не распаковывается V8Unpack-ом приму на изучение другими инструменами.
+ 1 [ bambr1975; ]
# Ответить
185. bambr1975 30.06.2012 10:46
Добавлена новая функциональность - анализ и сравнение ролей и ограничений доступа.
За основу формата вывода взята публикация Отчет по системе прав для 8.2 на СКД от Zigfridish
В качестве быстрых отборов при сравнении ролей можно отбирать объекты с измененными правами, объекты с измененными ограничениями доступа. Также обработка позволяет сравнивать изменения в шаблонах ролей и в ограничениях доступа.
# Ответить
186. soulsteps (файл скачал) 30.06.2012 13:31
Большое спасибо! Безупречная обработка!
# Ответить
187. CheBurator 01.07.2012 12:57
Плюс!
# Ответить
188. ShootNICK (файл скачал) 06.07.2012 15:45
Прикольная штучка. Подскажите - как включить (если есть) просто режим сравнения печатных форм. т.е. 2 mxl (не в обработках а standalone)
Ответили: (189)
# Ответить
189. bambr1975 06.07.2012 16:07
(188) ShootNICK, в режиме Предприятие и Конфигуратор в меню Файл есть пункт "Сравнить файлы". Там в поле "Как" можно выбрать вид сравнения "Табличный документ" и сравнивать таким образом 2 mxl. А программно это достигается путем использования объекта встроенного языка "СравнениеФайлов", установив свойство "СпособСравнения" этого объекта в значение СпособСравненияФайлов.ТабличныйДокумент
Ответили: (190)
# Ответить
190. ShootNICK (файл скачал) 06.07.2012 16:10
(189) bambr1975, чОрт и точно =) позор на седины.
# Ответить
191. khaoos (файл скачал) 11.08.2012 20:21
Разработка просто мегакрутая. Обязательно буду пользоваться. Автору мое почтение. Пока только немножко потыкался для ознакомления. Наткнулся на следующие ошибки:
1. Форма "Разбор элементов формы". Нажатие на гиперссылку "Открыть диалоговое окно" приводит к ошибке (см. скриншот). Может быть не принципиально, но это основная форма отчета (на обработках, скажем, ошибку не ловлю). Версия платформы 8.2.14.540. Конфигурация "Инструменты разработчика 2.55", отчет "ирКонсольКомпоновокДанных", Форма "Форма".
2. Небольшая недоработка. При первом запуске, ничего не выбирая, нажимаем на кнопку "Открыть навигатор файлов", получаем исключение, надо б перехватить :).
Ответили: (192)

Прикрепленные файлы:

Ошибка1.png
# Ответить
192. bambr1975 19.08.2012 23:29
Обновлено. Учтены некоторые пожелания пользователей. В частности, при перемещении по дереву метаданных при открытом навигаторе файлов по умолчанию происходит позиционирование на файл выделенной строки. Также для возможности использовать режим ssf для анализа выгруженных платформой 8.3 бинарных файлов форм в процедуру выбора файла формы добавлен фильтр .form.
(191) khaoos, исправления внесены. Однако, признаюсь, что проблема, возникшая у Вас в первом пункте, может у кого-нибудь проявится снова. Дело в том, что визуализация форм реализована исключительно для демонстрации факта, что «все-таки, она вертится!», и сделано это с помощью различных бутафорских трюков, которые, конечно, не полностью компенсируют весь набор заложенного в платформу (к примеру, кнопки стандартных действий и автозаполнение панелей в визуализированной форме отображаются далеко не полностью). Но, я надеюсь, большого неудобства это доставлять не должно. Может, позже станет лучше понятно, каким образом было бы правильнее учитывать эту проблему, но на данный момент – так.
+ 2 [ khaoos; teflon; ]
# Ответить
193. khaoos (файл скачал) 20.08.2012 13:34
bambr1975, подскажи, пожалуйста. Есть ли способ сравнивать объекты метаданных по именам? Например, в моем случае, есть две обработки, в каждой по форме "ФормаДокумента" (которые были получены перетягиванием из разных мест, соответственно, с разными УИДами). Хотел было сравнить и декомпилировать изменения, но застопорился. Может чего очевидно не вижу?
Ответили: (194)

Прикрепленные файлы:

Сравнение по именам.bmp
# Ответить
194. bambr1975 20.08.2012 14:09
(193) khaoos, сравнение объектов метаданных производится по их синонимам. То есть, для формы объекта конфигураций синонимом является, например, Справочник.Номенклатура.Форма, то есть, если Вы будете сравнивать формы справочника Номенклатура в различных конфигурациях, то V8Reader их сравнит именно по их имени (как Вам этого и хочется). А в случае с внешними отчетами и обработками синонимами будут - соответственно ВнешняяОбработка.Целевая.Форма и ВнешняяОбработка.Типовая.Форма. То есть без изменения V8Reader-а решить вопрос можно просто переименовав имя обработки (не имя файла обработки, а само свойство обработки "Имя"). Мне кажется, это не должно составить затруднений.
Второй способ: В навигаторе файлов найти и запомнить пути к папкам с нужными формами. Выбрать режим ssf. В качестве каталогов распаковки указать эти пути. Нажать на кнопку "Вывести" (в этом случае поле "Файла распаковки" можно не заполнять - оно роли не играет) - будет произведено сравнение именно этих, выбранных Вами форм.
Ответили: (195) (196)
# Ответить
195. pumbaE (файл скачал) 20.08.2012 17:10
(194) bambr1975, может сделать как в снегопате в extfiles - добавить подменю с командой "Добавить к сравнению" и если на двух формах подряд клацнуть, то и вызвать сравнение этих форм?
Ответили: (213)
# Ответить
196. khaoos (файл скачал) 20.08.2012 18:38
(194) bambr1975, спасибо, завтра опробую в боевых условиях :)
# Ответить
197. khaoos (файл скачал) 21.08.2012 10:48
Вот еще что накопал: при декомпиляции формы вместо свойства "ГоризонтальноеПоложение" элемента формы (если важно, то у меня "переключателе" проявляется) еще раз выводится "ВертикльноеПоложение":

Переключатель.Заголовок = "Банковским переводом";
Переключатель.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Переключатель.ВертикальноеПоложение = ВертикальноеПоложение.Центр;
Переключатель.ПоложениеЗаголовка = ПоложениеЗаголовка.ЗаголовокСправа;
Ответили: (198)
+ 1 [ bambr1975; ]
# Ответить
198. bambr1975 21.08.2012 11:48
(197) khaoos, спасибо - действительно, в макете "СвойстваПолеВвода" непонятно откуда появилась вторая строка "ВертикальноеПоложение". Она там не нужна. Исправлю обязательно. Чуть позже (может, еще что-нибудь найдете...). (свойство ГоризонтальноеПоложение в отчет декомпиляции изменений выводится, но только тогда, когда его значение не равно Прижать влево или Авто). Пока что - если Вам не трудно, у себя поправьте сами.
# Ответить
199. khaoos (файл скачал) 21.08.2012 12:00
Если достанет, то поправлю :). Да, и у меня действительно "левый" случай, так что все ОК тогда. Еще косметическое улучшение надо: в декомпиляции изменение свойств каждого элемента отчеркивается звездочками, кроме первого, который смешивается с добавлением элементов. Еще пока сам не понимаю, что делать с порядком обхода, который не выводится в изменениях, но в моем случае (переключатель) он важен. Пока бодаюсь.
# Ответить
200. khaoos (файл скачал) 21.08.2012 13:22
Еще вопрос. Свойство элемента управления формы "Данные" принципиально не заполняется в анализе формы? Или это ошибка? Соответственно и в декомпиляции тоже? Уточнение, если важно: форма внешней обработки.
Ответили: (202)
# Ответить
201. khaoos (файл скачал) 21.08.2012 13:48
Нужно ли писать замечания следующего рода? При декомпиляции изменении выходят строчки кода добавления кнопки подменю командной панели в следующем порядке:

Кнопка.Подсказка = "Подсказка";
Кнопка.Пояснение = "Пояснение";
Кнопка = ЭлементыФормы.ПодменюЗаполнить.Кнопки.Добавить("ДобавляемаяКнопка",ТипКнопкиКоманднойПанели.Действие,"",Новый Действие("ДобавляемыйОбработчик"));

То есть атрибуты кнопки задаются раньше, чем сама кнопка определяется :)

Добавлено: и, кстати, также пропущено название командной панели. Должно быть:
Кнопка = ЭлементыФормы.КоманднаяПанельНапример.Кнопки.ПодменюЗаполнить.Кнопки.Добавить...
Ответили: (203)
# Ответить
202. bambr1975 21.08.2012 13:57
(200) khaoos, свойство элемента управления "Данные" в анализе формы заполняется. И в декомпиляции формы тоже заполняется. Единственное, что - для отладки в отчете "Декомпиляция изменений" оно закоментировано, поскольку проверить существование соответствующего реквизита на закладке формы "Реквизиты" и добавить его в случае необходимости может только сам разработчик вручную. Если у Вас есть пожелание, выводить эту строчку в незакомментированном виде - внесу изменения. Что касается порядка обхода - уже готова версия с его выводом. У меня переключатель в группу переключателей добавился корректно.
Как только будет понятно, что Вы имеете в виду про:
Свойство элемента управления формы "Данные" принципиально не заполняется в анализе формы?

и нужно ли раскомментировать строчку с установкой этого свойства в отчете Декомпиляция изменений - выложу новую версию.
# Ответить
203. bambr1975 21.08.2012 13:57
(201) khaoos, это тоже уже исправлено
Ответили: (205)
# Ответить
204. khaoos (файл скачал) 21.08.2012 14:06
"Свойство элемента управления формы "Данные" принципиально не заполняется в анализе формы?"
Я в том смысле, что по каким-либо причинам это невозможно сделать в принципе. Но из ответа я понял, что возможно :). У меня в анализе формы не заполняется. Во всех элементах формы пусто. Так что и декомпиляции у меня даже закомментированной строчки нет. Повторюсь, именно для внешней обработки. Платформа 8.2.15.319.

Добавлено: сейчас еще конфигурацию развернул - тоже не заполняет "Данные"
Ответили: (213)
# Ответить
205. khaoos (файл скачал) 21.08.2012 14:15
(203) bambr1975, а также в методе Добавить коллекции кнопок не передается текст кнопки и он не устанавливается далее
# Ответить
206. SkorikA (файл скачал) 28.08.2012 07:11
Спасибо очень полезная обработка! Сейчас посмотрю и скажу о найденных ошибках:)
Пока только одно: я бы добавил чтобы при сравнении макетов, в том случае, если это не текстовый и не табличный документ выводить сообщение вида "Сравнение файлов не поддерживается!" вместо ошибки выполнения. Исправление не сложное, но в целом добавило бы большее ощущение законченности обработке.
Ответили: (207)
# Ответить
207. bambr1975 28.08.2012 10:41
(206) SkorikA, сравнение макетов (если это не табличные макеты) текстовое - возможно, имеет смысл пытаться сравнивать макеты, упакованные в виде двоичных данных только после из извлечения из формата base64...(если и сделаю, то позже). Сравнивать макеты схемы компоновки данных и макеты оформления компоновки данных, в текстовом формате в некоторых случаях все-таки имеет смысл. Но - честно говоря, не совсем понятно, сравнивая какие макеты можно получить "Ошибку выполнения"? Поясните, пожалуйста, что Вы имели в виду.
Ответили: (208)
# Ответить
208. SkorikA (файл скачал) 29.08.2012 10:52
(207)Немного не правильно сформулировал. Под "ошибкой выполнения" я понимаю "ошибку во время выполнения", а именно следующее окно (см. вложение). В данном случае это у меня 2 макета СКД.
Номер строки не совпадает т.к. на текущий момент я для себя это поправил добавив еще один блок "Попытка..Исключение".

p.s. Идея доделать их сравнение в целом нравится:)
Ответили: (213)

Прикрепленные файлы:

рис1.jpg
# Ответить
209. babys (файл скачал) 04.09.2012 15:49
"Тут, эта, как его, не работает, начальника". В части "анализ и сравнение ролей и ограничений доступа" при нажатии на кнопки перехода "Различия в ограничениях доступа (4):" выдаёт вот такое сообщение:
{Форма.ФормаДляРолей.Форма(951)}" Ошибка при вызове метода контекста (Индекс)
     ИндексТекущейСтроки=ТабличноеПолеСравненияРЛС.Индекс(ТекущаяСтрока);
по причине:
Несоответствие типов (параметр номер '1')


PS: И можно, что нибудь с реквизитным составом сделать, а то СтандартныйРеквизит, тяжело понимается.
Ответили: (213)
# Ответить
210. babys (файл скачал) 04.09.2012 15:58
Можно ещё одну кнопочку добавить? Туда форму с версией и ссылкой на место где взять последнюю версию.
Ответили: (213)
# Ответить
211. artbear (файл скачал) 12.10.2012 08:05
Баг - падает 1С :(
1С:Предприятие 8.2 (8.2.15.318), конфигурация Бухгалтерия предприятия, редакция 2.0 (2.0.37.14)
выполняю сравнение 2-х конф для декомпиляции изменений
для справочника Номенклатура добавил 2 реквизита,
в форме списка справочника Номенклатура добавил эти реквизиты в список
режим сравнения 2-х конфигураций (чистой 1С и своей доработанной)
выбираю оба файла, далее кнопка "Распаковать и вывести", далее нахожу изменения (справа), нахожу форму списка,
дважды щелкаю на форме, открывается окно сравнения форм.
И вот здесь нажимаю "Декомпилировать изменения", 1С сразу же падает :(
Баг повторяется 100%.
что делать?
ЗЫ могу выложить оба cf-файла
Ответили: (212) (213)
+ 1 [ CratosX; ]
# Ответить
212. bambr1975 12.10.2012 17:15
(211) artbear, удалось воспроизвести. Там все просто - свойство Данные можно проверять только у элементов, являющихся нессылочными типами значений - иначе падает (для колонки табличного поля, являющегося ссылочным типом значения СправочникСписок проверить не удастся). Поставлю заглушку. Если нужно срочно - обращайтесь в личку. Ближайшее обновление будет не раньше конца следующей недели.
# Ответить
213. bambr1975 01.11.2012 16:20
Исправлены ошибки.

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

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

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

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

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

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

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

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

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

(211) artbear, (204) khaoos, (208) SkorikA, - исправлено, (195) pumbaE, (209) (210) babys, - реализовано
+ 2 [ teflon; khaoos; ]
# Ответить
214. daho (файл скачал) 10.11.2012 11:56
Незаменимая вещь!!!!! Просто супер!!! Если прикрутить к какой нибудь SVN системе вообще конфетка получится для групп разработчиков.!!! Автору Респект и Уважуха!!
# Ответить
215. Alfer 12.11.2012 10:24
спасибо - буду пользоваться
# Ответить
216. yandextesting (файл скачал) 16.11.2012 15:31
В каком-то редком случае (локализовать пока не смог, т.к. при подключении конфигуратора для отладки и установке точки останова на указанной строке наблюдается "висяк" 1С:Предприятия после запуска сравнения прав, а как только конфигуратор закрывается, снова вываливается та же ошибка; это наблюдается только для одной роли) при сравнении прав в режиме сравнения двух конфигураций выдает ошибку:

"{Форма.ФормаДляРолей.Форма(153)}: Ошибка при вызове метода контекста (НайтиСтроки)
МассивНеопределенныхСтрокВторой = ТаблицаПрав.НайтиСтроки(СтруктураОтбора);
по причине:
Неверное имя колонки
"
Ответили: (217)
# Ответить
217. bambr1975 17.11.2012 13:06
(216) yandextesting, скорее всего Вы пользовались произвольным сравнением ролей. Критичная ошибка произвольного сравнения ролей исправлена. Попробуйте - сейчас должно все отработать корректно.
Ответили: (218)
# Ответить
218. yandextesting (файл скачал) 21.11.2012 12:51
(217) "висяк" при подключении конфигуратора для отладки и установке точки останова на указанной строке пропал, но сама ошибка осталась. Могу предположить, что это может быть связано с тем, что в конфигурации используется несколько языков, хотя каким боком не знаю. Что успел раскопать (дальше времени нет):
- после выполнения поцедуры ДостроитьТаблицуДаннымиВторойРоли() в ТаблицаПрав добавлены новые колонки с постфиксом "1", но с пустыми значениями, а после выполнения следующего кода колонки с постфиксом "1" удаляются:

ДостроитьТаблицуДаннымиВторойРоли();
		ИндексКолонки = ТаблицаПрав.Колонки.Количество()-1;
		Пока ИндексКолонки <> 0 Цикл
			Итог = Неопределено;
			Для каждого Нр Из ТаблицаПрав Цикл
				Если Нр[ИндексКолонки]<>Неопределено Тогда
					Итог = Истина;
				КонецЕсли;
			КонецЦикла;
			Если Итог = Неопределено И ТаблицаПрав.Колонки[ИндексКолонки].Имя<>"Родитель" и ТаблицаПрав.Колонки[ИндексКолонки].Имя<>"УИ" Тогда
				ТаблицаПрав.Колонки.Удалить(ИндексКолонки);
			КонецЕсли;
			ИндексКолонки = ИндексКолонки-1;
		КонецЦикла;
...Показать Скрыть


соответственно, ошибка потом и вылазит при попытке поиска по несуществующей колонке.
Ответили: (219)
# Ответить
219. bambr1975 21.11.2012 17:27
(218) yandextesting, что-то действительно не все в прошлый раз удалось поправить - в текст ошибки, конечно, надо было повнимательнее вчитаться. Исправления в очередной раз внесены. Очень надеюсь, что на этот раз - не застрянет. =)
Ответили: (220) (221) (222)
# Ответить
220. yandextesting (файл скачал) 22.11.2012 11:39
(219) запускал для тестирования версию, которую вы подготовили для меня: ошибка-то исчезла, НО результат сравнения совершенно неверный, см. прикрепленные скрины:
Ответили: (237)

Прикрепленные файлы:

примерчик.png
примерчик2.png
# Ответить
221. yandextesting (файл скачал) 22.11.2012 11:51
(219) Собственно говоря, попытался открыть для просмотра прав эту же роль без сравнения, выдается та же ошибка (см. скрин).

Прикрепленные файлы:

примерчик3.png
# Ответить
222. yandextesting (файл скачал) 22.11.2012 11:56
(219) Содержимое распакованных файлов по этой роли:

Объект:

{1,
{6,
{0,
{0,36,87090b31-2cd0-4b45-8b24-efdb2383b1a2},"ПолныеПрава",
{1,"ru","Полные права"},""},0,0,1},0}


Права:

{8,
{0},
{0},1,1,1,4294967295}
Ответили: (223)

Прикрепленные файлы:

примерчик4.png
примерчик5.png
# Ответить
223. bambr1975 22.11.2012 12:13
(222) yandextesting, тот внутренний формат, который Вы привели в пример - дает галочка "Устанавливать права для новых объектов" для ролей, у которых по умолчанию запущено действие "Установить все права". Я знаю об этой особенности. Это ограничение моей обработки, потому что она все-таки разбирает внутреннее представление, а здесь разбирать нечего. Видимо для таких ролей надо устраивать какой-то особый разбор. В любом случае, спасибо за Ваши комментарии. Буду работать в этом направлении.
# Ответить
224. Evil Beaver (файл скачал) 26.11.2012 18:30
Интересная штука. Обработка отличная, работа проделана колоссальная, но стиль кода!!! Я плакал кровавыми слезами когда все это увидел!
Почему, почему такой спагетти-код, переменные с именами "ы" и "ъ", которые нигде к тому же не используются? Почему перебор колонок табличного макета делается так:
ЗначениеЯчейкиСинонима=Лев(Ячейка.Имя,Поз)+Строка(Число(Прав(Ячейка.Имя,СтрДлина(Ячейка.Имя)-Поз))+4);
ЗначениеЯчейкиИндексаКартинки=Лев(Ячейка.Имя,Поз)+Строка(Число(Прав(Ячейка.Имя,СтрДлина(Ячейка.Имя)-Поз))+3);

Зачем это мозго*ство с формулами, почему не:
Область.Лево+1;
Область.Лево+2;


Одно и то же ведь, а читать легко и приятно.

С одной стороны, писал человек опытный, с другой - руки бы оторвать за такое качество кода....
В любом случае, оно работает и работает хорошо. Огромный плюс и спасибо за проделанную работу :)
Ответили: (225)
# Ответить
225. pumbaE (файл скачал) 26.11.2012 18:54
(224) Evil Beaver, так и не понял похвалил автора или обос*ал?
Если посмотреть на описание, то будет понятно, что это компиляция из нескольких разработок в одну. Покажи мне пальцем на такого человека, который будет переписывать код из-за нарушения "его" видения чувства прекрасного, при работаещем коде... (за бесплатно конечно же).
Ответили: (226)
# Ответить
226. Evil Beaver (файл скачал) 27.11.2012 09:34
(225) pumbaE, Так вот я и говорю, интересная штука. Непонятно, хвалить или ругать. Основные претензии к коду основной формы "Форма". Там не нашел ссылок на чужие разработки и там самый отвратительный код. Он рабочий, но есть такое понятие - write-only code. После написания, прочесть нельзя :).

Итого, автору все равно спасибо, т.к. есть инструмент, и есть поле для дальнейшего изучения. Т.е. суммарно - это классная обработка и результат большого труда.
# Ответить
227. sorb (файл скачал) 05.12.2012 14:14
имхо обработка лучшая из подобных! Не нашел ни одного косяка из присущих другим обработкам. Жаль плюс только один можно ставить :)
# Ответить
228. babys (файл скачал) 06.12.2012 12:42
Автору v8unpack не распаковывает, по крайней мере у меня, конфы с 17 релиза.
Извечный вопрос, "что делать"?
# Ответить
229. rasswet (файл скачал) 12.12.2012 11:13
а по сравнению управляемых форм, что-то есть? или это не возможно на данном этапе развития?
Ответили: (230) (237)
# Ответить
230. bambr1975 12.12.2012 11:23
(229) rasswet, работа в этом направлении уже ведется. Полный объем анализируемых свойств гарантировать не могу, но факт различий и значения некоторых различающихся свойств показывать будет. Уже скоро.
Ответили: (231)
# Ответить
231. rasswet (файл скачал) 12.12.2012 11:39
(230) отлично! не сочтите за труд-как апдейт выйдет напишите в скобках номер этого поста , чтобы мне в почту упало оповещение.
# Ответить
232. babys (файл скачал) 04.01.2013 12:09
bambr1975, косяк не косяк, но вот при структурном сравнении модулей иконки типов функции и процедур правильно отображается только для структуры первого модуля, а второй показывает всё наоборот.
# Ответить
233. babys (файл скачал) 15.01.2013 22:53
А что обозначает сообщение:
Результат распаковки не является результатом распаковки для файла конфигурации
????
Ответили: (234)
# Ответить
234. bambr1975 16.01.2013 09:24
(233) babys, эта надпись означает, что в каталоге распаковки отсутствует файл root - см. (57) - либо что-то напутано с каталогами распаковки, либо проблема в самой распаковке (распаковалось с ошибкой). Если эта проблема связана с распаковкой конфигураций платформы 17 релиза - имеет смысл попробовать сторонние средства распаковки - http://infostart.ru/public/124213/ или http://infostart.ru/public/103834/ (последнее наиболее активно поддерживается) и, по возможности, присоединиться к обсуждению http://infostart.ru/community/profile/152967/forum/77020/ (это максимум, чем я могу помочь в данном случае)
# Ответить
235. babys (файл скачал) 16.01.2013 17:11
Еще вот такое пишет:
{Форма.Форма.Форма(1179)}: Ошибка при вызове метода контекста (Прочитать)
	ТекстОписания.Прочитать(КаталогМетаданных + "\" + ИмяФайлаОписания);
по причине:
Ошибка доступа к файлу 'D:\KA.cf.und'

А это что может быть?
Ответили: (236)
# Ответить
236. bambr1975 16.01.2013 17:27
(235) babys, для более предметного обсуждения - можно попросить cf, который вызвал затруднения, выложить куда-нибудь на файлообменник и прислать ссылку в личку?
# Ответить
237. bambr1975 13.02.2013 13:18
Исправлены ошибки.
Две новых фунциональности.
Первая функциональность - расширенный анализ управляемых форм. В панель свойств выводится список свойств элемента управляемой формы. Свойства анализируются во внутреннем представлении
Вторая функциональность - возможность вывода отчета по роли в режиме "дополнения" - в отчет выводятся не только заданные в файле роли права, но и права по умолчанию. (возможность пока тестовая)
(229) rasswet, реализовано.(220) yandextesting, исправлено
Ответили: (238)
# Ответить
238. rasswet (файл скачал) 13.02.2013 13:57
(237) отлично, спасибо-беру тестировать!
# Ответить
239. rasswet (файл скачал) 14.02.2013 19:00
а две формы одного документа в одной конфигурации можно сравнить между собой?
если есть, подскажите, не нашел как.
Ответили: (240)
# Ответить
240. bambr1975 14.02.2013 19:19
(239) rasswet, см. скриншот "Произвольное сравнение". В дереве метаданных (панель слева основной формы обработки) выбираете первую форму и в контекстном меню вызываете пункт "Запомнить выбранный объект для сравнения" а потом - на второй форме вызываете из контекстного меню пункт "Добавить к сравнению вторую форму". Для конфигураций работает и в режиме анализа и в режиме сравнения. Для обработок - только в режиме сравнения. В режиме анализа пока не работает (чуть позже починю).
# Ответить
241. sergant500 (файл скачал) 15.02.2013 23:12
Нашел при декомпиляции изменений косячок:
Создал в форме документа «Реализация товаров и услуг» БП 2.0 реквизит «Этап» тип «СправочникСсылка.Этап» в табличной части услуг. После декомпиляции изменений код:

Колонка = ЭлементыФормы.Услуги.Колонки.Вставить(2,"Этап");
Колонка.Ширина = 25;
Колонка.Имя = "Этап";
ЭлементыФормы.Услуги.Значение.Колонки.Добавить("Этап");


Последнюю строку необходимо закомментировать
# Ответить
242. sergant500 (файл скачал) 17.02.2013 13:29
Еще один косячок нашел. Создал в форме документа «Реализация товаров и услуг» БП 2.0 в командной панели «КоманднаяПанельУслуги», в подменю «ПодменюЗаполнить» кнопку «ЗаполнитьПоВидамРабот».
Формирует при декомпиляции изменений не правильно:
Кнопка = ЭлементыФормы.ПодменюЗаполнить.Кнопки.Добавить("ЗаполнитьПоВидамРабот",ТипКнопкиКоманднойПанели.Действие,"",Новый Действие("КоманднаяПанельУслугиЗаполнитьПоВидамРабот"));

Надо
Кнопка = ЭлементыФормы.КоманднаяПанельУслуги.Кнопки.ПодменюЗаполнить.Кнопки.Добавить("ЗаполнитьПоВидамРабот",ТипКнопкиКоманднойПанели.Действие,"Заполнить по видам работ",Новый Действие("КоманднаяПанельУслугиЗаполнитьПоВидамРабот"));
# Ответить
243. yandextesting (файл скачал) 26.02.2013 13:42
мысль к развитию функционала - добавить возможность сравнения СКД в режиме сравнения генерирующего ее кода. Для преобразования СКД в код можно попробовать взять наработки из Автоматическое преобразование схемы СКД в программный код
Ответили: (258)
# Ответить
244. yandextesting (файл скачал) 14.03.2013 09:41
(0) еще мысль, добавить из типовой КД «Сравнение и объединение правил обмена», чтобы иметь все в одном месте
# Ответить
245. VVi3ard (файл скачал) 14.03.2013 15:59
Глупый вопрос, но не могу понять можно ли получить код для генерации формы?
Т.е. как "Отчет о декомпиляции изменений формы" только не для изменений а просто для формы?

Например я сделал форму определенную, и потом хочу получить код который при выполнении будет добавлять группы и элементы (с учетом дерева) на форму.

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

Еще было бы хорошо если бы код генерировался только для установки тех свойств значения которых отличаются от значений "по умолчанию".

т.е. я вижу примерно так:
В модуле формы в обработчике ПриСозданииНаСервере() я вызываю код сгенерированный обработкой, что то типа: ДобавитьЭлементыНаФорму(ЭтаФорма).


Подобные обработки уже есть: http://infostart.ru/public/175275/

Но они ограничены возможностью "обработки".
Ответили: (246) (247) (248) (250)
# Ответить
246. AlexO (файл скачал) 14.03.2013 16:15
(245) VVi3ard,
Например я сделал форму определенную, и потом хочу получить код который при выполнении будет добавлять группы и элементы (с учетом дерева) на форму.

Декомпиляторы только генерируют код, который позволяет программно создавать элементы на форме.
Ни саму форму (как класс), ни код в конфигураторе - сгенрировать нельзя.
Обработка собфтий формы и данных - это все ручками, по месту.
Ни одна обработка не генерирует "рабочий" код обработки данных.
Ответили: (252)
# Ответить
247. AlexO (файл скачал) 14.03.2013 16:17
(245) VVi3ard,
Подобные обработки уже есть:

ничего "подобного" нет и быть не может - это 1С.
Можно только получить код для создания элементов, и вставить его в Конфигураторе в нужное место.
Чем занимается указанная обработка, и какие отличия её от существующих (зачем она?) - непонятно, и автор скрывает её назначение.
# Ответить
248. bambr1975 14.03.2013 16:19
(245) VVi3ard, для управляемых форм еще пока ничего подобного не предусматривалось. Потом - может, мысли появятся - сделаю. Обработка по вашей ссылке очень многообещающая. Особенно в отношении управляемых форм. Иерархия групп там уже учитывается. А не выводить значения по умолчанию - очень простая доработка. Думаю, лучше попросить автора приведенной Вами обработки - у него это гораздо быстрее получится реализовать.
Ответили: (249) (252)
# Ответить
249. AlexO (файл скачал) 14.03.2013 16:21
(248) bambr1975,
для управляемых форм

у автора ни слова про "управляемые формы" :)
Обработка по вашей ссылке очень многообещающая.

так чем та чудо-обработка многобещающая? Никто не может тольком сказать, даже автор в затруднеии - чего такого делает его обработка.
Или как 1С - обещает-обещает, и все "ведутся" на обещания вот уже 20 лет? :)
Ответили: (250) (252)
# Ответить
250. bambr1975 14.03.2013 16:25
(249) AlexO, в (245) ссылаются на ПриСозданииНаСервере() - характерно только для управляемых форм.
Многообещающая - потому что развивается и то, что сделано - работает. Универсальность, конечно - еще не достигнута, но для управляемых форм это уже достойное решение.
Ответили: (251) (252)
# Ответить
251. AlexO (файл скачал) 14.03.2013 16:31
(250) bambr1975,
но для управляемых форм это уже достойное решение.

Так там и создание элементов не работает?!
"Тогда УФ - не наш метод" (с)
# Ответить
252. VVi3ard (файл скачал) 14.03.2013 18:32
(246) AlexO,
Можно только получить код для создания элементов, и вставить его в Конфигураторе в нужное место.

Это и нужно:
Хочу получить код который при выполнении будет добавлять группы и элементы (с учетом дерева) на форму


(248) bambr1975,
Обработка по вашей ссылке очень многообещающая. Особенно в отношении управляемых форм. Иерархия групп там уже учитывается. А не выводить значения по умолчанию - очень простая доработка. Думаю, лучше попросить автора приведенной Вами обработки - у него это гораздо быстрее получится реализовать.


Да он сегодня добавил, еще не смотрел, просто у вас увидел в примерах похожий отчет думал уже реализовано просто не понял как.

(250) bambr1975, совершенно верно про ПриСозданииНаСервере(), не стал писать очевидного.
Просто для УФ все эти генераторы сам бог велел, нет проблем с привязками и координатами элементов, да и на самом деле гораздо чаще есть соблазн гененрировать тот или иной кусок формы программно, потому как все получается быстро, легко и красиво.

У (249) AlexO,
так чем та чудо-обработка многобещающая? Никто не может тольком сказать, даже автор в затруднеии - чего такого делает его обработка.


Обработка делает ровно то что я описал, можно выбрать любую форму конфигурации, а на выходе получить код на языке 1С выполнив который мы сможем добавить элементы на любую форму. Есть похожая обработка для СКД которая по схеме генерирует код создания этой схемы.

С той обработкой что по ссылке проблема в том что она написана на скорую руку и множество нюансов там не учитываются, в итоге пришлось руками значительно (на 70%) править получившийся код. В общем сырая она очень ещё.
А тут я посмотрел скриншот "Отчет о декомпиляции изменений формы" думал то же самое уже есть.
Ответили: (253) (254) (255)
# Ответить
253. AlexO (файл скачал) 15.03.2013 09:35
(252) VVi3ard,
С той обработкой что по ссылке проблема в том что она написана на скорую руку и множество нюансов там не учитываются
нюансов с управляемой формой? Потому как с обычными - в декомпиляторе форм все давно учтено.
а на выходе получить код на языке 1С выполнив который мы сможем добавить элементы на любую форму.

Все именно это и делает декомпилятор от Истура. Только в обычном приложении.
# Ответить
254. AlexO (файл скачал) 15.03.2013 09:36
(252) VVi3ard,
в итоге пришлось руками значительно (на 70%) править получившийся код.

ну так и выложите автору в комментах, пусть порадуется, может, сподобится и свою доделать :)
# Ответить
255. AlexO (файл скачал) 15.03.2013 10:06
(252) VVi3ard,
Есть похожая обработка для СКД которая по схеме генерирует код создания этой схемы.
Если вы про это:
Автоматическое преобразование схемы СКД в программный код
то это не создание СКД программно, а всего лишь чтение схемы - настройки, параметры, запросы, etc. Что мало дает для создания СКД - даже не указано, куда полученный код и как вставлять.
Ответили: (256)
# Ответить
256. VVi3ard (файл скачал) 15.03.2013 10:12
(255) AlexO, горшочек не вари.
Ответили: (257)
+ 1 [ bambr1975; ]
− 1 [ AlexO; ]
# Ответить
257. AlexO (файл скачал) 15.03.2013 10:18
(256) VVi3ard,
чего? Или уже начинается крайняя клиническая стадия тру-1сника?
Быстро же накрыло, можно сказать - почти мгновенно .. :)
# Ответить
258. AlexO (файл скачал) 15.03.2013 11:39
(243) yandextesting,
Для преобразования СКД в код можно попробовать взять наработки из Автоматическое преобразование схемы СКД в программный код

Нет в том конвертере никакого "преобразования СКД в код".
Ответили: (259)
# Ответить
259. bambr1975 15.03.2013 11:48
(258) AlexO, а чем Вам конвертер-то не угодил? Мне, например, нравится! Даже если для анализа и чтения схемы в текстовом виде - очень удобная вещь! Да и кнопка там есть - "сохранить в файл схемы СКД" - это же и есть собственно "макет". Программное создание схемы СКД у меня в обработке используется в отчете по ролям - при "вычислении в уме" - как и что должно компоноваться - вручную нарисованных в конструкторе схем было немало - и та обработка - для наглядности - какой получится программный код в итоге, бы очень пригодилась. А не было ее тогда.
Ответили: (260)
# Ответить
260. AlexO (файл скачал) 15.03.2013 12:05
(259) bambr1975,
вручную нарисованных в конструкторе схем было немало - и та обработка - для наглядности - какой получится программный код в итоге

Положим, программный код, который получается в итоге по схемам - тот конвертер тоже не дает :)
Только набор "необработанных" и логически не связанных строк кода.
в итоге, бы очень пригодилась

Народ путает - программное создание СКД и описание схемы СКД. Это настолько разные и несопоставимые вещи, что даже сравнить невозможно.
А автор там и не спешит разъвеять незнание новичков и внести ясность понимания.
Да и кнопка там есть - "сохранить в файл схемы СКД" - это же и есть собственно "макет".

Совершенно верно, т.е., по сути, тот "конвертер" лишь дает в удобной (более-менее) форме просмотр схемы СКД по XML, и "сырой" код-представление этой схемы в 1С.
Вашим же ридером - я тоже пользуюсь постольку поскольку: только для сравнения cf и cfu, ну и по другой мелочи сравнений :)
А так - есть и типовые средства сравнения форм, обработок, конфигураций; для программного формирования - больше подходит декомпилятор форм от Истура и т.д. :)
# Ответить
261. sstvit 31.03.2013 20:40
Просто МЕГА Талантище создал эту весчь. Спасибо
# Ответить
262. 8SiriuS8 (файл скачал) 09.04.2013 16:54
(0)Сравнивал 2 CF УТ 11 захотел посмотреть в чем различие общей формы СписокДокументовПродажи
вылезла вот такая ошибка
{Форма.РазборФормы.Форма(4285)}: Значение не является значением объектного типа (SubMatches)
Возврат НайденныйРезультат.SubMatches(0);


Ещё вопрос как можно увидеть различия в командный интерфейсе - командная панель

как понимаю сейчас это обработка делать не умеет?
Ответили: (263) (285)
# Ответить
263. bambr1975 09.04.2013 21:02
(262) 8SiriuS8, там нужно условие поставить или Возврат НайденныйРезультат.SubMatches(0); внутрь цикла перенести.
Ещё вопрос как можно увидеть различия в командный интерфейсе - командная панель

На данный момент командный интерфейс не парсится (хотя по сравнению с объемом остальных уже реализованных работ это несложно). Вообще последние изменения судя по всему мало востребованы, поэтому в ближайшее время новую версию пока не планирую.
На самом деле - интересует удобство использования для управляемых форм и ролей. Что скажете? Есть ли какие-то пожелания? Может, если что-то интересное предложите - созрею на доработки...
Ответили: (264)
# Ответить
264. 8SiriuS8 (файл скачал) 09.04.2013 23:02
(263) Ну я бы регулярки бы переписал на вот эту библу работает быстрее и антивирус не нервничает
Ответили: (265)
# Ответить
265. bambr1975 10.04.2013 12:06
(264) 8SiriuS8, библа интересная. Работает только в платформах, начиная с 8.2.14 (главная неприятность - то есть, неуниверсальная) - хотя, может, Александр что-нибудь может изменить. К тому же для меня, как и для tormozit актуально изменять Pattern-ы "на лету". А это влияет на быстродействие. Так что - пока что движок для регулярок менять не собираюсь.
Ответили: (267)
# Ответить
266. aricsoft (файл скачал) 19.10.2013 15:55
вроде модуль сеанса и модуль приложения перепутаны в дереве 3 way сравнения

Прикрепленные файлы:

04a1aeef0616.jpg
# Ответить
267. smerch 30.10.2013 20:03
(265) bambr1975, вопрос есть.
Как-бы подключиться к процессу разработки и тестирования данного инструмента?
Интересует ловля/исправление жуков и рефакторинг.
Ответили: (268)

Прикрепленные файлы:

574.gif
# Ответить
268. bambr1975 30.10.2013 21:02
(267) smerch, отпишись на почту bambr1975@yandex.ru
# Ответить
269. dmitriy29 (файл скачал) 07.11.2013 12:21
спасибо большое обработка супер)!
# Ответить
270. DrAku1a (файл скачал) 21.11.2013 03:16
Эх... Еще бы как-то редактировать все это дело ))
# Ответить
271. KliMich (файл скачал) 17.02.2014 16:56
Здорово! Спавибо!
Еще бы она работала в Управляемых Приложениях ... :) (А то уже клиентов работают в них)
# Ответить
272. yandextesting (файл скачал) 26.05.2014 12:36
ошибка сравнения форм:
"{Форма.РазборФормы.Форма(585)}: Поле объекта не обнаружено (ПанельЗакладок)
пФормаКопия.ЭлементыФормы[ИмяПанели].УстановитьДействие("ПриСменеСтраницы", Неопределено);"

типовой отчет в БП 2.0 "ВедомостьАмортизацииОСБухгалтерскийУчет" - изменился только тип реквизита
Ответили: (273)
# Ответить
273. yandextesting (файл скачал) 26.05.2014 13:07
(0)(272) проблема в некорректной сортировке панелей по площадям из-за чего сначала удаляется родительская панель с равной площадью дочерней
Ответили: (274) (285)
# Ответить
274. bambr1975 26.05.2014 13:14
(273) yandextesting, спасибо. На подходе новая версия. Там эта проблема будет решена.
# Ответить
275. Armando (файл скачал) 12.06.2014 21:38
При проверке выдаются ошибки:
{Обработка.V8Reader.МодульОбъекта(441,33)}: Тип не определен (СравнениеФайлов)
СравнениеВременныхФайлов=Новый <<?>>СравнениеФайлов; (Проверка: Сервер)
{Обработка.V8Reader.МодульОбъекта(441,33)}: Тип не определен (СравнениеФайлов)
СравнениеВременныхФайлов=Новый <<?>>СравнениеФайлов; (Проверка: Внешнее соединение)

И вот
{Обработка.V8Reader.МодульОбъекта(429,2)}: Процедура или функция с указанным именем не определена (Состояние)
<<?>>Состояние(Строка); (Проверка: Сервер)
{Обработка.V8Reader.МодульОбъекта(429,2)}: Процедура или функция с указанным именем не определена (Состояние)
<<?>>Состояние(Строка); (Проверка: Внешнее соединение)
Ответили: (276)
# Ответить
276. bambr1975 12.06.2014 23:18
(275) Armando, снимите при проверке галочку "внешнее соединение".(Сервис - Параметры - Модули - Проверка - Режимы проверки).
Ответили: (277)
# Ответить
277. Armando (файл скачал) 13.06.2014 14:27
(276) bambr1975, я в курсе. Просто у меня ридер встроен в конфигурацию, а проверку по всем режимам делаем. Воткнул заглушки #Если ТолстыйКлиентОбычноеПриложение Тогда
Ответили: (278)
# Ответить
278. bambr1975 13.06.2014 14:29
(277) Armando, спасибо, новая версия будет с "заглушками".
# Ответить
279. Armando (файл скачал) 13.06.2014 14:50
bambr1975, случайно не знаешь, как GUID.4 распарсить пообъектно? Надо по каждому объекту правило поддержки получить.
Ответили: (280)
# Ответить
280. bambr1975 13.06.2014 14:59
(279) Armando, мне кажется, что реальнее всего на регулярках парсинг построить. Хотя, может быть, есть и более универсальные варианты. Но это, наверное, лучше знает awa.
Ответили: (282)
# Ответить
281. Armando (файл скачал) 21.06.2014 13:35
Вот еще. Это мы конфигурацию "причесываем".
Обработка.V8Reader.Форма.Форма.Форма Отсутствует обработчик:  ДеревоМетаданных "ДеревоМетаданныхИдентификаторОткрытие"
Обработка.V8Reader.Форма.Форма.Форма Отсутствует обработчик:  ДеревоМетаданных "Развернуть"
Обработка.V8Reader.Форма.РазборФормы.Форма Отсутствует обработчик:  ДеревоЭлементовФормы "ДеревоЭлементовФормыПриВыводеСтроки"
Обработка.V8Reader.Форма.РазборФормы.Форма Отсутствует обработчик:  Панель1 "Панель1ПриСменеСтраницы"
Обработка.V8Reader.Форма.ФормаСвойств.Форма Отсутствует обработчик:  РазличияПривязок "ТабличноеПолеСвойствПриВыводеСтроки"
Обработка.V8Reader.Форма.ФормаДляРолей.Форма Отсутствует обработчик:  Результат "РезультатОбработкаРасшифровки"
...Показать Скрыть
# Ответить
282. Armando (файл скачал) 21.06.2014 13:39
(280) bambr1975, я у него когда-то спрашивал вроде.
# Ответить
283. VovkaPutin (файл скачал) 08.07.2014 11:27
классно. не хватает кнопок Свернуть/Развернуть всю структуру сравнения. + можно сделать доступным редактирование модуля формы прямо в анализе. ведь обработки внешние
Ответили: (284)
# Ответить
284. bambr1975 08.07.2014 12:12
(283) VovkaPutin, Используйте стандартные возможности списков: Комбинация клавиш Ctrl+Плюс на цифровой клавиатуре даст вам тот же эффект. К тому же, если вы хотите просмотреть просто список изменений - есть специальный фильтр "Показывать только изменения списком"
# Ответить
285. bambr1975 25.01.2015 14:17
(273) yandextesting, (262) 8SiriuS8, опубликована новая версия обработки - ваши замечания там реализованы:
В управляемых формах реализован разбор командного интерфейса.
Логика построения дерева обычных форм отвязана от идеи деструктивного анализа – иерархия элементов строится на основе внутреннего представления.
+ 2 [ yandextesting; awa; ]
# Ответить
286. bambr1975 29.01.2015 18:50
В макет V8Unpack помещена новая версия, собранная Сергеем Батановым aka baton_pk (ссылка на релиз https://build.batanov.me/job/v8unpack-win/label=mingw32/lastSuccessfulBuild/artifact/bin/Release/v­8unpack.exe) Новая версия не требует дополнительных библиотек + прирост скорости распаковки по сравнению с версией V8Unpack2.0 порядка 20%.
# Ответить
287. Johny_v 02.04.2015 11:19
Добрый день.
Используя Вашу разработку можно выгрузить отчеты и обработки как отдельные файлы?
Аналогично ручного сохранения отчета из конфигуратора через "Сохранить как внешнюю обработку/отчет..."
Ответили: (288)
# Ответить
288. bambr1975 02.04.2015 14:38
(287) Johny_v, такой функционал не предусмотрен.
# Ответить
289. apxi (файл скачал) 10.04.2015 16:51
Интересная штука!
# Ответить
290. bambr1975 10.06.2015 14:52
Доработана совместимость регулярок с внутренним представлением 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 не распаковывает) без ущерба для производительности.

Мелкие доработки эргономики вывода сравнения временных файлов.
+ 3 [ Gotcha; awa; Armando; ]
# Ответить
291. Gotcha (файл скачал) 23.06.2015 19:15
Огромное спасибо! Фееричная обработка.
Распаковщик лежит в макете, очень удобно.
У меня мечта нормальный merge привинтить.
# Ответить
292. Gotcha (файл скачал) 29.06.2015 16:46
Господа, правильно-ли я понимаю ситуацию с обработкой:
(*)функциональность моей мечты. В свое время у нас был GCOMP-decompress.bat, Tortoise SVN, KDIFF, или Tortoise Merge-коммит -Compress.bat
Правильно, ли я понимаю (во всяком случае, в этом объеме я использую обработку), что у нас от (*) в данном случае ,уже есть
Gcomp Decompress, элементы SVN в разрезе сравнения временных файлов, в которые распаковываются конфигурации. В постоянные у меня распаковать не получается, падает распаковка с ошибкой. Соответственно, хранилища внешнего, на уровне SVN, получается, что и нет, как и Commit
Kdiff в общем-то работает, в режиме 3Way, ничего не мешает 2 последних файла конфигурации указать одинаковыми и получить 2 WAY, если не нужен режим 3 конфигураторов.
Compress.BAT у нас нет? Или я недопонял функциональность?
Каковы дальнейшие планы развития проекта, если они есть?

В любом случае, даже в таком, неполном варианте, польза от обработки грандиозная!
Еще раз благодарю авторов за огромную работу, проделанную для появления этого проекта!
Ответили: (293) (305)
+ 1 [ artbear; ]
# Ответить
293. bambr1975 29.06.2015 19:29
(292) Gotcha, во-первых, проясните, что значит
В постоянные у меня распаковать не получается, падает распаковка с ошибкой.

Какая именно последовательность действий приводит к ошибке?
Во-вторых - функциональность Вашей мечты реализует проект precommit - у него свои тонкости и свои контрибьютеры - но задачу хранения распакованных данных для возможности просмотра изменений отчетов и обработок на github этот проект решает. Кнопка получения структуры человекопонятных папок с исходными кодами внутри в V8Reader находится на панели дерева метаданных главной формы обработки (кнопка с дискеткой). В принципе, можно ее нажимать и вручную. Также в проекте precommit реализована и упаковка данных средствами V8Unpack.
В-третьих - если все Ваши неудобства пользования моей обработкой упираются в невозможность использования kdiff, то в принципе ничего сложного в том, чтобы сделать настройку использования для сравнения текстовых файлов именно ее.
Хотелось бы понять по всем этим трем пунктам, что конкретно Вам нужно.
Ответили: (294) (295)
+ 2 [ artbear; Evil Beaver; ]
# Ответить
294. artbear (файл скачал) 02.07.2015 19:30
Дополню (293)
У нас в портфеле, помимо проекта precommit1c, есть и "соседний" проект v83unpack
Проекты служат немного разным целям:
  • precommit1c - разборка/сборка внешних файлов 1С (epf,erf) на текстовые файлы исходников. При работе с Гит разбор на исходники выполняется в режиме git-hook - precommit. В этом проекте активно используется сабж - v8Reader
  • v83unpack - разборка/сборка конфигурации 1С (cf) на текстовые файлы исходников. Затем полученные исходники можно положить в Гит.
В обоих проектах выполняется куча работы для удобства использования в коллективной разработке, решено много сопутствующих проблем.
Проекты довольно давно живут живут в боевых средах.
Ответили: (298)
# Ответить
295. Gotcha (файл скачал) 07.07.2015 14:24
(293) bambr1975,
Любая последовательность действий, когда я распаковывал файл актуальной конфигурации бп 8.2 НЕ в каталог временных файлов, приводила к тому, что процесс распаковки вылетал с ошибкой, не сразу, полагаю, что процентах на 70-80. Суть проблемы мне не понятна, есть лишь догадки. При распаковке во временные файлы, проблем не возникает. Проект PreCommit, как я понимаю, заточен лишь на внешние отчеты-обработки. Моя задача простая - сделать полноценную систему контроля версий, с распаковкой, сравнением изменений, коммитом и упаковкой. Речь идет, как правило, именно о файле конфигурации, а не внешних обработках. Что касается сравнивания объектов, то Kdiff вполне подходящий инструмент, но Tortoise Merge, мне нравился несколько больше. Решаются следующие задачи: поддержка 2 - х конфигураций БП 8.2 на множестве баз (более 50), с существенными дописками, одна из них - с серьезно переписанным блоком ВЭД, с человеческим документом
ГТД Импорт, функциональность которого высосана не из пальца, в отличие от типового функционала. Есть, также, пара баз БП 8.3 с дописанными под нее нашими служебными обработками, сделанными для целей облегчения ведения учета, с элементами обмена данных, но на текстовых файлах, исторически так сложилось, для совместимости со старыми базами. Есть и Базы ЗУП, но там дописка ограничилась только актуализацией отмерших в 1С правил обмена данными ЗУП с бухгалтерией 7.7. Соответственно, особых причин сравнивать обработки и отчеты, у меня нет, но есть большое желание как можно точнее версионифицировать свои изменения и иметь возможность, сравнивать их с изменениями поставщика (1С).
Как я сейчас пользуюсь v8unpack:
Подключаю текущий наш файл конфигурации, в качестве конфигурации 1, подключаю соответствующий по релизу файл конфигурации поставщика, подключаю новый файл конфигурации поставщика. Сравниваю 3 - х анализом объекты между собой. То, что не содержит наших изменений, коммитится целиком средствами 1с в новую конфигурацию поддержки. То, что требует переноса по частям, сравнивается 3-х анализом, делается попытка объединить файлы, последовательно, проходимся по всем противоречям и вдумчиво урегулируем их, независимо от предложенного kdiff варианта. Итоговый файл копируется ctrl+c - ctrl+v в соответствующий модуль конфигуратора и обновляется конфигурация бд. Хотелось-бы иметь возможность коммита изменений из v8unpack в распакованное хранилище, собирать из него новый файл конфигурации. Остальное в принципе есть и так, что уже весьма и весьма недурно, спасибо Вам за мощную проделанную работу. Для создания хранилища, нужно, как минимум, решить проблемы с распаковкой в стационарные файлы.
Ответили: (296) (298)
# Ответить
296. bambr1975 07.07.2015 18:14
(295) Gotcha, пытаюсь воспроизвести указанную Вами ошибку - не пойму, в чем может возникнуть проблема - алгоритм распаковки в стационарные и временные файлы отличается только назначением временного имени для папки и удалением папки распаковки при закрытии обработки - в остальном для обработки все равно, куда распаковывать.
Попробуйте для отладки сделать распаковку в стационарный каталог в "Режиме анализа" (первый переключатель в группе "Основная настройка") - потом содержимое этой папки можно будет использовать для повторного вывода (если нажимать не "Распаковать и вывести", а просто "Вывести"), более того, можно использовать кеш сформированных деревьев метаданных (включается в настройках)
Моя последовательность действий для распаковки конфигурации в стационарные файлы:
1) Установить "Режим анализа" в группе переключателей "Основная настройка"
2) В группе переключателей "Режим выбора объектов" установить "Режим cf"
3) В поле "Файл cf" выбрать файл конфигурации, который надо распаковать
4) В поле выбора каталога распаковки определиться с каталогом, куда будет производиться распаковка. Если этот каталог не пустой - там автоматически создастся подкаталог (Вас об этом предупредят)
5) Нажать на кнопку "Распаковать и вывести".
Все распаковывается - конфигурация БП2_0_64_27, по крайней мере, распаковалась.
Убедительно Вас прошу - дайте текст или скриншот ошибки и скажите, на каком именно этапе она у Вас возникает.
По поводу использования Tortoise Merge для трехуровневого сравнения - вы пробовали включать его в настройках? Например, здесь
http://blogs.msdn.com/b/jmanning/archive/2006/02/20/diff-merge-configuration-in-team-foundation-common-command-and-argument-values.aspx
можно увидеть все командные строки запуска всех популярных программ сравнения.
Соответственно, для Tortoise Merge надо в настройках трехуровневого сравнения указать путь к Tortoise Merge, а в поле "Строка запуска diff" (его надо предварительно вызвать на редактирование или нажать F4) указать соответствующую строку запуска. Все надо пробовать)))
+ 1 [ Gotcha; ]
# Ответить
297. Gotcha (файл скачал) 07.07.2015 18:38
Спасибо, попробую, в самое ближайшее время, расскажу о результатах.
# Ответить
298. artbear (файл скачал) 08.07.2015 11:34
(295) Обрати внимание на мой пост (294)
ИМХО тебе нужен именно проект v83unpack, т.к. в нем решаются вопросы сборки/разборки конфигураций на текстовые представления и затем все выкладывается в гит.
Ответили: (299)
# Ответить
299. artbear (файл скачал) 08.07.2015 11:40
+(298) структура проекта v83unpack:
- есть обработка для 1С - ВыгрузкаКонфигурации.epf, которая умеет все перечисленные операции выполнять как в интерактивном режиме, так и в режиме командной строки.
- есть набор скриптов unpack.os для проекта 1Script, который фактически является портированной версией ВыгрузкаКонфигурации.epf и работает в режиме консоли из командной строки.

Лично я предпочитаю последний вариант (спец.скрипты для 1Script). Этот вариант уже работает более полугода в боевой эксплуатации для нескольких команд крупного (150 человек) ИТ-отдела разработки 1С (используются кучей команд разработки)
Ответили: (300)
# Ответить
301. maljaev (файл скачал) 07.04.2016 16:49
Огромное спасибо автору за такой труд. Есть одна просьба. Для того чтобы не заниматься плагиатом и не копипастить модули V8Reader, а также чтобы не плодить кучу версий V8Reader со своим расширенным функционалом, нельзя ли сделать механизм подключения плагинов? Ну тех же обработок из папки "plugins", в которые будет передаваться ссылка на основную форму и, возможно, другие параметры. И выводить меню со списком этих обработок. А то вот нужно было сделать групповой "инсертер" перехватчиков событий форм и модулей, пришлось кнопку в форму добавлять, процедуры...
Ответили: (302)
+ 1 [ artbear; ]
# Ответить
302. artbear (файл скачал) 08.04.2016 12:15
(301) Идея с плагинами полезна, согласен. Мы для xUnitFor1C недавно реализовали систему плагинов.

Но зачем для группового инсертера менять v8Reader ?

Это можно сделать обычным скриптом, например, на 1Скрипт.
Я делал подобные скрипты не раз
  • на JScript для автогенерации списка тестов по модулю тестов для xUnitFor1C
  • на 1С, когда сделал конвертилку тестов для xUnitFor1C из формата 3.Х в формат 4.Х
+ 1 [ maljaev; ]
# Ответить
303. artbear (файл скачал) 08.04.2016 18:15
(301 А что ты видишь в виде плагинов? какие блоки функциональности v8Reader выделить в плагины?
# Ответить
304. KVD77 09.04.2016 00:51
При сравнении двух cf-ок и просмотре изменений по ролям выскакивает ошибка в функции "НайтиСоответствиеВТаблицеПрав" и "ДополнитьОбъектСРеквизитами". Для себя я доделал дополнительную проверку на наличие ключа:
Функция НайтиСоответствиеВТаблицеПрав :
			Если СтрокаПрава <> Неопределено и Узел.ДочерниеУзлы[2].ТекстовоеСодержимое <> "0" и СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных]<>Неопределено Тогда
				Если НЕ СоответствиеСтандартныхРеквизитов.Получить(СтрокаПрава.ВидМетаданных) = Неопределено Тогда 
					Зн1 = СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных];
					Ключ1 = СтрЗаменить(Узел.ДочерниеУзлы[3].ДочерниеУзлы[0].ТекстовоеСодержимое,"-","v");
					Для Каждого ЭлементСтруктуры ИЗ Зн1 Цикл 
						Если НЕ ЭлементСтруктуры.Ключ = Ключ1 Тогда 
							Продолжить;
						КонецЕсли;
						Если Вр.ОбъектСРеквизитами = СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных][СтрЗаменить(Узел.ДочерниеУзлы[3].ДочерниеУзлы[0].ТекстовоеСодержимое,"-","v")] Тогда
							НоваяСтрока = Вр;
							Прервать;
						КонецЕсли;
					КонецЦикла;
				КонецЕсли;
			ИначеЕсли Узел.ДочерниеУзлы[2].ТекстовоеСодержимое <> "0" И Вр.ОбъектСРеквизитами = "СтандартныйРеквизит"+Узел.ДочерниеУзлы[3].ДочерниеУзлы[0].ТекстовоеСодержимое  Тогда


Функция ДополнитьОбъектСРеквизитами :

				Если СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных] <> Неопределено Тогда
					Зн1 = СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных];
					Ключ1 = СтрЗаменить(УзелДляАнализа.СледующийСоседний.ДочерниеУзлы[0].ТекстовоеСодержимое,"-","v");
					Для Каждого ЭлементСтруктуры ИЗ Зн1 Цикл 
						Если НЕ ЭлементСтруктуры.Ключ = Ключ1 Тогда 
							Продолжить;
						КонецЕсли;
						СтандартныйРеквизит=СоответствиеСтандартныхРеквизитов[СтрокаПрава.ВидМетаданных][СтрЗаменить(УзелДляАнализа.СледующийСоседний.ДочерниеУзлы[0].ТекстовоеСодержимое,"-","v")];
						НоваяСтрока.ОбъектСРеквизитами = СтандартныйРеквизит;
					КонецЦикла;
				Иначе
...Показать Скрыть

если честно - не пойму почему в структуре по методу "Свойство" выдает ошибку если нет такого свойства, поэтому особо не парился и написал проверку в цикле, очень надо было "завести"
Ответили: (305)
# Ответить
305. bambr1975 22.07.2016 19:48
Новая версия
1) (304) KVD77, Исправлена ошибка разбора ролей, возникающая при обнаружении неизвестных идентификаторов стандартных реквизитов
2) Исправлен алгоритм построения дерева элементов обычной формы в случае, если у главной панели формы (ЭтаФорма.Панель) есть несколько страниц.
3) Гиперссылка, декомпилирующая обычную форму целиком, теперь формирует полноценный текст декомпиляции (раньше по этой гиперссылке формировался файл в режиме «бутафории»)
4) (292) Gotcha, Добавлена настройка использования внешней программы для сравнения модулей и их методов
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С, будь-то анализаторы или подсветка синтаксиса.
# Ответить
Внимание! За постинг в данном форуме $m не начисляются.
Внимание! Для написания сообщения необходимо авторизоваться
Текст сообщения*
Прикрепить файл






IE 2016