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

22.07.16

Разработка - Инструментарий разработчика

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

Файлы

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование Скачано Купить файл
V8Reader.epf
.epf 933,79Kb ver:1.13
2590 2 500 руб. Купить

Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний

Оформите подписку на компанию для решения рабочих задач

Оформить подписку и скачать решение со скидкой

Вы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».

  • 0% комиссии — оплата напрямую исполнителю;
  • Исполнители любого масштаба — от отдельных специалистов до команд под проект;
  • Прямой обмен контактами между заказчиком и исполнителем;
  • Безопасная сделка — при необходимости;
  • Рейтинги, кейсы и прозрачная система откликов.

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

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

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

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

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

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

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

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

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

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

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

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

В отчете по ролям добавлено программное генерирование кнопок для управления уровнями группировки из публикации //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С, будь-то анализаторы или подсветка синтаксиса.

Вступайте в нашу телеграмм-группу Инфостарт

См. также

Разработка Инструментарий разработчика Групповая разработка (Git, хранилище) Разработчик Платные (руб)

Практический курс по работе с AI-агентами для разработчиков 1С уровня middle и senior, а также тимлидов команд: от постановки задач и передачи контекста до создания расширений, интеграций, MCP-инструментов, тестов и проверки готового решения.

50000 руб.

10.09.2026    13822    124    0    

85

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Разработчик Руководитель проекта 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP, УНФ, КА и т.д.). Поддерживаются серверные и файловые базы, управляемые и обычные формы, интерфейс 8.5. Может выполнять свертку одновременно в несколько потоков, а также без непосредственного участия пользователя. Решение в Реестре отечественного ПО.

24900 руб.

20.08.2024    83401    432    171    

364

Инструментарий разработчика Роли и права Запросы СКД Разработчик Руководитель проекта 1С:Предприятие 8 Платные (руб)

Инструменты для разработчиков 1С 8.3 и 8.5: Infostart Toolkit. Автоматизация и ускорение разработки на управляемых формах. Легкость работы с 1С.

16500 руб.

02.09.2020    285956    1608    423    

1220

Инструментарий разработчика Разработка Администрирование веб-серверов Системный администратор Разработчик Аналитик Руководитель проекта 1С 8.3 Платные (руб)

Analyzer 1C сводит выгрузку 1С — основную конфигурацию и все расширения — в единый граф знаний. Любой запрос по связям за доли секунды, с пометками «Доб.» / «Заимств.» / «Переопределено». Новое в 2.0 — обновление поставки: сравнение и объединение версий деревом «как в Конфигураторе» с выгрузкой плана решений; поиск конфликтов из-за перехватов расширений и висячих ссылок; загрузка из бинарных .cf/.cfe; циклические зависимости. Плюс анализ влияния, запросы BSL, роли и RLS, граф вызовов. Минута на развёртывание через Docker без необходимости подключения к Интернет. Любая 1С:Предприятие 8.3+.

14000 руб.

17.04.2026    16938    63    62    

74

Пакетная печать Печатные формы Инструментарий разработчика Разработчик 1С:Предприятие 8 Платные (руб)

Расширение для создания и редактирования печатных форм в системе 1С:Предприятие 8.3. Благодаря конструктору можно значительно снизить затраты времени на разработку печатных форм, повысить качество и прозрачность разработки, а также навести порядок в многообразии корпоративных печатных форм. Обновление версии от 21.04.26

22570 руб.

06.10.2023    44283    122    54    

135

Инструментарий разработчика Нейросети Платные (руб)

Первые попытки разработки на 1С с использованием больших языковых моделей (LLM) могут разочаровать. LLMки сильно галлюцинируют, потому что не знают устройства конфигураций 1С, не знают нюансов синтаксиса. Но если дать им подсказки с помощью MCP, то результат получается кардинально лучше. Далее в публикации: MCP для поиска по метаданным 1С, справке синтакс-помощника и проверки синтаксиса.

15250 руб.

25.08.2025    77102    147    41    

154

Разработка Инструментарий разработчика Разработчик Руководитель проекта 1С 8.3 Платные (руб)

Pilot 1C превращает задачу, поставленную обычными словами, в техническое задание, код на встроенном языке и сценарии проверки. Прежде чем что-то предложить, он сверяется с устройством вашей конфигурации через граф Analyzer 1C: существует ли объект, из чего он состоит, кто его вызывает, какие роли дают права. Чего найти не удалось – спрашивает, а не выдумывает. Готовый код проходит более полутора сотен проверок по справочнику языка и стандартам разработки, который приезжает вместе с продуктом. Модель – ваша: любой сервер, совместимый с программным интерфейсом OpenAI, в том числе локальный. Правки в конфигурацию Pilot не вносит – их применяет разработчик.

18300 руб.

11.09.2026    3813    5    0    

10

Инструменты администратора БД Инструментарий разработчика Роли и права Разработчик 1С:Предприятие 8 1C:Бухгалтерия Россия Платные (руб)

Расширение позволяет без изменения кода конфигурации выполнять проверки при вводе данных, скрывать от пользователя недоступные ему данные, выполнять код в обработчиках. Не изменяет данные конфигурации, легко устанавливается практически на любую конфигурацию на управляемых формах.

17000 руб.

10.11.2023    28809    103    46    

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


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

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


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

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

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

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

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

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

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

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

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

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

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

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

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

(107) alexer, Ваш кропотливый и качественный труд действительно произвел на меня сильное впечатление. Большое Вам спасибо за обозначенные ориентиры.
105. IVSH 218 14.02.12 15:08 Сейчас в теме
При сравнении двух ЗиУП (ЗиУП 2.5 и ЗиУП КОРП) вылетает следующее
{Форма.Форма.Форма(1720)}: Значение не является значением объектного типа (Имя)
Поз=Найти(Ячейка.Имя,"C");

Дерево не строится. Если нажать вручную Перестроить, сравнение появляется, но почему то говорит различаются только РС и Документы хотя при типовом сравнении различается вся конфа.
106. пользователь 15.02.12 13:21
Сообщение было скрыто модератором.
...
107. alexer 1028 15.02.12 17:03 Сейчас в теме
что ж, отличная вещь, плюсану, тем более что здесь есть часть моего труда
109. azmon 1 16.02.12 06:58 Сейчас в теме
а на 8.2.15 работает?
111. bambr1975 887 16.02.12 09:14 Сейчас в теме
(109) azmon, тестировалось на 8.2.15.294. Проблема в распаковке, описанная в (99) проявлялась только на тех конфигурациях, где в дерево метаданных были добавлены объекты в ветку "Внешние источники данных" или в ветку "Общие реквизиты". Любые другие конфигурации/обработки/обновления проблем в распаковке не вызывали.
110. WendyH 16.02.12 07:37 Сейчас в теме
Чем удобнее вывод о сравнении объектов, тем эта вещь будет полезнее. Так что начало очень хорошее и надеюсь проект вырастет в что-то незаменимое. Автору респект. Недавн, всё-таки, выручила эта работа.
112. vasiliy_b 284 16.02.12 21:48 Сейчас в теме
Заметил такой глюк, если в сравнении файлов начать работать без мышки, то 1С вываливается без ошибок.
113. bambr1975 887 16.02.12 22:01 Сейчас в теме
А что нужно сделать, чтобы ЭТО воспроизвести? Выткнуть мышку или нажать кнопку на клавиатуре? Делал и то и другое - и на 8.2.13 и на 8.2.15... Может, у Вас нестабильный релиз платформы или какие другие совокупности влияющих обстоятельств? Неужели действительно есть подозрение, что это вина моей обработки?
114. vasiliy_b 284 16.02.12 22:14 Сейчас в теме
Повторилось на двух последних платформах. Последовательность следующая: Сравниваю 2е конфы, дальше открываю дерево сравнения файлов(раздел общие) и начинаю по списку их раскрывать подряд и по ним дважды мышкой щелкать... на каждом говориться что файлы идеентичны... далее мне это надоедает и я начинаю работать клавой стрелка вниз, вправо, ентер.... приехали обработка закрывается ни чего не сказав. второй раз даже стала ругаться что какой-то файл не может удалить(видимо чистит кэш), т.к. он заблокирован.
115. bambr1975 887 16.02.12 23:12 Сейчас в теме
(114) vasiliy_b, во вчерашнем апдейте эта проблема частично решена - визуально теперь и так понятно, какие файлы идентичны. Так что лучше не мучать платформу количеством вызовов, а вызывать только измененные файлы.
116. phosphorror 19.02.12 13:42 Сейчас в теме
Вот это действительно пригодится в жизни!
117. Alexey55 20.02.12 15:18 Сейчас в теме
Спасибо огромное! полезнейшая вещь! +++++
120. oleg974 123 21.02.12 11:16 Сейчас в теме
Для сравнения форм мне больше подходит типовая галочка "Показывать различия графически" при формировании отчета о сравнении...
Все очень подробно и с картинками :)
Файлы отчетов и обработок отлично сравнивает типовая "Сравнить файлы"...

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

