V8 Viewer. Открытие и сравнение внешних обработок в Проводнике + исходники

30.04.20

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

Вы хотите получить возможность быстро посмотреть содержимое внешнего отчета или обработки? А сравнить ее с другой? И все это без запуска 1С:Предприятия, только из оболочки ОС? Тогда мы идем к вам! :) В конце заметки - ссылка на исходники.

Скачать исходный код

Наименование Файл Версия Размер
Пакет установки
.exe 1,71Mb
731
.exe 1,71Mb 731 Скачать

О чем идет речь?

Вам приходилось отправлять внешнюю обработку по почте и в самый последний момент перепроверить - та ли это версия? Вам приходилось задаваться вопросом - какая из этих обработок с именами "Обработка1", "Обработка1 (новая)" и "Обработка1 (новая2)" является актуальной? А чем они отличаются? Если вы уже познакомились с системами контроля версий, то наверняка, сталкиваетесь с вопросом - какие изменения внесены между версиями обработки?

Вы хотите получить возможность быстро посмотреть содержимое внешней обработки и сравнить ее с другой? И все это без запуска 1С:Предприятия, только из оболочки ОС? Тогда мы идем к вам! :)

Благодарности

Толчком к созданию программы V8 Viewer стала публикация V8Reader (//infostart.ru/public/106310/) - внешняя обработка, отображающая содержимое файлов 1С и сравнивающая их. Огромное спасибо автору утилиты V8Unpack (//infostart.ru/public/15695/) за открытый исходный код. Это круто! Наличие исходников позволило перетащить логику чтения к себе и не включать в дистрибутив саму утилиту V8Unpack в первозданном виде. Кроме того, в отличие от V8Unpack чтение выполняется без распаковки во временный каталог, напрямую из файла 1С.

Задачи на разработку

Итак, я хотел чтобы у меня была возможность:

  • Просматривать историю изменений версий в хранилище SVN (Subversion), в котором у меня лежат все мои внешние обработки. Причем просматривать не просто как "Двоичные файлы", а видеть, что находится внутри.
  • Сравнивать изменения во внешних обработках
  • Открывать двойным щелчком в проводнике (и в любой другой программе) файлы внешних обработок
  • Просматривать содержимое "внутренних" файлов контейнера cf/epf.
    • Кстати, совсем недавно наткнулся на (//infostart.ru/public/124213/), когда собственный велосипед уже был написан :)
  • Все вышеперечисленное должно работать без установки 1С на машину.

Результат

Поставленные самому себе задачи были достигнуты. Написан инструмент "V8 Viewer".
Ниже располагается инструкция по применению.

Возможности программы

На данный момент, актуальная версия 1.0.2.6 умеет:

  1. Регистрироваться в системе, как обработчик открытия внешних отчетов и обработок. Это означает, что в любом месте системы, где есть возможность открыть файл на просмотр, можно открыть и посмотреть содержимое внешнего отчета(обработки).
  2. Просматривать содержимое файла, открывать макеты, модули форм и объектов. Для управляемых форм возможен просмотр элементов формы.
  3. Выполнять сравнение двух файлов, аналогично тому, как сделано в самой платформе. Имеется возможность сравнения дерева метаданных, содержимого макетов и модулей.
  4. Предусмотрен "отчет по свойствам" - в дереве сравнения можно отобразить отчет, похожий на стандартный "Отчет о сравнении объектов".
  5. В редакторе модуля есть возможность навигации по перечню процедур и функций, сворачивание/разворачивание всех блоков кода (по аналогии со стандартным редактором кода)
  6. Отображать внутреннее содержимое контейнера - низкоуровневый "просмотр" файла. Запускается правым щелчком на файле, пункт "Browse".
  7. Предусмотрено автоматическое обновление. При запуске проверяется наличие обновлений и выдается предложение об обновлении.

Tortoise SVN

Итак, основная задача - взаимодействие с системой контроля версий SVN, а главное - замечательной оболочки для нее - TortoiseSVN. Если вы еще не знакомы с системами контроля версий, то самое время этим заняться. На мой взгляд - жизненно необходимая вещь, когда вам нужно хранить всю свою работу и время от времени возвращаться к предыдущим версиям.

Программа TortoiseSVN - это графическая оболочка для системы контроля версий Subversion. Скачать можно с официального сайта - http://tortoisesvn.net/downloads.html.

Принципы работы с SVN.

Поскольку статья все-таки не про SVN, то подробно останавливаться не буду. Тем не менее, кажется, что пару слов сказать стоит.

При работе с SVN вы создаете где-нибудь репозитарий - хранилище, в котором будет лежать вся история версий. Это может быть каталог на компьютере, но лучше - где-то в сети Интернет. Допустим, мы хотим хранить версии просто на машине. Заходим в пустой каталог (пусть будет D:\REPO) и в контекстном меню выбираем пункт TortoiseSVN->Create repository here. Теперь, этот каталог будет нашей базой данных со всей историей версий.

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

Заходим в любой пустой каталог, выбираем в контекстном меню "SVN Checkout" и указываем путь до репозитория. Теперь, каталог подключен к репозиторию.

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

Прелесть в том, что можно сравнивать 2 любые версии файла. Меню "Tortoise SVN->Show log->Compare with..".Кроме того, Tortoise позволяет сравнивать вообще любые 2 файла, не только в рабочем каталоге, а вообще везде.

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

Настройка Tortoise SVN

1. Устанавливаем V8 Viewer
2. В любом каталоге щелкаем правой кнопкой и выбираем TortoiseSVN->Settings->Advanced

3. В окне Advanced добавляем расширение .epf и указываем командную строку запуска V8 Viewer C:\Program Files\v8viewer.exe -diff %base %mine
Обратите внимание на параметры командной строки:

  • ключ -diff запускает программу в режиме сравнения
  • шаблоны %base и %mine - это ключевые слова Tortoise. Вместо них он подставит пути к выбранным Вами файлам.

По умолчанию, при сравнении модулей программа распаковывает их во временный каталог. При сравнении внешним diff-инструментом видны имена временных файлов, которые неинформативны.

В версии 1.0.1 и старше возможно указание дополнительных ключей -name1 и -name2. В этих аргументах можно передать заголовки сравниваемых файлов, которые будут отображены в интерфейсе. Для TortoiseMerge можно воспользоваться макросами %bname и %yname. В них Tortoise передает заголовки сравниваемых файлов, по которым их можно идентифицировать.

В конечном итоге, строка запуска сравнения может иметь следующий вид:

\v8viewer.exe -diff %base %mine -name1%bname -name2%yname

символами процента (%) отмечены ключевые слова Tortoise вместо которых он подставляет конкретные значения имен сравниваемых файлов и заголовков к ним. Рекомендуется настроить ключи -name1 и -name2, чтобы повысить информативность сравнения двух файлов 1С, чтобы видеть - где какой. Примеры настройки командной строки можно прочесть ниже.

4. Сохраняем изменения.

Теперь, если мы войдем в каталог с внешними обработками и выделим две из них, то в контекстном меню "Tortoise SVN ->" появится пункт "Diff", который запустит сравнение файлов.

Особенности программы

Системные требования

Требуется Microsoft .NET Framework версии 4.0 или выше.

Вся работа со внутренними файлами 1С, такими как табличные документы и графические схемы, выполняется программой "1С:Работа с файлами". Ее наличие необязательно, но просмотреть и сравнить табличные макеты будет нельзя.

Настройка V8 Viewer

Какой-то специфической настройки не требуется, тем не менее, пару слов сказать хочется. Все настройки выполняются в соответствующем окне, назначение настроек описано там же:

Settings window
 

Для работы с файлами 1С, такими, как табличные документы и графические схемы требуется наличие программы "1С:Работа с файлами". Программа бесплатная, скачать можно с сайта 1С, перейдя по ссылке прямо из окна настроек. Сравнение табличных документов также выполняется этой утилитой. Без нее, нельзя будет просмотреть табличный макет, но при сравнении двух обработок все равно будет видно, что макеты различаются.

Для сравнения текстов используется любой сторонний diff-viewer. В настройках необходимо указать командную строку для запуска. Метки "%1" и "%2" замещают имена файлов, передаваемые для сравнения. Необязательные метки %name1 и %name2 используются в качестве заголовков файлов.

Ну и рекомендуется настроить соответствие типу файла - с помощью флажка "файловые ассоциации".

Примеры настройки командной строки для diff-просмотрщика

1. Путь к файлу *.exe должен быть заключен в кавычки. Это стандартное условие для запуска программ, если путь к ним содержит пробелы.

2. Подавляющее большинство инструментов для сравнения файлов понимают синтаксис:

 [путь к exe] [первый файл] [второй файл]

Строка запуска для такого случая должна иметь вид: "C:\[путь к exe]" %1 %2

Многие современные программы для сравнения позволяют также указывать дополнительные опции, например - читабельный текст в заголовке сравниваемых файлов. Такие заголовки упрощают жизнь, т.к. видно - где какой файл в окне сравнения. Для TortoiseMerge строка запуска будет иметь следующий вид:

"C:\[путь к exe]" /base:%1 /mine:%2 /bname:%name1 /yname:%name2

Более подробно о командных параметрах популярных diff программ можно прочитать здесь: http://ashamray.blog.ru/79251381.html

Гарантии производителя

Со своей стороны я гарантирую отсутствие в коде программы шпионских закладок и умышленно вредоносного кода. Тем не менее, программа поставляется "как есть" и Вы используете ее на свой страх и риск.

Исходные коды

Исходные коды Вы можете скачать по адресу http://sourceforge.net/p/v8reader/code/HEAD/tree/.

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

Благодарности

Хочется выразить искреннюю благодарность и большущее человеческое спасибо Виктории Дорохиной (//infostart.ru/community/profile/355360/) и Свирепому Бамбру (//infostart.ru/profile/128365/) за разработку V8Reader.epf, с которой все началось, указание на мои ошибки, ссылку на параметры diff-viewer-ов и чуткое тестирование программы V8Viewer.

Заключение

Мне хочется получить отзыв сообщества на тему полезности данного инструмента. Писался он, в основном, ночами, под косыми взглядами супруги. Осталось довольно много задач на реализацию, в частности, поддержка редактирования модулей и макетов, а также открытие файлов *.cf. Приглашаются желающие помочь в разработке.

Мне хотелось бы, чтобы V8 Viewer стал полезным инструментом, который помогает многим людям в ежедневной работе. 

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

P.S. Если понравится, не забывайте вернуться на эту страницу и поставить "плюсик" :)

Спасибо за внимание!

 

UPD 30.04.2020

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

См. также

Infostart Toolkit: Инструменты разработчика 1С 8.3 на управляемых формах

Инструментарий разработчика Роли и права Запросы СКД Платформа 1С v8.3 Управляемые формы Запросы Система компоновки данных Конфигурации 1cv8 Платные (руб)

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    125077    683    389    

732

Infostart PrintWizard - создание и редактирование печатных форм в 1С 8.3

Пакетная печать Печатные формы Инструментарий разработчика Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

18000 руб.

06.10.2023    7797    24    6    

42

Infostart УДиФ: Управление данными и формами 1С

Инструменты администратора БД Инструментарий разработчика Роли и права Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

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

10000 руб.

10.11.2023    4299    12    2    

36

SALE! %

PowerTools

Инструментарий разработчика Инструменты администратора БД Платформа 1С v8.3 Управляемые формы Конфигурации 1cv8 Россия Платные (руб)

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

3600 2280 руб.

14.01.2013    178681    1084    0    

862

Многопоточность. Универсальный «Менеджер потоков» 2.1

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Россия Платные (руб)

Восстановление партий или взаиморасчетов, расчет зарплаты, пакетное формирование документов или отчетов - теперь все это стало доступнее. * Есть желание повысить скорость работы медленных алгоритмов! Но... * Нет времени думать о реализации многопоточности? * о запуске и остановке потоков? * о поддержании потоков в рабочем состоянии? * о передаче данных в потоки и как получить ответ из потока? * об организации последовательности? Тогда ЭТО - то что надо!!!

5000 руб.

07.02.2018    99655    239    97    

298

[ЕХТ] Фреймворк для Расширений 1С

Инструментарий разработчика Платформа 1С v8.3 Управляемые формы Платные (руб)

"Фреймворк для Расширений 1С" это универсальное и многофункциональное решение, упрощающее разработку и поддержку создаваемых Расширений. Поставляется в виде комплекта из нескольких Расширений с открытым исходным кодом. Работает в любых Конфигурациях в режиме Управляемого приложения с режимом совместимости 8.3.12 и выше без необходимости внесения изменений в Конфигурацию.

3000 руб.

27.08.2019    18410    6    8    

40

Выполнение произвольного кода или запроса с параметрами через Web-сервис (замена COM-подключений)

Инструментарий разработчика Обмен между базами 1C Платформа 1С v8.3 Платные (руб)

В процессе работы в 1С часто возникает потребность получить данные из другой базы.  Обычно это делается через COM-соединение, и время выполнения запроса при этом оставляет желать лучшего. В данной публикации представлено универсальное решение, позволяющее практически моментально выполнить произвольный код или запрос с параметрами в другой информационной базе через Web-сервис.

2400 руб.

24.09.2019    23865    16    15    

33

1С HTML Шаблоны / HTML Templates

Инструментарий разработчика Платформа 1С v8.3 Конфигурации 1cv8 Платные (руб)

Быстрая и удобная обработка для работы с шаблонами HTML. Позволяет легко и быстро формировать код HTML.

2040 руб.

27.12.2017    28331    3    10    

16
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
104. CratosX 112 25.03.13 18:42 Сейчас в теме
(101) да, вы правы. Я даже не смотрел, что за обработка - 8.0 или 8.1, взял потестить вторую попавшуюся. Насчёт надобности не знаю, может и пригодится, но всё упирается в время доработки.
99. Aleks1973 25.03.13 11:48 Сейчас в теме
После текста в описании "выложена для поиска ошибок" как-то временно потерял интерес. НО !
Тема - хорошая ! (С)
100. Evil Beaver 8117 25.03.13 13:25 Сейчас в теме
(99) Aleks1973,
После текста в описании "выложена для поиска ошибок" как-то временно потерял интерес


Почему? Что плохого в публичном тестировании? Разработка бесплатная и планирует таковой оставаться. Что плохого в том, чтобы сообща сделать ее лучше? Я пилю ее из энтузиазма и с целью изучить .Net, трачу свое время и кроме "плюсов" на инфостарте ничего за нее не получаю. Что плохого в том, что я сэкономлю на всестороннем тестировании?
102. Aleks1973 25.03.13 17:31 Сейчас в теме
(100) Никто у тебя твоего трудового энту-зязизма не отнимает ! И не покушается !
Под знаменем великого Бориса, в жёлтых майках - к новым трудовым свершениям !
Я хочу сказать, что бета-версия нужно писать не в середине а в начале КРУПНЫМИ буквами.
103. Evil Beaver 8117 25.03.13 17:50 Сейчас в теме
(102) Aleks1973, вы что - достойный продолжатель дела AlexO? К чему тут ересь про желтые майки и великого Бориса? И как давно мы с Вами на "ты", коллега?

Теперь по делу: то, что бета-версия НУЖНО писать, где и когда - решать мне. Не нравится - не пользуйтесь. Ну правда - я всегда послушаю совет, особенно толковый, но когда находится умник, который меня учит - что мне нужно делать и как - хочется его послать. Тебе "нужно" - ты и делай. Без обид.
Претензии по поводу бесплатной программы, про которую прямо сказано, что она сырая и тестовая, мне предъявлять глупо. Шлите мне ошибки, пожелания, советы. Беспредметные поучения - своему психоаналитику.
105. tarikss 31.03.13 23:42 Сейчас в теме
Спасибо! Добавил к своему комплекту!
106. NosovK 16 06.05.13 15:32 Сейчас в теме
Огромное спасибо - даннае обработка экономит уйму времени.
107. su_mai 90 15.05.13 17:31 Сейчас в теме
Спасибо за исходники.
108. NosovK 16 12.06.13 15:11 Сейчас в теме
Эта обработка заодно вкупе с svn позволяет видеть результаты работы программиста... Супер :)
109. petrov_al 10 18.06.13 11:42 Сейчас в теме
Обработка супер, хотелось бы узнать для УФ можно что-то аналогичное сделать
110. bambr1975 877 18.06.13 12:31 Сейчас в теме
(109) petrov_al, http://forum.infostart.ru/forum24/topic51772/message575127/#message575127 разве не ваше сообщение? Вроде здесь продолжение той же темы...??? По УФ что конкретно интересует?
111. Evil Beaver 8117 18.06.13 12:38 Сейчас в теме
(109) petrov_al, Непонятно, что именно про УФ "такое" можно сделать? УФ - это управляемая форма? Она там отображается даже в виде реквизитов формы. Обычная форма - только в виде модуля.
112. Evil Beaver 8117 19.06.13 15:57 Сейчас в теме
Коллеги, если возникнет желание помочь проекту, то сделать это можно следующим образом:

1. Нужно подключиться к хранилищу кода. Для этого устанавливаем себе на машину TortoiseSVN, в любой пустой папке щелкаем правой кнопкой и выбираем: SVN Checkout. Далее, вводим адрес репозитория "https://svn.code.sf.net/p/v8reader/code/trunk" и нажимаем ОК. Исходники будут загружены в указанную папку.

2. Выбираете себе задачу. Например, берем какой-нибудь баг со странички "https://sourceforge.net/p/v8reader/tickets/" и исправляете его.

3. Регистрируете аккаунт на Sourceforge.net, присылаете мне письмо с именем аккаунта, чтобы я дал доступ на запись.

4. После получения доступа, правите код, а затем закладываете его в хранилище командой SVN Commit.

Удачи.
113. МихаилМ 20.07.13 21:46 Сейчас в теме
114. Evil Beaver 8117 20.07.13 22:29 Сейчас в теме
(113) МихаилМ, Это новая библиотека, с возможностью записи в файл обработки.
115. LexSeIch 210 22.07.13 04:53 Сейчас в теме
Мир этому дому!
Идея и реализация интересные. Я всегда за упорядочивание процесса разработки не только "под себя" но и для тех кто будет "после". Данный вариант ИМХО - хорошее решение. Взял на заметку.
116. webester 26 24.07.13 18:24 Сейчас в теме
Очень манит возможность хранить в репозитории свои разработки, это очень круто. Я использую гит, так как тортила мне не очень нравится и описанное в статье проверить не смог, не могли бы вы разъяснить пару моментов? Я понимаю, что написано, но догнать почему то не могу. Если не сложно :)
    1. В репозитории нужен код. Только код, текстом. Как он попадает в репозиторий, в какой момент?
    2. Сама обработка будет храниться в репозитории?
    3. Использование другого интерфейса к гит возможно?