Раньше приходилось держать одну чистую конфу и на нее накатывать обновление чтобы получить cf нового релиза, а тут опана и сразу сравнивай...
Мог бы еще пару раз плюсанул.
121. oiv 22.02.12 10:21 Сейчас в теме
Очень полезная разработока.
122. Aron23 22.02.12 14:57 Сейчас в теме
Это однозначно (+). Оченб полезная фича.
Спасибо.
123. пользователь 23.02.12 14:23
Сообщение было скрыто модератором.
...
124. yalo 28.02.12 15:54 Сейчас в теме
Возможно ли с помощью данной обработки сравнить правила обмена в типой конфигурации и измененной?
Пробовала сравнивать, но сами правила обмена через данную обработку открываются в неизвестном формате. Или я что-то не так сделала?
125. dyh 4 29.02.12 10:41 Сейчас в теме
Надеюсь облегчит жизнь в бесподдержной бескомментарной бухии 2.0.30
126. bambr1975 887 04.03.12 21:10 Сейчас в теме
Обновлено.
Исправлена ошибка в алгоритме сравнения измененных файлов (касается изменений модулей форм).
Доработано сравнение элементов формы - изменения учитываются поэлементно - можно просмотреть значения изменений в свойствах.
Расширены возможности фильтра сравнения.
Опционально добавлен "Hard" режим для вывода в дерево реквизитов, табличных частей и пр. (на хитрых конфигурациях обработка при разборе в "Hard" режиме может зависать - сообщайте название - буду исправлять)
127. Boroda 90 04.03.12 22:39 Сейчас в теме
Очень полезный инструмент! Как я его раньше не увидел... Очень пригодился бы для анализа. Спасибо автору!
128. bambr1975 887 10.03.12 21:56 Сейчас в теме
Обновлено. По просьбе pumbaEдобавлен режим 3-way diff. Работает, вызывая внешнюю программу сравнения файлов, поддерживающую 3-х уровневое сравнение (из бесплатных - KDiff3и SourceGear DiffMerge). Для корректной работы с кирилицей в именах файлов качайте последние версии.
На данный момент - сравнение только текстовое - причем для форм раскраской строк анализируются как изменения в модулях, так и изменения в диалогах - а на сравнение выводятся только файлы модулей. Обращайте внимание.
129. pumbaE 12.03.12 17:41 Сейчас в теме
Спасибо, большое!
130. пользователь 13.03.12 13:38
Сообщение было скрыто модератором.
...
131. Kaperang 99 22.03.12 12:26 Сейчас в теме
Шикарная обработка!!!
Но позволяет, насколько я понял, только просматривать/сравнивать метаданные конфигурации. Возможность изменения метаданных вручную/по произвольному алгоритму и последующей запаковки обратно в .cf отсутствует.
132. bambr1975 887 22.03.12 12:37 Сейчас в теме
(131) Kaperang, Вы правильно поняли. Это уже было сказано в (80).
133. genayo 27.03.12 17:17 Сейчас в теме
Полезная обработка, подчерпнул несколько интерсных идей. Дальнейшее развитие функционала планируется?
134. bambr1975 887 27.03.12 17:33 Сейчас в теме
(133) genayo, наращивание аналитических способностей и быстродействия - планируется... Идеями поделитесь?
135. genayo 27.03.12 18:06 Сейчас в теме
Из функционала хотелось бы наличие возможности сравнения не просто модулей объектов/форм, а сравнение конкретных обработчиков событий. По быстродействию вроде особых вопросов нет, V8Unpack ускорить врядли удастся. Если только в качестве парсера использовать не VBScript.RegExp а какую-нибудь специализированную внешнюю компоненту...
136. Magister 134 29.03.12 18:57 Сейчас в теме
(135)
V8Unpack ускорить врядли удастся

Да ладно вам. Более быстрый распаковщик сделать достаточно несложно.
137. bambr1975 887 29.03.12 19:01 Сейчас в теме
(136) Magister, ну и????? Желание написать более быстрый распаковщик не пропало?
139. Magister 134 30.03.12 00:59 Сейчас в теме
(137) Попытаюсь завтра найти свои наработки. Насколько помню, распаковку я делал - только довел до ума, или нет, не помню. Если есть что-то стоящее - выложу.

(138) Потому что никому не нужно было.
138. genayo 29.03.12 19:10 Сейчас в теме
(136) Может и не сложно, но за 3 года никто так и не написал почемуто... Ладно, попробую исходники эксперту по плюсам послать, может и найдет чего оптимизировать...
bambr1975; +1 – Ответить
140. Magister 134 31.03.12 02:52 Сейчас в теме
Нашел я свою программу, чуть доделал. Получилось быстро :)
Ну вот например:
УТП для Украины, конфигурация поставщика.
V8Unpack: 59 секунд
Мой парсер: 18 секунд.
Как вам?
Файлик прикрепляю.

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

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

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

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

Тут мне кажется, что просто не было нормального применения распаковке - соответственно, зачем делать?
Теперь вот есть ваша разработка, уже практический смысл появился :)
143. Magister 134 31.03.12 14:07 Сейчас в теме
(141) Хм, сам уже нашел проблемную форму. Буду разбираться.
144. pumbaE 31.03.12 14:17 Сейчас в теме
(143) Magister, причем по логам вроде как форму находит:
- file form, created 19.06.2011 21:54:46, modified 19.06.2011 21:54:46
145. Magister 134 31.03.12 20:26 Сейчас в теме
(144) Видел. Программа находит, но не может распаковать. Похоже где-то с адресами ошибся при сборке данных по блокам.
Найду время, поправлю...
151. Magister 134 03.04.12 00:38 Сейчас в теме
(144)
Вот поправил распаковку.
Также по кнопке "Analyze" сделал вывод и составных объектов тоже (можно развернуть, например форму - внутри будет form и module).
Прикрепленные файлы:
showpack.zip
bambr1975; +1 – Ответить
152. bambr1975 887 03.04.12 09:50 Сейчас в теме
(151) Magister, с очевидной проблемой Вы справились (kDiff это подтверждает). Но заявленных Вами 18 секунд распаковки УПП мне, к сожалению, зарегистрировать не удалось (см. скриншот). УТП у меня, к сожалению, нет - но и УТ Вашим просмотрщиком распаковывается дольше, чем вы утверждаете...
Прикрепленные файлы:
153. Magister 134 03.04.12 11:22 Сейчас в теме
(152) А сравните с V8Unpack.
18 секунд на УТП - это второй запуск, когда сам .cf уже закеширован Windows.
У меня на ноуте сейчас получается, что ограничивающим фактором является скорость дисковой подсистемы, а не процессора.
А про 18 секунд на УТ я не утверждал, т.к. у меня её просто нет. Ну и скорость Вашего компьютера мне тоже неизвестна.
---
Вобщем, сравните с V8Unpack.
216. yandextesting 151 16.11.12 15:31 Сейчас в теме
В каком-то редком случае (локализовать пока не смог, т.к. при подключении конфигуратора для отладки и установке точки останова на указанной строке наблюдается "висяк" 1С:Предприятия после запуска сравнения прав, а как только конфигуратор закрывается, снова вываливается та же ошибка; это наблюдается только для одной роли) при сравнении прав в режиме сравнения двух конфигураций выдает ошибку:

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

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


соответственно, ошибка потом и вылазит при попытке поиска по несуществующей колонке.
219. bambr1975 887 21.11.12 17:27 Сейчас в теме
(218) yandextesting, что-то действительно не все в прошлый раз удалось поправить - в текст ошибки, конечно, надо было повнимательнее вчитаться. Исправления в очередной раз внесены. Очень надеюсь, что на этот раз - не застрянет. =)
220. yandextesting 151 22.11.12 11:39 Сейчас в теме
(219) запускал для тестирования версию, которую вы подготовили для меня: ошибка-то исчезла, НО результат сравнения совершенно неверный, см. прикрепленные скрины:
Прикрепленные файлы:
221. yandextesting 151 22.11.12 11:51 Сейчас в теме
(219) Собственно говоря, попытался открыть для просмотра прав эту же роль без сравнения, выдается та же ошибка (см. скрин).
Прикрепленные файлы:
222. yandextesting 151 22.11.12 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. bambr1975 887 22.11.12 12:13 Сейчас в теме
(222) yandextesting, тот внутренний формат, который Вы привели в пример - дает галочка "Устанавливать права для новых объектов" для ролей, у которых по умолчанию запущено действие "Установить все права". Я знаю об этой особенности. Это ограничение моей обработки, потому что она все-таки разбирает внутреннее представление, а здесь разбирать нечего. Видимо для таких ролей надо устраивать какой-то особый разбор. В любом случае, спасибо за Ваши комментарии. Буду работать в этом направлении.
154. Magister 134 03.04.12 11:36 Сейчас в теме
(152) И да, я про УПП ничего не говорил. Только про УТП для Украины - а она намного меньше, чем УПП.
146. Alex353 6 01.04.12 20:04 Сейчас в теме
Обработка не анализирует цвета текста и цвета фона элементов и не показывает в различиях.
147. bambr1975 887 01.04.12 20:13 Сейчас в теме
(146) Alex353, а по моему, анализирует - и сравнить можно...(см. скриншот) Или Вам важно получить отличия в каком-то другом виде?
Прикрепленные файлы:
148. Alex353 6 02.04.12 12:06 Сейчас в теме
(147) Да прошу прощения, на это окно не обратил внимания. Я имел ввиду в сравнении кода генерации форм нет различий, поэтому я руками добавлял строки следующего вида:
Надпись.ЦветТекста = Новый Цвет(153, 51, 0);
149. bambr1975 887 02.04.12 15:22 Сейчас в теме
(148) Alex353, а куда и зачем Вы их добавляли?
P.S. Моя обработка имеет крайне отдаленное отношение к задаче декомпиляции форм - так что автоматизированное получение этих строк - это не ко мне...
Задачи анализа и сравнения - это да, мое. А всяческая автоматизация получения кода чего либо... приходится довольствоваться заимствованным...:)
150. Alex353 6 02.04.12 16:19 Сейчас в теме
(149) я прочитал статью http://infostart.ru/public/67729/ и решил опробовать на деле рекомендации по декомпиляции формы и переносу реквизитов формы путем генерации элементов в коде. Я сравнивал формы типовой и модифицированной конфигурации для того чтобы добавленные мной реквизиты выводить на форму кодом, так поддерживать конфигурацию будет проще при обновлениях. В статье упоминается другая обработка, но я понял, что ваша основана на ней и подобных. Я пересмотрел несколько обработок и все они не могут выполнить свою задачу в полном объеме. Мне попалась только одна обработка декомпиляции которая видит свойство Данные объекта ПолеВвода, но в любом случае объем ручной работы не так велик.
155. pumbaE 03.04.12 12:55 Сейчас в теме
УТП - 78 секунд, по ощущениям быстрее чем unpack, но замеров точных не производил.
18 секунд на УТП - это второй запуск, когда сам .cf уже закеширован Windows.
Если честно непонятно зачем второй раз запускать, если необходимо распаковать и проанализировать результат... То, что второй раз 18 сек конечно хорошо, только я не могу придумать применения, для второго раза.

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

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

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

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

Хотелось бы, конечно иметь альтернативу для v8unpack.
158. Magister 134 06.04.12 14:03 Сейчас в теме
(157)
Т.к. программа приняла более-менее нормальный вид и функциональность, выложил публикацией: http://infostart.ru/public/124213/
bambr1975; +1 – Ответить
159. bambr1975 887 28.04.12 08:11 Сейчас в теме
Обновлено.Исправлены ошибки.
Специально для сравнения форм в проекте "Снегопат" - snegopat.ru по инициативе pumbaE добавлен новый режим выбора объекта "Режим ssf" - можно сравнить файлы форм снегопата.
В навигаторе файлов появилась колонка "Размер", с возможностью сортировки по ней (для определения наиболее "массивных" составляющих конфигурации).
Добавлено "кэширование" сформированных деревьев метаданных (при включенном "кэшировании" дерево файла конфигурации, которую уже хотя бы раз разбирали - будет построено из кэша).
Панель "Свойства" отделена от формы "Разбор элементов форм" - вызывается двойным щелчком по дереву элементов формы
В панели "Свойства" выводятся и свойства, и привязки, и обработчики событий элемента, причем в режиме сравнения - щелчок по строке различающихся действий выводит окно сравнения текстов-обработчиков.
На вкладке "Модуль" формы "Разбор элементов формы" - появилось табличное поле структурных различий процедур и функций модуля. Аналогично - двойным щелчком выводится окно сравнения их текстов.
Новая функция - "Декомпиляция изменений" - тестовый вариант.
Значительно увеличилась скорость разбора форм!!!!!
161. AlexO 136 04.05.12 15:16 Сейчас в теме
(159)
так и не увидел описание функции "Декомпиляция изменений"....
:(
162. bambr1975 887 04.05.12 15:28 Сейчас в теме
(161) AlexO, ну... вас порядок действий интересует? Или смысл этой функции вообще? Если смысл понятен - то и результат тоже будет понятен. Гиперссылка вызова этой функции вроде не спрятана - находится в строке навигации по изменениям элементов форм (естественно, будет видна только в режиме сравнения). Само сравнение форм можно вызвать либо из строки дерева сравнения объектов метаданных, либо - в режиме ssf - открывается по умолчанию. Надеюсь, если Вы попробуете, Вам все станет понятнее...
164. AlexO 136 04.05.12 17:07 Сейчас в теме
(162)
да я как бы сам термин не до конца понимаю - и отсюда вопрос, для чего эта функция? :)
Т.е. это так названо визуализация отличий форм при сравнении?
167. pumbaE 04.05.12 17:10 Сейчас в теме
(164) AlexO, нет вы можете не добавлять на форму реквизиты, исправлять привязки а просто скопировать код и вставить его как вызов отдельной процедурой в "ПриОткрыти", по факту изменения в форме у вас будут только в модуле формы.
168. AlexO 136 04.05.12 17:13 Сейчас в теме
(167) pumbaE,
а, т.е. обработка умеет "читать" не только ЭУ, но и научилась пониамть код в ПриОткрытии формы, откуда потом "воспроизводит" программные ЭУ этой формы? Или снова не то?
175. bambr1975 887 05.05.12 10:10 Сейчас в теме
(164),(171) AlexO,
да я как бы сам термин не до конца понимаю - и отсюда вопрос, для чего эта функция? :)

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

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

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