117. Evil Beaver 8117 24.07.13 22:42 Сейчас в теме
(116) webester, есть tortoise git, git для windows. С TortoiseGit точно можно использовать. В репозитории хранится обработка, а по команде diff вызывается моя программа и показывает сравнение. В репозитории не только код, но и макеты и метаданные (реквизиты, табличные части).
118. webester 26 25.07.13 04:22 Сейчас в теме
(117) что для windows есть git мне известно :) я им пользуюсь. Я не про это спрашивал. Вот такая картинка возможна?
119. Evil Beaver 8117 25.07.13 09:37 Сейчас в теме
(118) webester, да. Там как раз, в настройках прописывается командная строка к внешнему diff-viewer-у, который и выдает такие картинки.
(см. рисунок)
Прикрепленные файлы:
120. webester 26 26.07.13 07:26 Сейчас в теме
я в своем гит клиенте щелкаю по коммитам и вижу историю изменений этого коммита, а не результат сравнения. То есть в клиенте видно и список коммитов с коментариями и историю изменений.
121. pumbaE 26.07.13 10:11 Сейчас в теме
(120) webester, достаточно чуть подумать над тем в каком виде у вас хранится данные в файлах .py и файлах *.epf ...

p.s.: извините может и обидел, но вопрос просто тупейший. Пока не будет возможности выгружать в 8.3 внешние обработки - это проблемно сделать. А вот для конфигурации уже можно такое смотреть.
122. Evil Beaver 8117 26.07.13 10:25 Сейчас в теме
(120) webester, не пойму, в чем проблема... pumbaE намекает, как я понял, что *.py - это текстовики, а *.epf, как бы не совсем. Так вот V8Viewer позволяет их немножко приблизить к текстовикам. Я не знаю, какой у вас клиент git-а, но в TortoiseGit есть возможность прикрепить хук для сравнения определенных типов файлов. Думаю, в любом современном клиенте должна быть такая вещь, и у вас, наверняка есть. Ведь хранить можно не только исходники Питона, можно хранить doc и excel файлы. В Tortoise можно сравнивать и их тоже.
V8Viewer подключается к клиенту git в качестве хука для файлов *.epf. И можно сравнивать модули, с точностью до измененной буквы.
123. webester 26 31.07.13 10:26 Сейчас в теме
(122)Все понятно. Проблема в том, что действительно это не текст и никакой волшебной палочки тут не придумаешь. Ваша обработка просто вытаскивает данные для диффера. Пользуюсь вот этим клиентом и очень им доволен. Как им настроить хук не нашел, но видимо плохо искал.
124. Evil Beaver 8117 31.07.13 11:23 Сейчас в теме
(123) webester, в статье есть ссылка на популярные diff приложения. Их масса, много бесплатных и качественных.
125. Evil Beaver 8117 15.10.13 14:51 Сейчас в теме
126. brunet 39 23.10.13 19:26 Сейчас в теме
Очень полезная вещь когда очень много внешних отчетов.
127. ITEkb 26.02.14 08:55 Сейчас в теме
Познавательно, но как то пока удавалось жить и работать так, что от версии к версии только улучшения.
128. xzorkiix 34 30.01.15 11:10 Сейчас в теме
Выпала в ошибку при попытке просмотра формы