Обработка видит форму такой, какой видит ее конфигуратор (в конфигураторе в режиме просмотра формы никаких "программных элементов" на форме нет). Сравниваются представления форм, такими, какими их видит конфигуратор.
P.S. V8Reader - это обработка для анализа и сравнения, инструмент исследователя, там четко разделены ЭЛЕМЕНТЫ формы, МОДУЛЬ формы и РЕКВИЗИТЫ формы - смешивать все в кучу и искажать смысл, не сделав попытку самому разобраться - все-таки неправильно.
176. AlexO 136 05.05.12 16:30 Сейчас в теме
(175)
я успешно пользуюсь декомпиляцией форм, но смысл (или построение фразы-термина) "декомпиляция изменений" (декомпиляция - "вытаскивание" в обратку визуальных ЭУ как кода, а "декомпиляция изменений" - вытаскивание визуальных изменений как кода?) как-то не укладывается.
Т.е. вы получаете этой функцией отчет (в виде кода) об изменениях визуальных ЭУ при сравнении двух форм? Теперь правильно?
177. bambr1975 887 05.05.12 16:46 Сейчас в теме
(176) AlexO, функция "Декомпиляция изменений" выдает отчет - в виде кода, поместив который в процедуру "ПриОткрытии" в старой форме можно добиться ее полного соответствия новой форме по части статических (не добавленных программно) ЭУ (анализируются свойства, привязки и добавленные/удаленные действия). Это правильно.
178. AlexO 136 05.05.12 17:19 Сейчас в теме
(177)
вот теперь все понятно, спасибо ))
160. slavich 7 04.05.12 14:05 Сейчас в теме
Плюс и только плюс, жалею только одно, что не видел эту обработку два месяца назад, обновлял конфу, очень сильно переписанную, но хотя хоть как нужно еще 4 обновления накатить, так что +++++.
163. Magister 134 04.05.12 16:01 Сейчас в теме
"Режим ssf" - можно сравнить файлы форм снегопата.

А что за ssf такой? Я сходу не нашел нигде. Дайте, пожалуйста, ссылочку почитать.
165. pumbaE 04.05.12 17:08 Сейчас в теме
(163) Magister, это файлы форм для скриптов снегопата , там такое же внутреннее представление формы, только без отдельного файла заголовка.
170. Magister 134 04.05.12 17:24 Сейчас в теме
(165) Спасибо, понял.
(169) Реквизиты формы все равно не добавляются, так что только модулем не всегда получится обойтись. Или нашли уже способ?
172. pumbaE 04.05.12 17:53 Сейчас в теме
(170) Magister, обходной способ: для частного случая, при использовании общих реквизитов, общий реквизит неявно добавляется в форму.

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

я думаю, мы с вами не до конца понимаем, о чем речь - поэтому я и прошу прозрачно разъяснить, из каких соображений появилась то-то или то-то - ведь не все думали именно в том же русле, что и автор обработки :)
166. AlexO 136 04.05.12 17:08 Сейчас в теме
(163) Magister,
видимо, ssf - это формат скриптов для Снегопата...
169. pumbaE 04.05.12 17:19 Сейчас в теме
нет, у вас есть различия в формах, в теории эти различия можно программно сделать, т.е. есть типовая форма и добавленный какой либо элемент на форму вами или исправленный (представление), т.к. формы не часто меняются, то с помощью данного инструмента вы можете сформировать код для программного добавления/изменения элементов формы и вручную прописать в его (куда вы его пропишите уже от вас зависит). При следующем обновлении конфигурации, если форма не изменялась то и вам не надо будет никаких изменений вносить в форму, модуль формы, конечно будет изменен, но изменения модуля легче понять, чем визуально искать изменения в представлении формы.
171. AlexO 136 04.05.12 17:51 Сейчас в теме
(169) pumbaE,
если форма не изменялась то и вам не надо будет никаких изменений вносить в форму, модуль формы, конечно будет изменен, но изменения модуля легче понять, чем визуально искать изменения в представлении формы.

ну, т.е. все-таки обработка сравнивает две формы по методу "реальная форма + программные элементы" ))
Объясняю, почему пытаюсь прозрачно все уяснить.
Андрей пишет для себя, и понимает, зачем ему нужно то или то-то, но в описании не всегда все есть - а многие даже возможность того или иного действия над формами не обдумывали, поэтому и не ясно, что когда есть некая функция - а для чего она, собственно, реализована в обработке-то? ))
174. pumbaE 04.05.12 18:12 Сейчас в теме
AlexO, код формируется для реальной формы, без учета программного добавления элементов в форму. (мы то читаем cf, epf и т.д.).
179. rybusha 102 10.05.12 11:35 Сейчас в теме
Очень понравилось.Но объясните ,для тех кто в танке."Различаются тлько тексты представления форм"-это что.Показывает для не изменненых объектов
180. bambr1975 887 10.05.12 11:51 Сейчас в теме
(179) rybusha, "Отличаются только представления форм" - это гиперссылка, если на нее нажать, станет видно что на физическом уровне файлы форм все-таки различны (изменены некоторые идентификаторы свойств элементов и пр.). По каким причинам форма может измениться таким образом я не знаю... Спонтанно такие изменения не происходят - возможно, это может произойти при реструктуризации таблиц или при работе с буфером обмена. Точно не скажу.
181. пользователь 16.05.12 09:30
Сообщение было скрыто модератором.
...
183. lion-killer 23 24.05.12 13:30 Сейчас в теме
А где же структурное сравнение модулей объектов? Только в модулях форм нашел.
185. bambr1975 887 30.06.12 10:46 Сейчас в теме
Добавлена новая функциональность - анализ и сравнение ролей и ограничений доступа.
За основу формата вывода взята публикация Отчет по системе прав для 8.2 на СКД от Zigfridish
В качестве быстрых отборов при сравнении ролей можно отбирать объекты с измененными правами, объекты с измененными ограничениями доступа. Также обработка позволяет сравнивать изменения в шаблонах ролей и в ограничениях доступа.
186. soulsteps 73 30.06.12 13:31 Сейчас в теме
Большое спасибо! Безупречная обработка!
187. CheBurator 3235 01.07.12 12:57 Сейчас в теме
188. ShootNICK 14 06.07.12 15:45 Сейчас в теме
Прикольная штучка. Подскажите - как включить (если есть) просто режим сравнения печатных форм. т.е. 2 mxl (не в обработках а standalone)
189. bambr1975 887 06.07.12 16:07 Сейчас в теме
(188) ShootNICK, в режиме Предприятие и Конфигуратор в меню Файл есть пункт "Сравнить файлы". Там в поле "Как" можно выбрать вид сравнения "Табличный документ" и сравнивать таким образом 2 mxl. А программно это достигается путем использования объекта встроенного языка "СравнениеФайлов", установив свойство "СпособСравнения" этого объекта в значение СпособСравненияФайлов.ТабличныйДокумент
190. ShootNICK 14 06.07.12 16:10 Сейчас в теме
(189) чОрт и точно =) позор на седины.
191. khaoos 239 11.08.12 20:21 Сейчас в теме
Разработка просто мегакрутая. Обязательно буду пользоваться. Автору мое почтение. Пока только немножко потыкался для ознакомления. Наткнулся на следующие ошибки:
1. Форма "Разбор элементов формы". Нажатие на гиперссылку "Открыть диалоговое окно" приводит к ошибке (см. скриншот). Может быть не принципиально, но это основная форма отчета (на обработках, скажем, ошибку не ловлю). Версия платформы 8.2.14.540. Конфигурация "Инструменты разработчика 2.55", отчет "ирКонсольКомпоновокДанных", Форма "Форма".
2. Небольшая недоработка. При первом запуске, ничего не выбирая, нажимаем на кнопку "Открыть навигатор файлов", получаем исключение, надо б перехватить :).
Прикрепленные файлы:
192. bambr1975 887 19.08.12 23:29 Сейчас в теме
Обновлено. Учтены некоторые пожелания пользователей. В частности, при перемещении по дереву метаданных при открытом навигаторе файлов по умолчанию происходит позиционирование на файл выделенной строки. Также для возможности использовать режим ssf для анализа выгруженных платформой 8.3 бинарных файлов форм в процедуру выбора файла формы добавлен фильтр .form.
(191) khaoos, исправления внесены. Однако, признаюсь, что проблема, возникшая у Вас в первом пункте, может у кого-нибудь проявится снова. Дело в том, что визуализация форм реализована исключительно для демонстрации факта, что «все-таки, она вертится!», и сделано это с помощью различных бутафорских трюков, которые, конечно, не полностью компенсируют весь набор заложенного в платформу (к примеру, кнопки стандартных действий и автозаполнение панелей в визуализированной форме отображаются далеко не полностью). Но, я надеюсь, большого неудобства это доставлять не должно. Может, позже станет лучше понятно, каким образом было бы правильнее учитывать эту проблему, но на данный момент – так.
khaoos; teflon; +2 – Ответить
193. khaoos 239 20.08.12 13:34 Сейчас в теме
bambr1975, подскажи, пожалуйста. Есть ли способ сравнивать объекты метаданных по именам? Например, в моем случае, есть две обработки, в каждой по форме "ФормаДокумента" (которые были получены перетягиванием из разных мест, соответственно, с разными УИДами). Хотел было сравнить и декомпилировать изменения, но застопорился. Может чего очевидно не вижу?
Прикрепленные файлы:
194. bambr1975 887 20.08.12 14:09 Сейчас в теме
(193) khaoos, сравнение объектов метаданных производится по их синонимам. То есть, для формы объекта конфигураций синонимом является, например, Справочник.Номенклатура.Форма, то есть, если Вы будете сравнивать формы справочника Номенклатура в различных конфигурациях, то V8Reader их сравнит именно по их имени (как Вам этого и хочется). А в случае с внешними отчетами и обработками синонимами будут - соответственно ВнешняяОбработка.Целевая.Форма и ВнешняяОбработка.Типовая.Форма. То есть без изменения V8Reader-а решить вопрос можно просто переименовав имя обработки (не имя файла обработки, а само свойство обработки "Имя"). Мне кажется, это не должно составить затруднений.
Второй способ: В навигаторе файлов найти и запомнить пути к папкам с нужными формами. Выбрать режим ssf. В качестве каталогов распаковки указать эти пути. Нажать на кнопку "Вывести" (в этом случае поле "Файла распаковки" можно не заполнять - оно роли не играет) - будет произведено сравнение именно этих, выбранных Вами форм.
195. pumbaE 20.08.12 17:10 Сейчас в теме
(194) может сделать как в снегопате в extfiles - добавить подменю с командой "Добавить к сравнению" и если на двух формах подряд клацнуть, то и вызвать сравнение этих форм?
196. khaoos 239 20.08.12 18:38 Сейчас в теме
(194) спасибо, завтра опробую в боевых условиях :)
197. khaoos 239 21.08.12 10:48 Сейчас в теме
Вот еще что накопал: при декомпиляции формы вместо свойства "ГоризонтальноеПоложение" элемента формы (если важно, то у меня "переключателе" проявляется) еще раз выводится "ВертикльноеПоложение":

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

и нужно ли раскомментировать строчку с установкой этого свойства в отчете Декомпиляция изменений - выложу новую версию.
201. khaoos 239 21.08.12 13:48 Сейчас в теме
Нужно ли писать замечания следующего рода? При декомпиляции изменении выходят строчки кода добавления кнопки подменю командной панели в следующем порядке:

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

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

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

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

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

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

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

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

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

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

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

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

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

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

(211) artbear, (204) khaoos, (208) SkorikA, - исправлено, (195) pumbaE, (209) (210) babys, - реализовано
teflon; khaoos; +2 – Ответить
214. daho 8 10.11.12 11:56 Сейчас в теме
Незаменимая вещь!!!!! Просто супер!!! Если прикрутить к какой нибудь SVN системе вообще конфетка получится для групп разработчиков.!!! Автору Респект и Уважуха!!
215. Alfer 12.11.12 10:24 Сейчас в теме
спасибо - буду пользоваться
224. Evil Beaver 8430 26.11.12 18:30 Сейчас в теме
Интересная штука. Обработка отличная, работа проделана колоссальная, но стиль кода!!! Я плакал кровавыми слезами когда все это увидел!
Почему, почему такой спагетти-код, переменные с именами "ы" и "ъ", которые нигде к тому же не используются? Почему перебор колонок табличного макета делается так:
ЗначениеЯчейкиСинонима=Лев(Ячейка.Имя,Поз)+Строка(Число(Прав(Ячейка.Имя,СтрДлина(Ячейка.Имя)-Поз))+4);
ЗначениеЯчейкиИндексаКартинки=Лев(Ячейка.Имя,Поз)+Строка(Число(Прав(Ячейка.Имя,СтрДлина(Ячейка.Имя)-Поз))+3);

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


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

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