Проблемная обработка - https://1c-dn.com/user/updates/format_procedure_comments/1_2_0_1/

Версия программы 1.0.2.6 (актуальная судя по http://sourceforge.net/projects/v8reader/)

System.FormatException: Input string was not in a correct format.
at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
at V8Reader.Core.ManagedFormElements.LoadElements(SerializedList elementsList, MDObjectsCollection`1 itemsPrototype, Int32 idIndex, String uuid)
at V8Reader.Core.ManagedFormElements.ReadFromList(SerializedList elementsList)
at V8Reader.Core.MDManagedForm.LoadFormContent()
at V8Reader.Core.MDManagedForm.get_Module()
at V8Reader.Editors.ManagedFormWnd.Window_Loaded(Object sender, RoutedEventArgs e)
at System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
at System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
at System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
at System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
at System.Windows.BroadcastEventHelper.BroadcastEvent(DependencyObject root, RoutedEvent routedEvent)
at System.Windows.BroadcastEventHelper.BroadcastLoadedEvent(Object root)
at MS.Internal.LoadedOrUnloadedOperation.DoWork()
at System.Windows.Media.MediaContext.FireLoadedPendingCallbacks()
at System.Windows.Media.MediaContext.FireInvokeOnRenderCallbacks()
at System.Windows.Media.MediaContext.RenderMessageHandlerCore(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.RenderMessageHandler(Object resizedCompositionTarget)
at System.Windows.Media.MediaContext.Resize(ICompositionTarget resizedCompositionTarget)
at System.Windows.Interop.HwndTarget.OnResize()
at System.Windows.Interop.HwndTarget.HandleMessage(WindowMessage msg, IntPtr wparam, IntPtr lparam)
at System.Windows.Interop.HwndSource.HwndTargetFilterMessage(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.ShowWindow(HandleRef hWnd, Int32 nCmdShow)
at System.Windows.Window.ShowHelper(Object booleanBox)
at System.Windows.Window.Show()
at V8Reader.Editors.ManagedFormEditor.Edit(Window Owner)
at V8Reader.Editors.ManagedFormEditor.Edit()
at V8Reader.Editors.MDObjectEditorWnd.<>c__DisplayClass1.<twElements_MouseDoubleClick>b__0()
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.DispatcherOperation.InvokeImpl()
at System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
at System.Windows.Threading.DispatcherOperation.Invoke()
at System.Windows.Threading.Dispatcher.ProcessQueue()
at System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
at MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
at System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
at MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
at System.Windows.Threading.Dispatcher.LegacyInvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
at MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
at MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
at System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
at System.Windows.Threading.Dispatcher.Run()
at System.Windows.Application.RunDispatcher(Object ignore)
at System.Windows.Application.RunInternal(Window window)
at System.Windows.Application.Run(Window window)
at V8Reader.Program.<>c__DisplayClass7.<OpenFile>b__5()
at V8Reader.Program.SafeMessageLoop(Action DoMessageLoop)
129. Evil Beaver 8117 30.01.15 17:30 Сейчас в теме
(128) xzorkiix, у меня нет аккаунта на 1c-dn. Прикрепите куда-нибудь в другое место, пожалуйста
130. morber 14.04.15 12:43 Сейчас в теме
А объединять как то можно? т.е. различия по модулю слить в один модуль?
131. Evil Beaver 8117 14.04.15 13:19 Сейчас в теме
(130) morber, автоматически - нет. Работа над версией с возможностью записи началась, но остановилась.
Можно открыть модули на сравнение (запустится внешний diff-ер), объединить модули и сохранить в файл или буфер обмена. Затем вставить объединенный модуль в конфигуратор. С учетом того, что теперь в платформе можно тоже запускать внешние diff-еры и редактировать результат слияния - можно попробовать, как это там работает. Я не смотрел.
132. morber 14.04.15 13:32 Сейчас в теме
Не доперло до меня как редактировать результат слияния. (разницу он сохранил в отдельный файл и всё). цеплял внешним diff черепаху.
133. Serj030 29.09.15 12:48 Сейчас в теме
Добрый день! Спасибо за утилитку, все настроил. Только что-то не показывает различия в метаданных. А именно у одной обработки есть реквизит, а в другой его нет.
Обработки простые - реквизит, да функция в общем модуле. Создавал 8.3.6
На рисунках показаны результаты сравнения платформой 1С и v8-viewer.exe
Прикрепленные файлы:
ТестоваяОбработка.epf
ТестоваяОбработка-7.epf
134. Evil Beaver 8117 29.09.15 17:43 Сейчас в теме
(133) Serj030, записал ошибку https://sourceforge.net/p/v8reader/tickets/26/

Спасибо!
Если кто исправит - тому отдельное спасибо.
135. ekaruk 4904 04.12.15 16:00 Сейчас в теме
Вцелом штука очень удобная.
При выполнении режима "Показать различия в модулях" выдает ошибку.

System.ComponentModel.Win32Exception (0x80004005): Не удается найти указанный файл
в System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
в V8Reader.Comparison.ExternalTextDiffViewer.ShowDifference(String NameCurrent, String NameComparand)

Подскажите, с чем может быть связано. Вроде изначально не было, позже начала проявляться.
136. Evil Beaver 8117 04.12.15 16:57 Сейчас в теме
(135) ekaruk, Похоже, что не смогло запустить программу, заданную в настройках, как внешний diff-просмотрщик. Либо ее нет, либо прав не хватило..
ekaruk; vikad; +2 Ответить
137. ekaruk 4904 04.12.15 17:54 Сейчас в теме
(136) Спасибо. Помогло указание пути к Kdiff в кавычках.
Сейчас работатет корректно.
138. Evil Beaver 8117 04.12.15 18:03 Сейчас в теме
(137) ekaruk, Ура! Спасибо, что пользуетесь, мне приятно.
139. DrAku1a 1715 28.01.16 03:52 Сейчас в теме
Круто! Ещё бы в виде плагина для Total commander ("вьювер").
141. capitan 2472 17.02.16 18:27 Сейчас в теме
Спасибо. На мой вкус не хватает поиска определенной строки в обработках по каталогу.
Рекурсивно перебирать обработки и искать вхождение строки.
142. Evil Beaver 8117 18.02.16 12:14 Сейчас в теме
(141) capitan, а текущий функционал конфигуратора не помогает?
143. capitan 2472 18.02.16 13:32 Сейчас в теме
(142) в смысле. Хотите сказать, что конфигуратор может скажем в каталоге Мои документы найти обработку по отбору текст : Функция Печать() ?
144. pumbaE 18.02.16 14:20 Сейчас в теме
(143) Правка - Глобальный поиск - последняя вкладка "файлы".
145. capitan 2472 18.02.16 14:33 Сейчас в теме
(144) pumbaE, глубокое вам мерси. Вот я чайник :)
146. capitan 2472 18.02.16 14:40 Сейчас в теме
(142)
Цитирую: Вы хотите получить возможность быстро посмотреть содержимое внешней обработки и сравнить ее с другой? И все это без запуска 1С:Предприятия, только из оболочки ОС? Тогда мы идем к вам! :)
Посмотреть содержимое внешней обработки я тоже могу в конфигураторе.
Тем более, я не настаиваю, что это прямо сейчас надо доделать.
147. Evil Beaver 8117 19.02.16 23:41 Сейчас в теме
(146) capitan, сейчас до этого проекта руки уже не доходят, к сожалению. Исходники открыты, ссылка в статье - велкам.
148. Rokky78 40 21.02.18 09:34 Сейчас в теме
(0) Очень нравится ваша программка. Часто использую чтобы не открывая в конфигураторе скопировать какой-либо кусок кода или посмотреть как реализован алгоритм.

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

P.S. увидел в новостной рассылке, что разработка попала в выбор экспертов. Заглянул на страницу публикации, но не увидел, а что собственно изменено/доработано (публикация действительно обновлена 14/02/18). Поэтому скачивать пока не стал. Если можно добавьте описание изменений.
Прикрепленные файлы:
Полный текст ошибки.txt
149. Evil Beaver 8117 22.02.18 07:45 Сейчас в теме
(148) Спасибо за отзыв! Программа обновляется автоматически, в настройках кликните на номер версии, если у вас более старая версия - предложит обновиться на новую. Кроме того, перечитайте статью, там есть ссылка на sourceforge, оттуда можно скачать бесплатно.

Файловые ассоциации разумеется будут слетать, т.к. платформа пишет свои поверх наших.

Ошибки открытия обработок возможны, но доработок скорее всего не будет. Код программы открыт много лет, пожалуй, я переведу его на гитхаб, для большего удобства. Исправить ошибку можно самостоятельно.
150. belant-1с 30.04.18 17:49 Сейчас в теме
(149) Добрый день! Отличный проект! Настроил взаимодействие сравнения в SourceTree. А непосредственное сравнение кода, сделал через Visual Code, поскольку там самый удобный способ включения подсветки синтаксиса 1с. Правда пришлось внести небольшие изменения в Ваши исходники. В связи с этим вопрос.

Хотели перенести проект на ГитХаб? Сделали? Я бы с удовольствием сделал Push_Request со своими правками. Если не переносили, есть предложение все-таки перенести
151. Evil Beaver 8117 02.05.18 22:47 Сейчас в теме
(150) да, надо бы перенести
152. dj_serega 391 11.03.19 14:29 Сейчас в теме
(151) Пока в планах переноса проекта нет?
153. sytkosa 119 26.04.19 18:28 Сейчас в теме
(150) Доброго времени суток.

Вы не против поделится с сообществом версией с интеграцией в SourceTree. Еще одно предложение - раз автор "забросил временно проект" может быть вы выложили свой труд на ГитХаб?
154. Evil Beaver 8117 29.04.19 18:21 Сейчас в теме
(153) ссылка на исходники приведена в статье. На гитхаб перенести руки не доходят. Наверное, надо сделать, да.
155. Evil Beaver 8117 30.04.20 16:22 Сейчас в теме
Не прошло и 8 лет, как вышла новая версия!
vladnet; acanta; +2 Ответить
158. amoarok 98 16.02.21 15:06 Сейчас в теме
(155) можно где-то скачать исходники последней версии? В SVN изменений не вижу.
159. Evil Beaver 8117 18.02.21 13:02 Сейчас в теме
(158) проект наконец-то переехал на гитхаб https://github.com/EvilBeaver/v8reader
156. acanta 30.04.20 17:04 Сейчас в теме
Спасибо, очень полезная штука.
Из хорошо забытого старого.
157. Evil Beaver 8117 04.05.20 11:28 Сейчас в теме
(156)
из забытого старого

Такое у меня тоже есть: https://infostart.ru/public/204691/
160. SatanClaws 143 18.09.23 10:06 Сейчас в теме
Есть небольшой косяк:
при diff-e модулей временные файлы создаются в UTF-8, но без BOM-метки.

Из-за этого у kdiff-а, например, несколько сносит башню (дефолтные настройки в части кодировок: system, autodetect unicode).
Конкретно с kdiff-ом лечится созданием отдельного конфига и добавлением параметра --config [файл]

PS правда, мне пришлось создавать батник с текстом "start kdiff.exe --config "config.cfg" %1 %2" и запускать оный, ибо если прописать запуск kdiff-а с такими параметрами - ему сносит башню и он пытается сравнить 3 файла (один из которых конфиг). Сильно не разбирался, но смахивает на потерю кавычек у параметра за ключом --config.

PPS в остальном - утилита прям огонь!
161. Evil Beaver 8117 07.11.23 10:24 Сейчас в теме
(160) Утилита весьма старая и новые обработки вообще может не поддерживать. Любые доработки принимаются здесь https://github.com/EvilBeaver/v8reader
Оставьте свое сообщение