Итого, автору все равно спасибо, т.к. есть инструмент, и есть поле для дальнейшего изучения. Т.е. суммарно - это классная обработка и результат большого труда.
227. sorb 05.12.12 14:14 Сейчас в теме
имхо обработка лучшая из подобных! Не нашел ни одного косяка из присущих другим обработкам. Жаль плюс только один можно ставить :)
228. babys 91 06.12.12 12:42 Сейчас в теме
Автору v8unpack не распаковывает, по крайней мере у меня, конфы с 17 релиза.
Извечный вопрос, "что делать"?
229. rasswet 82 12.12.12 11:13 Сейчас в теме
а по сравнению управляемых форм, что-то есть? или это не возможно на данном этапе развития?
230. bambr1975 887 12.12.12 11:23 Сейчас в теме
(229) rasswet, работа в этом направлении уже ведется. Полный объем анализируемых свойств гарантировать не могу, но факт различий и значения некоторых различающихся свойств показывать будет. Уже скоро.
231. rasswet 82 12.12.12 11:39 Сейчас в теме
(230) отлично! не сочтите за труд-как апдейт выйдет напишите в скобках номер этого поста , чтобы мне в почту упало оповещение.
237. bambr1975 887 13.02.13 13:18 Сейчас в теме
Исправлены ошибки.
Две новых фунциональности.
Первая функциональность - расширенный анализ управляемых форм. В панель свойств выводится список свойств элемента управляемой формы. Свойства анализируются во внутреннем представлении
Вторая функциональность - возможность вывода отчета по роли в режиме "дополнения" - в отчет выводятся не только заданные в файле роли права, но и права по умолчанию. (возможность пока тестовая)
(229) rasswet, реализовано.(220) yandextesting, исправлено
238. rasswet 82 13.02.13 13:57 Сейчас в теме
(237) отлично, спасибо-беру тестировать!
232. babys 91 04.01.13 12:09 Сейчас в теме
bambr1975, косяк не косяк, но вот при структурном сравнении модулей иконки типов функции и процедур правильно отображается только для структуры первого модуля, а второй показывает всё наоборот.
233. babys 91 15.01.13 22:53 Сейчас в теме
А что обозначает сообщение:
Результат распаковки не является результатом распаковки для файла конфигурации
????
234. bambr1975 887 16.01.13 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 91 16.01.13 17:11 Сейчас в теме
Еще вот такое пишет:
{Форма.Форма.Форма(1179)}: Ошибка при вызове метода контекста (Прочитать)
	ТекстОписания.Прочитать(КаталогМетаданных + "\" + ИмяФайлаОписания);
по причине:
Ошибка доступа к файлу 'D:\KA.cf.und'

А это что может быть?
236. bambr1975 887 16.01.13 17:27 Сейчас в теме
(235) babys, для более предметного обсуждения - можно попросить cf, который вызвал затруднения, выложить куда-нибудь на файлообменник и прислать ссылку в личку?
239. rasswet 82 14.02.13 19:00 Сейчас в теме
а две формы одного документа в одной конфигурации можно сравнить между собой?
если есть, подскажите, не нашел как.
240. bambr1975 887 14.02.13 19:19 Сейчас в теме
(239) rasswet, см. скриншот "Произвольное сравнение". В дереве метаданных (панель слева основной формы обработки) выбираете первую форму и в контекстном меню вызываете пункт "Запомнить выбранный объект для сравнения" а потом - на второй форме вызываете из контекстного меню пункт "Добавить к сравнению вторую форму". Для конфигураций работает и в режиме анализа и в режиме сравнения. Для обработок - только в режиме сравнения. В режиме анализа пока не работает (чуть позже починю).
241. sergant500 15.02.13 23:12 Сейчас в теме
Нашел при декомпиляции изменений косячок:
Создал в форме документа «Реализация товаров и услуг» БП 2.0 реквизит «Этап» тип «СправочникСсылка.Этап» в табличной части услуг. После декомпиляции изменений код:

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


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

Надо
Кнопка = ЭлементыФормы.КоманднаяПанельУслуги.Кнопки.ПодменюЗаполнить.Кнопки.Добавить("ЗаполнитьПоВидамРабот",ТипКнопкиКоманднойПанели.Действие,"Заполнить по видам работ",Новый Действие("КоманднаяПанельУслугиЗаполнитьПоВидамРабот"));
243. yandextesting 151 26.02.13 13:42 Сейчас в теме
мысль к развитию функционала - добавить возможность сравнения СКД в режиме сравнения генерирующего ее кода. Для преобразования СКД в код можно попробовать взять наработки из Автоматическое преобразование схемы СКД в программный код
258. AlexO 136 15.03.13 11:39 Сейчас в теме
(243) yandextesting,
Для преобразования СКД в код можно попробовать взять наработки из Автоматическое преобразование схемы СКД в программный код

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

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

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

Совершенно верно, т.е., по сути, тот "конвертер" лишь дает в удобной (более-менее) форме просмотр схемы СКД по XML, и "сырой" код-представление этой схемы в 1С.
Вашим же ридером - я тоже пользуюсь постольку поскольку: только для сравнения cf и cfu, ну и по другой мелочи сравнений :)
А так - есть и типовые средства сравнения форм, обработок, конфигураций; для программного формирования - больше подходит декомпилятор форм от Истура и т.д. :)
244. yandextesting 151 14.03.13 09:41 Сейчас в теме
(0) еще мысль, добавить из типовой КД «Сравнение и объединение правил обмена», чтобы иметь все в одном месте
245. VVi3ard 52 14.03.13 15:59 Сейчас в теме
Глупый вопрос, но не могу понять можно ли получить код для генерации формы?
Т.е. как "Отчет о декомпиляции изменений формы" только не для изменений а просто для формы?

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

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

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

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


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

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

Декомпиляторы только генерируют код, который позволяет программно создавать элементы на форме.
Ни саму форму (как класс), ни код в конфигураторе - сгенрировать нельзя.
Обработка собфтий формы и данных - это все ручками, по месту.
Ни одна обработка не генерирует "рабочий" код обработки данных.
252. VVi3ard 52 14.03.13 18:32 Сейчас в теме
(246) AlexO,
Можно только получить код для создания элементов, и вставить его в Конфигураторе в нужное место.

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


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


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

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

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


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

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

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

ну так и выложите автору в комментах, пусть порадуется, может, сподобится и свою доделать :)
255. AlexO 136 15.03.13 10:06 Сейчас в теме
(252) VVi3ard,
Есть похожая обработка для СКД которая по схеме генерирует код создания этой схемы.
Если вы про это:
Автоматическое преобразование схемы СКД в программный код
то это не создание СКД программно, а всего лишь чтение схемы - настройки, параметры, запросы, etc. Что мало дает для создания СКД - даже не указано, куда полученный код и как вставлять.
256. VVi3ard 52 15.03.13 10:12 Сейчас в теме
(255) AlexO, горшочек не вари.
bambr1975; +1 –1 Ответить
257. AlexO 136 15.03.13 10:18 Сейчас в теме
(256) VVi3ard,
чего? Или уже начинается крайняя клиническая стадия тру-1сника?
Быстро же накрыло, можно сказать - почти мгновенно .. :)
247. AlexO 136 14.03.13 16:17 Сейчас в теме
(245) VVi3ard,
Подобные обработки уже есть:

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

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

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

Так там и создание элементов не работает?!
"Тогда УФ - не наш метод" (с)
261. sstvit 31.03.13 20:40 Сейчас в теме
Просто МЕГА Талантище создал эту весчь. Спасибо
262. sytkosa 119 09.04.13 16:54 Сейчас в теме
(0)Сравнивал 2 CF УТ 11 захотел посмотреть в чем различие общей формы СписокДокументовПродажи
вылезла вот такая ошибка
{Форма.РазборФормы.Форма(4285)}: Значение не является значением объектного типа (SubMatches)
Возврат НайденныйРезультат.SubMatches(0);


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

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

На данный момент командный интерфейс не парсится (хотя по сравнению с объемом остальных уже реализованных работ это несложно). Вообще последние изменения судя по всему мало востребованы, поэтому в ближайшее время новую версию пока не планирую.
На самом деле - интересует удобство использования для управляемых форм и ролей. Что скажете? Есть ли какие-то пожелания? Может, если что-то интересное предложите - созрею на доработки...
264. sytkosa 119 09.04.13 23:02 Сейчас в теме
(263) Ну я бы регулярки бы переписал на вот эту библу работает быстрее и антивирус не нервничает
265. bambr1975 887 10.04.13 12:06 Сейчас в теме
(264) 8SiriuS8, библа интересная. Работает только в платформах, начиная с 8.2.14 (главная неприятность - то есть, неуниверсальная) - хотя, может, Александр что-нибудь может изменить. К тому же для меня, как и для tormozit актуально изменять Pattern-ы "на лету". А это влияет на быстродействие. Так что - пока что движок для регулярок менять не собираюсь.
267. smerch 30.10.13 20:03 Сейчас в теме
(265) вопрос есть.
Как-бы подключиться к процессу разработки и тестирования данного инструмента?
Интересует ловля/исправление жуков и рефакторинг.
Прикрепленные файлы:
268. bambr1975 887 30.10.13 21:02 Сейчас в теме
(267) smerch, отпишись на почту bambr1975@yandex.ru
266. aricsoft 19.10.13 15:55 Сейчас в теме
вроде модуль сеанса и модуль приложения перепутаны в дереве 3 way сравнения
Прикрепленные файлы:
269. Dmitrii D 74 07.11.13 12:21 Сейчас в теме
спасибо большое обработка супер)!
270. DrAku1a 1803 21.11.13 03:16 Сейчас в теме
Эх... Еще бы как-то редактировать все это дело ))
271. KliMich 17.02.14 16:56 Сейчас в теме
Здорово! Спавибо!
Еще бы она работала в Управляемых Приложениях ... :) (А то уже клиентов работают в них)
272. yandextesting 151 26.05.14 12:36 Сейчас в теме
ошибка сравнения форм:
"{Форма.РазборФормы.Форма(585)}: Поле объекта не обнаружено (ПанельЗакладок)
пФормаКопия.ЭлементыФормы[ИмяПанели].УстановитьДействие("ПриСменеСтраницы", Неопределено);"

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

И вот
{Обработка.V8Reader.МодульОбъекта(429,2)}: Процедура или функция с указанным именем не определена (Состояние)
<<?>>Состояние(Строка); (Проверка: Сервер)
{Обработка.V8Reader.МодульОбъекта(429,2)}: Процедура или функция с указанным именем не определена (Состояние)
<<?>>Состояние(Строка); (Проверка: Внешнее соединение)
276. bambr1975 887 12.06.14 23:18 Сейчас в теме
(275) Armando, снимите при проверке галочку "внешнее соединение".(Сервис - Параметры - Модули - Проверка - Режимы проверки).
277. Armando 1403 13.06.14 14:27 Сейчас в теме
(276) я в курсе. Просто у меня ридер встроен в конфигурацию, а проверку по всем режимам делаем. Воткнул заглушки #Если ТолстыйКлиентОбычноеПриложение Тогда
278. bambr1975 887 13.06.14 14:29 Сейчас в теме
(277) Armando, спасибо, новая версия будет с "заглушками".
279. Armando 1403 13.06.14 14:50 Сейчас в теме
bambr1975, случайно не знаешь, как GUID.4 распарсить пообъектно? Надо по каждому объекту правило поддержки получить.
280. bambr1975 887 13.06.14 14:59 Сейчас в теме
(279) Armando, мне кажется, что реальнее всего на регулярках парсинг построить. Хотя, может быть, есть и более универсальные варианты. Но это, наверное, лучше знает awa.
282. Armando 1403 21.06.14 13:39 Сейчас в теме
(280) я у него когда-то спрашивал вроде.
281. Armando 1403 21.06.14 13:35 Сейчас в теме
Вот еще. Это мы конфигурацию "причесываем".
Обработка.V8Reader.Форма.Форма.Форма Отсутствует обработчик:  ДеревоМетаданных "ДеревоМетаданныхИдентификаторОткрытие"
Обработка.V8Reader.Форма.Форма.Форма Отсутствует обработчик:  ДеревоМетаданных "Развернуть"
Обработка.V8Reader.Форма.РазборФормы.Форма Отсутствует обработчик:  ДеревоЭлементовФормы "ДеревоЭлементовФормыПриВыводеСтроки"
Обработка.V8Reader.Форма.РазборФормы.Форма Отсутствует обработчик:  Панель1 "Панель1ПриСменеСтраницы"
Обработка.V8Reader.Форма.ФормаСвойств.Форма Отсутствует обработчик:  РазличияПривязок "ТабличноеПолеСвойствПриВыводеСтроки"
Обработка.V8Reader.Форма.ФормаДляРолей.Форма Отсутствует обработчик:  Результат "РезультатОбработкаРасшифровки"
283. VovkaPutin 31 08.07.14 11:27 Сейчас в теме
классно. не хватает кнопок Свернуть/Развернуть всю структуру сравнения. + можно сделать доступным редактирование модуля формы прямо в анализе. ведь обработки внешние
284. bambr1975 887 08.07.14 12:12 Сейчас в теме
(283) VovkaPutin, Используйте стандартные возможности списков: Комбинация клавиш Ctrl+Плюс на цифровой клавиатуре даст вам тот же эффект. К тому же, если вы хотите просмотреть просто список изменений - есть специальный фильтр "Показывать только изменения списком"
286. bambr1975 887 29.01.15 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 145 02.04.15 11:19 Сейчас в теме
Добрый день.
Используя Вашу разработку можно выгрузить отчеты и обработки как отдельные файлы?
Аналогично ручного сохранения отчета из конфигуратора через "Сохранить как внешнюю обработку/отчет..."
288. bambr1975 887 02.04.15 14:38 Сейчас в теме
(287) Johny_v, такой функционал не предусмотрен.
289. apxi 71 10.04.15 16:51 Сейчас в теме
Интересная штука!
290. bambr1975 887 10.06.15 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 не распаковывает) без ущерба для производительности.

Мелкие доработки эргономики вывода сравнения временных файлов.
Gotcha; awa; Armando; +3 – Ответить
291. Gotcha 5 23.06.15 19:15 Сейчас в теме
Огромное спасибо! Фееричная обработка.
Распаковщик лежит в макете, очень удобно.
У меня мечта нормальный merge привинтить.
292. Gotcha 5 29.06.15 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. bambr1975 887 29.06.15 19:29 Сейчас в теме
(292) Gotcha, во-первых, проясните, что значит
В постоянные у меня распаковать не получается, падает распаковка с ошибкой.

Какая именно последовательность действий приводит к ошибке?
Во-вторых - функциональность Вашей мечты реализует проект precommit - у него свои тонкости и свои контрибьютеры - но задачу хранения распакованных данных для возможности просмотра изменений отчетов и обработок на github этот проект решает. Кнопка получения структуры человекопонятных папок с исходными кодами внутри в V8Reader находится на панели дерева метаданных главной формы обработки (кнопка с дискеткой). В принципе, можно ее нажимать и вручную. Также в проекте precommit реализована и упаковка данных средствами V8Unpack.
В-третьих - если все Ваши неудобства пользования моей обработкой упираются в невозможность использования kdiff, то в принципе ничего сложного в том, чтобы сделать настройку использования для сравнения текстовых файлов именно ее.
Хотелось бы понять по всем этим трем пунктам, что конкретно Вам нужно.
artbear; Evil Beaver; +2 – Ответить
294. artbear 1590 02.07.15 19:30 Сейчас в теме
Дополню (293)
У нас в портфеле, помимо проекта precommit1c, есть и "соседний" проект v83unpack
Проекты служат немного разным целям:
  • precommit1c - разборка/сборка внешних файлов 1С (epf,erf) на текстовые файлы исходников. При работе с Гит разбор на исходники выполняется в режиме git-hook - precommit. В этом проекте активно используется сабж - v8Reader
  • v83unpack - разборка/сборка конфигурации 1С (cf) на текстовые файлы исходников. Затем полученные исходники можно положить в Гит.
В обоих проектах выполняется куча работы для удобства использования в коллективной разработке, решено много сопутствующих проблем.
Проекты довольно давно живут живут в боевых средах.
306. CratosX 116 09.06.17 21:07 Сейчас в теме
(294)
Дополню (293)
У нас в портфеле, помимо проекта precommit1c, есть и "соседний" проект v83unpack

по ссылке написано:
Проект закрыт. Используйте https://github.com/EvilBeaver/oscript-library/tree/develop/src/gitsync
по которой ошибка 404.
308. artbear 1590 10.06.17 11:04 Сейчас в теме
(306) (307) В "соседнем" проекте v83unpack ссылкка на gitsync исправлена
Спасибо!
bambr1975; +1 – Ответить
295. Gotcha 5 07.07.15 14:24 Сейчас в теме
(293)
Любая последовательность действий, когда я распаковывал файл актуальной конфигурации бп 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. bambr1975 887 07.07.15 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) указать соответствующую строку запуска. Все надо пробовать)))
298. artbear 1590 08.07.15 11:34 Сейчас в теме
(295) Обрати внимание на мой пост (294)
ИМХО тебе нужен именно проект v83unpack, т.к. в нем решаются вопросы сборки/разборки конфигураций на текстовые представления и затем все выкладывается в гит.
299. artbear 1590 08.07.15 11:40 Сейчас в теме
+(298) структура проекта v83unpack:
- есть обработка для 1С - ВыгрузкаКонфигурации.epf, которая умеет все перечисленные операции выполнять как в интерактивном режиме, так и в режиме командной строки.
- есть набор скриптов unpack.os для проекта 1Script, который фактически является портированной версией ВыгрузкаКонфигурации.epf и работает в режиме консоли из командной строки.

Лично я предпочитаю последний вариант (спец.скрипты для 1Script). Этот вариант уже работает более полугода в боевой эксплуатации для нескольких команд крупного (150 человек) ИТ-отдела разработки 1С (используются кучей команд разработки)
inord777; u_n_k_n_o_w_n; awa; Evil Beaver; Gotcha; +5 – Ответить
300. пользователь 03.12.15 14:58
Сообщение было скрыто модератором.
...
297. Gotcha 5 07.07.15 18:38 Сейчас в теме
Спасибо, попробую, в самое ближайшее время, расскажу о результатах.
301. maljaev 790 07.04.16 16:49 Сейчас в теме
Огромное спасибо автору за такой труд. Есть одна просьба. Для того чтобы не заниматься плагиатом и не копипастить модули V8Reader, а также чтобы не плодить кучу версий V8Reader со своим расширенным функционалом, нельзя ли сделать механизм подключения плагинов? Ну тех же обработок из папки "plugins", в которые будет передаваться ссылка на основную форму и, возможно, другие параметры. И выводить меню со списком этих обработок. А то вот нужно было сделать групповой "инсертер" перехватчиков событий форм и модулей, пришлось кнопку в форму добавлять, процедуры...
302. artbear 1590 08.04.16 12:15 Сейчас в теме
(301) Идея с плагинами полезна, согласен. Мы для xUnitFor1C недавно реализовали систему плагинов.

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

Это можно сделать обычным скриптом, например, на 1Скрипт.
Я делал подобные скрипты не раз
  • на JScript для автогенерации списка тестов по модулю тестов для xUnitFor1C
  • на 1С, когда сделал конвертилку тестов для xUnitFor1C из формата 3.Х в формат 4.Х
303. artbear 1590 08.04.16 18:15 Сейчас в теме
(301 А что ты видишь в виде плагинов? какие блоки функциональности v8Reader выделить в плагины?
304. KVD77 09.04.16 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. bambr1975 887 22.07.16 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С, будь-то анализаторы или подсветка синтаксиса.
kote; CratosX; +2 – Ответить
309. fishca 1317 27.01.20 18:13 Сейчас в теме
Кстати пора v8unpack обновить из https://github.com/e8tools/v8unpack/tree/develop - там добавлена возможность разбора cf-ки 8.3.16
310. ligsht 14 07.08.20 08:14 Сейчас в теме
Очень хотелось но не удалось протестировать.


{ВнешняяОбработка.V8Reader.Форма.Форма.Форма(3495)}: Значение не является значением объектного типа (Submatches)
ТипМакета = Match.Submatches(5);

Функция ОпределитьТипОбщегоМакета(ТекстПараметра)
РегулярноеВыражение = Новый COMОбъект("VBScript.Regexp");
РегулярноеВыражение.Multiline = Истина;
РегулярноеВыражение.IgnoreCase = Истина;
РегулярноеВыражение.Pattern = "\{0,0,\w{8}-\w{4}-\w{4}-\w{4}-\w{12}\},""(.*)""[^{]*\{(\d(,""\w\w"",""(.*)"")*)\},""(.*)""(,0,0)?\},(\d)";
Matches = РегулярноеВыражение.Execute(ТекстПараметра);
Для Каждого Match Из Matches Цикл
КонецЦикла;
ТипМакета = Match.Submatches(5);
Возврат ТипМакета;
КонецФункции
user705126_kumys; Denis211990; SagittariusA; +3 – Ответить
311. bambr1975 887 07.08.20 08:22 Сейчас в теме
(310) В качестве временного решения, попробуйте скачать исправленную версию отсюда https://github.com/xDrivenDevelopment/v8Reader/tree/develop . В ближайшее время здесь тоже версию обновлю.
312. ligsht 14 07.08.20 09:01 Сейчас в теме
(311)
В исправленной версии все заработало!
Спасибо автору!
313. user1317923 10.08.20 11:27 Сейчас в теме
(311) на этой версии тоже ошибку дает

Описание='Ошибка при вызове метода контекста (Размер)'
ИмяМодуля='ВнешняяОбработка.V8Reader.Форма.Форма.Форма'
НомерСтроки=2 514
ИсходнаяСтрока=' РазмерПервогоФайла = ПервыйФайл.Размер() + ?(ФайлМодуляПервойФормы <> Неопределено, ФайлМодуляПервойФормы.Размер(), 0);'
Описание='Ошибка при вызове метода контекста (Размер)'
ИмяМодуля='ВнешняяОбработка.V8Reader.Форма.Форма.Форма'
НомерСтроки=2 524
ИсходнаяСтрока=' РазмерВторогоФайла = ВторойФайл.Размер() + ?(ФайлМодуляВторойФормы <> Неопределено, ФайлМодуляВторойФормы.Размер(), 0);'

на файле изображений, файла при этом в каталоге нет. При обвязке в попытку..исключение и присваивание размерам файлов 0 и 1 соот-но, дальше все проходит нормально...
316. SagittariusA 10.09.21 13:34 Сейчас в теме
319. InJey 22.10.21 11:43 Сейчас в теме
(311) Почему не все обработчики видны при сравнении? Планируется обновить обработку автор?
314. user1317923 10.08.20 13:07 Сейчас в теме
имя 1го файла: C:\Users\фамилияимя\AppData\Local\Temp\117\1Cv8_3.0.80.40.cf.und\aaccf07e-4867-4d78-8947-b80b14bc942e.0\image, второго (такая же ошибка): C:\Users\фамилияимя\AppData\Local\Temp\117\1Cv8our.cf.und\aaccf07e-4867-4d78-8947-b80b14bc942e.0\image
315. НовенькийЯ 27.07.21 14:29 Сейчас в теме
Тема еще жива?
1 - в последнем релизе на последней платформе выходит ошибка при чтении файлов, в каталоге с распакованной конфигурацией присутствуют файлы с расширением ".d" - обработка про них не знает, соответственно вываливается по ошибке.
2 - если даже исключить файлы из п.1 то все равно обработка вываливается с ошибкой как у (313). Поставил заглушку перед проверкой размера:
Если Не ПервыйФайл.Существует() И Не ВторойФайл.Существует() Тогда
	Возврат 0;
КонецЕсли;
317. InJey 19.10.21 19:14 Сейчас в теме
Добрый день!
Пытаюсь сравнить две конфы, не разбирает, останавливается на языках дальше все. Пробовал обработки с ними получается. Поясните пожалуйста могу ли я сравнить две формы например из конфигурации? Если да то как? Каким образом я их должен сначала выгрузить если не работает разбор по CF ?
318. InJey 20.10.21 11:15 Сейчас в теме
Разобрался, для моих задач подходит такой алгоритм:

- Скопировать формы в две внешние обработки (у форм должны совпадать имена)
- Сравнить в режиме epf.
320. laeg 15 26.04.25 18:38 Сейчас в теме
Однозначный плюс за проделанную работу.
Плохо что поддержка заглохла и в файлы CF более не сравниваются, только EPF
но все равно подспорье очень большое в натягивании обновлении ОФ
Для отправки сообщения требуется регистрация/авторизация