gifts2017

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

Опубликовал Андрей Овсянкин (Evil Beaver) в раздел Администрирование - Сервисные утилиты

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

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

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

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

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

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

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

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

  • Просматривать историю изменений версий в хранилище SVN (Subversion), в котором у меня лежат все мои внешние обработки. Причем просматривать не просто как "Двоичные файлы", а видеть, что находится внутри.
  • Сравнивать изменения во внешних обработках
  • Открывать двойным щелчком в проводнике (и в любой другой программе) файлы внешних обработок
  • Просматривать содержимое "внутренних" файлов контейнера cf/epf.
    • Кстати, совсем недавно наткнулся на (http://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. Если захотите поместить свой код в основной проект - напишите мне, я дам доступ к репозиторию на запись.

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

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

Заключение

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

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

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

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

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

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

Наименование Файл Версия Размер
Пакет установки 628
.exe 846,44Kb
21.07.15
628
.exe 846,44Kb Скачать

См. также

PowerTools от 1 000
Подписаться Добавить вознаграждение
Комментарии
1. Serj (Serj1C) 06.03.13 13:17
Посмотрел. Круто!
Теперь в моем наборе "must have".
Почему сразу не подвязаны файлы отчетов *.erf ?
Не хватает просмотра макетов СКД)
*.cf даже открывает, можно узнать название конфигурации и почитать глобальный модуль)
2. Андрей Овсянкин (Evil Beaver) 06.03.13 13:21
(1) Serj1C, читаем статью: это предварительная версия. Отчеты намеренно не подвязаны, ради экономии времени. Обязательно будут. Макеты СКД должны открываться. Разве нет?
3. Александр Орефков (orefkov) 06.03.13 14:03
Внушает!
Эх, когда ж ктонить уже на JavaScript сравнение форм портирует :(
4. Андрей Овсянкин (Evil Beaver) 06.03.13 14:19
(3) orefkov, польщен, спасибо!
5. andrewks 06.03.13 14:25
замысел хорош, хотя, как справедливо замечено, идея не новая и уже есть несколько реализаций. (хотя в данной разработке конечные цели поставлены, конечно, более глобальные, чем в уже имеющихся)

Требуется Microsoft .NET Framework версии 4.0 или выше. (Поставляется по умолчанию, начиная с WinXP SP3)

4-го фрэймворка по умолчанию нет в WinXP SP3, по крайней мере, на оф.диске с СП3 у меня вшит только 2.0
6. Андрей Овсянкин (Evil Beaver) 06.03.13 14:56
(5) andrewks, странно, у меня есть. Но у меня тестовый образ диска кхм... не совсем официальный...
Вернее, у меня есть образ диска, на котором я тестировал "чистый запуск". Диск вроде родной, не "ремикс". Все запускается, работает.
7. Nio Nio (Nio) 06.03.13 15:00
Вот ошибка выпала.
При открытии формы в обработке под 8.2. Система win 7.

System.ArgumentException: Folding must be within document boundary
в ICSharpCode.AvalonEdit.Folding.FoldingManager.CreateFolding(Int32 startOffset, Int32 endOffset)
в ICSharpCode.AvalonEdit.Folding.FoldingManager.UpdateFoldings(IEnumerable`1 newFoldings, Int32 firstErrorOffset)
в V8Reader.Controls.CodeControl.foldingUpdateTimer_Tick(Object sender, EventArgs e)
в System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.DispatcherOperation.InvokeImpl()
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Threading.DispatcherOperation.Invoke()
в System.Windows.Threading.Dispatcher.ProcessQueue()
в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
в MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
в System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
в System.Windows.Application.RunInternal(Window window)
в V8Reader.Program.<>c__DisplayClass7.<OpenFile>b__5()
в V8Reader.Program.SafeMessageLoop(Action DoMessageLoop)
8. Андрей Овсянкин (Evil Beaver) 06.03.13 15:06
(7) Nio, если не затруднит, приложите проблемный файл
9. Misha ⁠ (Magister) 06.03.13 15:09
(0) Выглядит интересно, респект :) Правда на .NET у меня аллергия, но это так, к слову.
А чем сделан просмотр кода? Что за редактор? Подсветку, сворачивание сами делали, или готовое где-то взяли?
10. Nio Nio (Nio) 06.03.13 15:14
(8) Evil Beaver,
Вот. Но это честно был первый файл в который я ткнул.
Прикрепленные файлы:
Календарь.epf
11. Евгений Сосна (pumbaE) 06.03.13 15:35
(0) Маленькое уточнение: не только SVN но и для всей линейки Tortoise применима данная настройка (git, mercurial, bzr).
(3) orefkov, сравнение ведь это пол дела, захотите сразу же и merge форм :)
12. Андрей Овсянкин (Evil Beaver) 06.03.13 15:44
(9) Magister, аллергия? И в чем она выражается? Скорее религиозные убеждения... А это очень спорный аргумент против .NET

Редактор AvalonEdit. Но Вам им пользоваться нельзя, у вас аллергия :):):)
13. Евгений Сосна (pumbaE) 06.03.13 15:46
(12) Evil Beaver, под линуксом не работает . Я надеюсь, что все-таки у Magister получиться доработать редактор и запустить его в linux версии конфигуратора.
14. Андрей Овсянкин (Evil Beaver) 06.03.13 15:51
(13) pumbaE, под Линуксом, ага, не работает. и на Макоси тоже. Хотя есть Mono, можно вспомнить и пресловутый 1% компьютеров :)
P.S. у самого дома - линукс, не стоит разводить старый, как мир холивар.
15. Евгений Сосна (pumbaE) 06.03.13 16:35
(14) Evil Beaver, я не развожу, я просто уточняю.

p.s.: вам скоро захочется делать merge для обработок ибо бранчи это удобно, еще захочется посмотреть историю изменения определенного куска модуля.
16. andrewks 06.03.13 16:38
17. Евгений Сосна (pumbaE) 06.03.13 16:53
(16) andrewks, на базе SynEdit, альтернатива SciColorer - это в снегопате. Если партнеры продавят api в конфигураторе, то когда-нибудь думаю можно будет и без снегопата.
18. Алекс Ю (AlexO) 06.03.13 17:27
А зачем все это нужно?
Текстовый файл с историей версий, описание, версии обработок в архиве.
SVN - нужны только при групповой работе (и тогда да, ставить SVN какой-нить, просмоторщик вроде этого и т.д.), но никак не одному программисту.
Все :)
А сравнивать обработки можно вполне и типовыми средствами.
19. Евгений Сосна (pumbaE) 06.03.13 17:35
(18) AlexO, хотел написать подробно, вот ваше
Все :)
отбило охоту кормить троля.
Отвечу кратко - удобство.
20. Алекс Ю (AlexO) 06.03.13 17:43
(19) pumbaE,
Отвечу кратко - удобство.

удобство пользоваться громоздким VSN в одиночку?!
Да уж :)
Это еще не известно, кто тролль :)
21. ZLENKO.PRO (ZLENKO) 06.03.13 17:44
Недосыпание очень вредит здоровью, а работа по вечерам вредит семейным отношениям. Поэтому хочу попросить автора все же поберечь себя и семью и работать в рабочее время :-) Я серьезно.
22. Андрей Овсянкин (Evil Beaver) 06.03.13 17:49
(20) AlexO, кхм... история версий в архиве, а описание - в txt???
Вопрос: Сколько кликов мышкой у вас получается от момента сохранения файла до момента регистрации новой версии?
Ну или не кликов, а элементарных действий?

А при откате к предыдущей версии? Короче, Вы либо тролль, либо системой контроля версий не пользовались ни разу. При всем уважении.
23. Евгений Сосна (pumbaE) 06.03.13 17:49
(20) AlexO, прочтите (11) , автор предпочитает "громоздкий" svn (но svn развивается, посмотрите на версию 1.7 уже даже .svn в корне лежит, а не в каждой папке) , я использую bzr и git.
24. Андрей Овсянкин (Evil Beaver) 06.03.13 17:49
(21) ZLENKO.PRO, Спасибо. Я уже берегу :)
25. Роман (srv7) 06.03.13 18:06
(0) зачётная штука ! было бы здорово научить её вносить и сохранять изменения. Т.е. по сути на компе с отсутствующей платформой можно было бы по-быстрому поправить обработку, отчёт или макет. А в дальнейшем переложить функционал и на cf/1cd..
CratosX; fomix; +2 Ответить
26. Алекс Ю (AlexO) 06.03.13 21:18
(22) Evil Beaver,
Сколько кликов мышкой у вас получается от момента сохранения файла

все столько же, как и создавать-нажимать кнопки и писать описание в SVN.
А при откате к предыдущей версии?

кто вам делает откат? SVN? точно такой же "откат" - берете старую версию из архива и делаете с ней, что хотели.
НО: зато все просто, всегда знаешь - как все устроено и где лежит, простейшая структура, возможность создания перекрестных "ссылок", виден размер всего и в частности, можно "подключать" любые файлы, компоновать все в какой душе угодно последовательности и структуре, могу поменять структуру как требуется, а не как заложили разработчики, если нужно по другому скопоновать файлы или время требует перемен, быстрое создание архива всей библиотеки и перенос и развертывание - в общем, полная свобода.
И никаких ограничений :)
27. Андрей Овсянкин (Evil Beaver) 06.03.13 22:42
Ок, флаг Вам, как говорится в руки! :D
28. Евгений Сосна (pumbaE) 06.03.13 23:20
Сдался. Я ожидал, что дойдет до обсуждения хранения обработок на дискетах и признания того что малый размер дискет дисциплинирует всякое Г не деражать.
29. Misha ⁠ (Magister) 06.03.13 23:34
(12) В том, что он медленный, по сравнению с "родным" кодом. Вот 1С пишут почему-то на C++, а не на .NET. Как вы думаете, почему? :)
Это сейчас уже не так критично, а вот помню свой Athlon 700 MHz с 320M RAM - там разница была, что называется, на лицо.

(13) Пока что мешает доработать нехватка времени и отсутствие всего требуемого функционала в Снегопате. С Сашей по этому поводу общались, но у него времени мало сейчас - так что быстро не получится.
30. Андрей Овсянкин (Evil Beaver) 06.03.13 23:55
(29) Magister, не только из-за скорости, думаю. Кажется, что независимость от MS не последнюю роль играет. Ну и конечно, более полный контроль над кодом.
31. Алекс Ю (AlexO) 07.03.13 10:31
(29) Magister,
Вот 1С пишут почему-то на C++, а не на .NET. Как вы думаете, почему? :)

Потому, что не знают #, но зато школьных знаний по Си, полученных на информатике, хватает написать 1С? :)
32. Misha ⁠ (Magister) 08.03.13 00:30
(31) Зря вы так, на самом деле платформа 1С (по моему непрофессиональному мнению) - это достаточно высокотехнологичная разработка, и "школьных знаний" для написания такого продукта явно не хватит.
Для специалистов, способных написать приложение такого уровня, изучение C# не предоставит большого труда. Точно так же не составит труда фирме 1С нанять программистов, которые уже его знают :)
kuntashov; shafran; DrAku1a; +3 Ответить 1
33. Алекс Ю (AlexO) 08.03.13 01:28
(32) Magister,
Тогда почему не наймет и не сделает качественный продукт?
Почему не напишет свою СУБД? Почему не использует СУБД уже готовые?
Одни почему, почему...
В платформе 1С зачастую не могут месяцами поправить флаг! Флаг!!!
Используют бесплатные компоненты, вместо написания своих.
А вы говорите о каком-то профессионализме разработчиков.
34. Алекс Ю (AlexO) 08.03.13 01:29
(31) sanches; kuntashov; srv7; Evil Beaver;
Судя по массовым минусам - вы все согласны, т.е. вам тоже всем хватает только школьных знаний? :)
35. Misha ⁠ (Magister) 08.03.13 02:13
(33) Потому что цель 1С - зарабатывать деньги. И пока что эта цель вполне достигается.
Не поставили задачу программистам пофиксить что-то - вот и не пофиксили. Всё просто :)

А вот [quote]Используют бесплатные компоненты, вместо написания своих.[/quote]это наоборот хорошо. Зачем изобретать велосипеды?
36. sanches (sanches) 08.03.13 08:40
(34) AlexO, а вы все зарабатываете стартмани троллингом )))
1v7; Steelvan; BorovikSV; 1cmax; Evil Beaver; +5 1 Ответить
37. desty (lustin) 08.03.13 10:17
(31) а меня в институте учили что Си и С++ это как бы не одно и тоже.
И еще - а в какой это школе С++ дают или С ? Вы скажите - я постараюсь туда сына перевести, а то мы все по книжкам, да по книжкам и дома...
38. Константин Носов (NosovK) 09.03.13 00:22
ура - наконец таки реализуем svn для внешних обработок :)
Огромное спасибо.
39. N’aix lifestealer (N_aix) 09.03.13 16:04
40. Maximilian Alekseevich (1cmax) 10.03.13 18:09
AlexO вообще чересчур "красноречив"
41. Виталий (flash2k) 11.03.13 10:59
За идею +, но при открытии ошибка
8.2 win xp

System.Windows.Markup.XamlParseException: Предоставление значения для "System.Windows.Baml2006.TypeConverterMarkupExtension" вызвало исключение. ---> System.IO.FileFormatException: Формат изображения не распознан. ---> System.Runtime.InteropServices.COMException: Исключение из HRESULT: 0x88982F07
--- Конец трассировки внутреннего стека исключений ---
в System.Windows.Media.PixelFormat.GetPixelFormat(SafeMILHandle bitmapSource)
в System.Windows.Media.Imaging.BitmapSource.UpdateCachedSettings()
в System.Windows.Media.Imaging.BitmapSource.set_WicSourceHandle(BitmapSourceSafeMILHandle value)
в System.Windows.Media.Imaging.BitmapFrameDecode.FinalizeCreation()
в System.Windows.Media.Imaging.BitmapSource.CompleteDelayedCreation()
в System.Windows.Media.Imaging.BitmapSource.get_WicSourceHandle()
в System.Windows.Media.Imaging.BitmapFrameDecode..ctor(Int32 frameNumber, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, BitmapFrameDecode frameDecode)
в System.Windows.Media.Imaging.BitmapDecoder.SetupFrames(BitmapDecoder decoder, ReadOnlyCollection`1 frames)
в System.Windows.Media.Imaging.BitmapDecoder.Initialize(BitmapDecoder decoder)
в System.Windows.Media.Imaging.BitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean isOriginalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
в System.Windows.Media.Imaging.IconBitmapDecoder..ctor(SafeMILHandle decoderHandle, BitmapDecoder decoder, Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, Boolean insertInDecoderCache, Boolean originalWritable, Stream uriStream, UnmanagedMemoryStream unmanagedMemoryStream, SafeFileHandle safeFilehandle)
в System.Windows.Media.Imaging.BitmapDecoder.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy, Boolean insertInDecoderCache)
в System.Windows.Media.Imaging.BitmapFrame.CreateFromUriOrStream(Uri baseUri, Uri uri, Stream stream, BitmapCreateOptions createOptions, BitmapCacheOption cacheOption, RequestCachePolicy uriCachePolicy)
в System.Windows.Media.ImageSourceConverter.ConvertFrom(ITypeDescriptorContext context, CultureInfo culture, Object value)
в System.Windows.Baml2006.TypeConverterMarkupExtension.ProvideValue(IServiceProvider serviceProvider)
в MS.Internal.Xaml.Runtime.ClrObjectRuntime.CallProvideValue(MarkupExtension me, IServiceProvider serviceProvider)
--- Конец трассировки внутреннего стека исключений ---
в System.Windows.Markup.XamlReader.RewrapException(Exception e, IXamlLineInfo lineInfo, Uri baseUri)
в System.Windows.Markup.WpfXamlLoader.Load(XamlReader xamlReader, IXamlObjectWriterFactory writerFactory, Boolean skipJournaledProperties, Object rootObject, XamlObjectWriterSettings settings, Uri baseUri)
в System.Windows.Markup.WpfXamlLoader.LoadBaml(XamlReader xamlReader, Boolean skipJournaledProperties, Object rootObject, XamlAccessLevel accessLevel, Uri baseUri)
в System.Windows.Markup.XamlReader.LoadBaml(Stream stream, ParserContext parserContext, Object parent, Boolean closeStream)
в System.Windows.Application.LoadComponent(Object component, Uri resourceLocator)
в V8Reader.Editors.CodeEditorWnd.InitializeComponent()
в V8Reader.Editors.CodeEditorWnd..ctor()
в V8Reader.Editors.ModuleEditor.Edit(Window Owner)
в V8Reader.Editors.ModuleEditor.Edit()
в V8Reader.Editors.DataProcEditorWnd.btnObjectModule_Click(Object sender, RoutedEventArgs e)
в System.Windows.RoutedEventHandlerInfo.InvokeHandler(Object target, RoutedEventArgs routedEventArgs)
в System.Windows.EventRoute.InvokeHandlersImpl(Object source, RoutedEventArgs args, Boolean reRaised)
в System.Windows.UIElement.RaiseEventImpl(DependencyObject sender, RoutedEventArgs args)
в System.Windows.UIElement.RaiseEvent(RoutedEventArgs e)
в System.Windows.Controls.MenuItem.InvokeClickAfterRender(Object arg)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.DispatcherOperation.InvokeImpl()
в System.Windows.Threading.DispatcherOperation.InvokeInSecurityContext(Object state)
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Threading.DispatcherOperation.Invoke()
в System.Windows.Threading.Dispatcher.ProcessQueue()
в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
в MS.Win32.UnsafeNativeMethods.DispatchMessage(MSG& msg)
в System.Windows.Threading.Dispatcher.PushFrameImpl(DispatcherFrame frame)
в System.Windows.Threading.Dispatcher.PushFrame(DispatcherFrame frame)
в System.Windows.Threading.Dispatcher.Run()
в System.Windows.Application.RunDispatcher(Object ignore)
в System.Windows.Application.RunInternal(Window window)
в System.Windows.Application.Run(Window window)
в V8Reader.Program.<>c__DisplayClass7.<OpenFile>b__5()
в V8Reader.Program.SafeMessageLoop(Action DoMessageLoop)
42. Андрей Овсянкин (Evil Beaver) 11.03.13 11:25
(41) flash2k, Так на всех обработках или на конкретных? Правильно ли я понял, что падает при открытии какого-нибудь модуля, что просто окно обработки все-таки открывается?
43. Виталий (flash2k) 11.03.13 12:45
окно открывается, ошибка возникает при открытии модуля обработки/формы
пробовал на первых 5 попавшихся
44. Андрей Овсянкин (Evil Beaver) 11.03.13 14:08
(43) flash2k, Спасибо. Пока записал в загадки. Какая версия XP?
45. Виталий (flash2k) 11.03.13 14:32
46. Gr0ck (gr0ck) 11.03.13 16:12
Разработка хорошая, надеюсь так и станется бесплатной, и будет радовать разработчиков исправлением багов и добавлением возможностей. За это плюс+
47. ivanov660 ivanov660 (ivanov660) 12.03.13 10:19
48. Алекс Ю (AlexO) 12.03.13 17:36
(27) Evil Beaver,
так вот, никакой SVN вам не позволит:
- при смене ссылок - найти их ВСЕ и обновить (только Линукс так умеет, да и то - потому что у него используются непосредственно ССЫЛКИ-метки)
- пометить, что каталог - пустой, и требует инфо
... и многое, многое другое, что недоступно вашим SVN-ам..
А я делаю все это - влегкую. Так что минусы - всем "защитникам" SVN.
49. Евгений Сосна (pumbaE) 12.03.13 18:29
(48) AlexO, расшифруйте плиз
- пометить, что каталог - пустой, и требует инфо -- для какой структуры каталогов это необходимо, пометить, что каталог должен быть пустым и т.д.
- при смене ссылок - найти их ВСЕ и обновить -- какие ссылки, что менять и на что, что обновлять.
50. Алекс Ю (AlexO) 13.03.13 09:15
(49) pumbaE,
"- пометить, что каталог"
если заранее сделана структура, но там нет инфо. Делаешь пометку на каталоге, потом можно его по пометке найти - где пустые.
"- - какие ссылки, что менять и на что, что обновлять."
а потому что не просто набор обработок и прочего, а с пояснениями и ссылками по пересекающимся работам.
51. Андрей Овсянкин (Evil Beaver) 13.03.13 09:52
(50) AlexO, дружище, может хватит троллить? Был задан довольно конкретный вопрос - расскажи что ты имеешь в виду, как организован твой супер-пупер рабочий процесс?

А ты отвечаешь малопонятными и неубедительными фразами ни о чем. Или объясни толком, с самого начала или не парь мозги, ок?
52. Алекс Ю (AlexO) 13.03.13 11:36
(51) Evil Beaver,
в (18 ) описана база.
В (26 ), (48 ), (50 ) - использование.
Что непонятно? Что структурированность, прежде всего - должна быть в голове? :)
53. Евгений Сосна (pumbaE) 13.03.13 12:49
(52) AlexO, может сподобитесь на публикацию "Как я у меня структурировано располагаются обработки".
Потому как из (18) непонятно где вы храните ссылки на пустые каталог в текстовом файлике или же архиве.
Как архиве лежат версии обработок и по описанию можно быстрой найти необходимую версию, как с помощью перекресных ссылок вы знаете, что для этого клиента в этой обработке сделано то, для другого другое, при этом базой является вот та версия обработки и дополнительно у третьего клиента стоит еще старая версия.

p.s.: мне реально интересен чужой опыт. Прошу именно публикацию или развернутый ответ с примером, потому как не могу понять как из (18) (26) (48) (50) получается конфетка.
awa; Evil Beaver; bambr1975; +3 Ответить 3
54. bulpi bulpi (bulpi) 13.03.13 16:52
Увы, но для Win XP SP3 с установленным Net Framework 4 не работает, выдает ошибку, как у (41) :
System.IO.FileFormatException: The image format is unrecognized. --->

и т.д.
55. {ÐƦǑƝȊ} mx (dour-dead) 13.03.13 16:52
Установил, открыл, зашел в настройки.


со второго раза нормально окрылась
Прикрепленные файлы:
56. Андрей Овсянкин (Evil Beaver) 13.03.13 16:59
(55) dour-dead, ухты, как интересно. Знать бы еще что это, гыгы :)
57. Алекс Ю (AlexO) 14.03.13 09:42
(53) pumbaE,
Хранение в обычных тестктовых файлах + структура каталогов.
Главное - продуманная структура + структурированность в голове: не забывать делать пометки и краткие пояснения своих действий.
И все.
Тексты, обработки, картинки, пояснения - все хранится вместе (а можно и врозь).
Только путь скопируй (или еще как пометь, это - смотреть там-то, главное, чтобы понятно было, хоть одним словом помечай), где лежит - и пусть оно там лежит, хоть у соседа.
непонятно где вы храните ссылки на пустые каталог в текстовом файлике или же архиве.

все хранится в открытом виде (или архивируется стандартно).
И никаких лишних программ + можно рубить как хочешь контент (если большой слишком - взял, и по алфавиту разделил на равные части) + про исправление ссылок уже писал.
Все делается ТИПОВЫМИ, СТАНДАРТНЫМИ, НЕ 1совыми средствами и прочей лабудой.
Важнейший пункт - структурированность в голове.
58. Алекс Ю (AlexO) 14.03.13 09:51
(53) pumbaE,
Как архиве лежат версии обработок и по описанию можно быстрой найти необходимую версию

Версии обработок - помечаются v1, v2, v3...
Рядом - файл истории: что, зачем, почему, какую версию смотреть.
как с помощью перекресных ссылок вы знаете, что для этого клиента в этой обработке сделано то, для другого другое

Обработки, во-первых, разделяются для разных клиентов (если дописки только для одного, но второму не нужны), а, во-вторых, все записывается - что, сколько, на сколько.
Тут же пометка - базой является вот эта обработка, находится тут, версия базовая - такая-то, почему именно она принята за базу, а не последняя версия, которая лежит там-то.
Если клиенты запутались в обработках - отдельный файл "Распределение обработок", где - дата, кто, чего отдано.
И когда требуется на что заменить.
Т.е., зная, где лежит обработка - я найду все остальные связанные + узнаю, зачем я столько версий понаделал и кому.
И базу найду. Или наоброт, помня, где лежит базовая - по ссылке найду потомков с их историей.
А то и просто - помечу в текстовике, что сделаны потомки, лежат там-то, обращаться к ним в случае таком-то. А нет - пусть и дальше лежат, трогать не надо.
Главное - структурированность в голове. :)
59. Алекс Ю (AlexO) 14.03.13 09:52
(53) pumbaE,
вы все это из (58 ) можете реализовать в жестких рамках, которые недорисовали разработчики SVN?
60. Андрей Овсянкин (Evil Beaver) 14.03.13 09:53
(58) AlexO, спасибо, поржал. А сам-то понял, что сказал?
61. Алекс Ю (AlexO) 14.03.13 09:55
(60) Evil Beaver,
спасибо, тоже поржал.
А ты сам-то понимаешь вообще, что ты делаешь? или так, абы-что понаделать, а там и ладно?
Ну тогда тебе никакой ни SVN, ни Билл Гейтс, ни Нуралиев, никто не поможет.
62. Андрей Овсянкин (Evil Beaver) 14.03.13 10:48
(61) AlexO,
абы-что понаделать, а там и ладно

да-да, я имено так и делаю. Это вообще мое жизненное кредо :)
63. Владимир Каракозов (karakozov) 14.03.13 16:36
При открытии WIn 7 64bit Платформа 8.2.14.537
пишет

в V8Reader.Controls.CodeControl.foldingUpdateTimer_Tick(Object sender, EventArgs e)
в System.Windows.Threading.DispatcherTimer.FireTick(Object unused)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.DispatcherOperation.InvokeImpl()
в System.Threading.ExecutionContext.runTryCode(Object userData)
в System.Runtime.CompilerServices.RuntimeHelpers.ExecuteCodeWithGuaranteedCleanup(TryCode code, CleanupCode backoutCode, Object userData)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean ignoreSyncCtx)
в System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
в System.Windows.Threading.DispatcherOperation.Invoke()
в System.Windows.Threading.Dispatcher.ProcessQueue()
в System.Windows.Threading.Dispatcher.WndProcHook(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndWrapper.WndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam, Boolean& handled)
в MS.Win32.HwndSubclass.DispatcherCallbackOperation(Object o)
в System.Windows.Threading.ExceptionWrapper.InternalRealCall(Delegate callback, Object args, Int32 numArgs)
в MS.Internal.Threading.ExceptionFilterHelper.TryCatchWhen(Object source, Delegate method, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.WrappedInvoke(Delegate callback, Object args, Int32 numArgs, Delegate catchHandler)
в System.Windows.Threading.Dispatcher.InvokeImpl(DispatcherPriority priority, TimeSpan timeout, Delegate method, Object args, Int32 numArgs)
в MS.Win32.HwndSubclass.SubclassWndProc(IntPtr hwnd, Int32 msg, IntPtr wParam, IntPtr lParam)
64. Андрей Овсянкин (Evil Beaver) 14.03.13 17:12
(63) karakozov, на всех файлах или на некоторых? Если на некоторых, то это похоже на (7). У себя уже исправил, если можете дать файл, проверю еще и на нем.
65. Алексей (alest) 14.03.13 18:46
(46) gr0ck, Сырцы автор пока не дает, хотя и признался, что непосредственно использовал чужие :(
(3) orefkov, это для Снегопата?
66. Александр Орефков (orefkov) 14.03.13 22:24
67. Xpym Xpym (xpym-xpym) 14.03.13 23:42
(63) karakozov, (66) orefkov,
При открытии WIn 7 64bit и тд пока так и не работает?

Замысел старый реализация посмотрим)
68. Андрей Овсянкин (Evil Beaver) 14.03.13 23:47
(65) alest,
Сырцы автор пока не дает, хотя и признался, что непосредственно использовал чужие :(

Ну во-первых, непосредственно чужие я не использовал. Все сырцы написаны мной, хотя документация на формат epf и пример реализации да, брал в V8Unpack. Непонятно, почему недовольный смайлик? Это разве плохо? Тут как-бы признаваться мне не в чем, наоборот, все по-честному. Ну а во-вторых, сорцы я не даю, т.к. в них надо порядок навести, доделать кое что. Если есть желание попилить - милости прошу в личку, обсудим. Просто в открытое скачивание выкладывать пока не буду.
69. Алекс Ю (AlexO) 15.03.13 10:08
(68) Evil Beaver, orefkov
Вот она, Россия - кроме как для писать костыли к 1С, другие RAD и не нужны больше... :((
70. Niten (NittenRenegade) 15.03.13 13:27
Классная штука, развивать однозначно стоит.
Кстати, сам кодил на .NET около года. Удобная среда для программирования, но как отправишь продукт в большое плавание, так и начинаются траблы: framework есть далеко не у всех и он реально много весит; MS постоянно придумывает новые, малоприспособленные для реальной разработки технологии, которые бросает в погоне за новыми призраками, так и не внедрив прежние. При этом на разных платформах независимая вроде бы среда начинает выдавать разные фокусы в поведении. В общем, у меня тоже на него аллергия осталась. Но это так, лирика.
Evil Beaver, успехов и упорства в продолжении начатого.
71. Андрей Овсянкин (Evil Beaver) 15.03.13 14:01
(69) AlexO, Трололошечки-трололо... еще какие идеи будут?
72. andrewks 17.03.13 13:05
неплохо было бы в описании указывать - что именно было обновлено
73. Андрей Овсянкин (Evil Beaver) 17.03.13 13:55
(72) andrewks, На Инфостарте не указал, но при автообновлении должно указываться. Вы на основании чего сделали вывод, что вообще есть обновление?
74. andrewks 17.03.13 14:37
(73) Evil Beaver, ну так в свойствах публикации указано, что она была обновлена сегодня [17.03.2013 10:46]
75. Андрей Овсянкин (Evil Beaver) 17.03.13 14:53
А вы внимательный ;) Расчет был такой, что вновь скачивающие будут получать более свежий файл. А те кто уже скачали, получат его через автообновление, где и будет указано - что поменялось.
Разумеется, при условии, что автообновление работает :) Заодно и проверим.
76. Вадим Миляев (PrinzOfMunchen) 17.03.13 16:20
(75) Evil Beaver,
Классная вещь, но так хочется написать нечто подобное на 1с...
Ну или хотя бы открыть из 1с свою внешнюю обработку с возможностью просмотра её кода...)))
77. andrewks 17.03.13 16:49
(76) PrinzOfMunchen,
Ну или хотя бы открыть из 1с свою внешнюю обработку с возможностью просмотра её кода


эмм... а что мешает?

если такое написать на чистом 1с - это будет безбожно тормозить. как минимум, нужна ВК.
78. Евгений Сосна (pumbaE) 17.03.13 16:57
Хм, v8reader имхо для внешних обработок не тормозит. http://infostart.ru/public/106310/
79. Андрей Овсянкин (Evil Beaver) 17.03.13 17:21
(76) PrinzOfMunchen, так уже есть! Ссылка в моей статье. Очень любопытная разработка.
80. Вадим Миляев (PrinzOfMunchen) 17.03.13 20:00
(79) Evil Beaver, м-да? Благодарю!
81. Алекс Ю (AlexO) 18.03.13 10:34
(71) Evil Beaver,
Трололошечки-трололо

А я - AlexO, познакомились уже.
Сами себе создают трудности, и потом героически их преодолевают...
ВК на 1С - зло для 1С: она и не работает с ними путем, и держать ВК надо постоянно под рукой. А то и вообще - придумывать, как подключить при жестко ограниченном доступе.
Но "тролло-ло", как они себя называют и представляются, играются дальше :))
82. Модератор раздела Артур Аюханов (artbear) 18.03.13 18:55
(81) AlexO в своем репертуаре.
Все у него автоматически и мысленно, никаких доп.средств не использует.
Тем, кто в теме, предлагаю тупо пропускать его посты :)
83. Виталий (flash2k) 19.03.13 08:54
проверил новую версию, работает :)
текст модуля открывает, но при сравнении (когда делаешь показать различие в модулях) выдает
84. Андрей Овсянкин (Evil Beaver) 19.03.13 09:26
(83) flash2k, судя по ошибке система не нашла внешний diff-viewer. Т.е. у Вас в настройках, скорее всего, указан путь к несуществующей программе сравнения. Я прав?
85. Виталий (flash2k) 19.03.13 09:38
вроде все настроено, все есть
86. Андрей Овсянкин (Evil Beaver) 19.03.13 09:53
(85) flash2k, Где же есть? В окне настроек указан путь к TortoiseMerge, а папку показываете с KDiff. если хотите сравнивать с помощью KDiff, так и путь пропишите к KDiff. И параметры командной строки для него.
87. Виталий (flash2k) 19.03.13 09:58
за правым окном настройки окно с TortoiseMerge
88. Андрей Овсянкин (Evil Beaver) 19.03.13 10:21
(87) flash2k, все, я понял. Путь к TortoiseMerge нужно заключить в кавычки.
89. Виталий (flash2k) 19.03.13 10:43
ага, с кавычками разобрался
только еще проблема :)
при сравнении выдает

ощущение, что он не видит параметров...
90. Андрей Овсянкин (Evil Beaver) 19.03.13 11:36
Попробуйте параметры тоже в кавычки. Автоматом они не "кавычатся" пока. Хотя, у меня параметры в кавычках не работали, уже не помню почему. Разберусь.
Какой у вас полный путь к каталогу Temp?
91. Виталий (flash2k) 19.03.13 13:08
в параметрах кавычки не помогли
%temp% = C:\Documents and Settings\user\Local Settings\Temp
92. muha muhaha (fr.myha) 21.03.13 12:03
Интересная вещица. Но думаю платформа развивается и много нюансов которые можно не предусмотреть.
А может в каких-то случаях испортить.
Предпочитаю просматривать обработки через стандартные возможности предоставляемые платформой 1С:Предприятие.
93. Алекс Ю (AlexO) 21.03.13 12:10
(82) artbear,
Тем, кто в теме, предлагаю тупо пропускать его посты

Увы, 1С не дает пощады и не делает скидок... будь то мегатру1сник или простой новичок...
94. bulpi bulpi (bulpi) 21.03.13 13:05
Новая версия работает на XP ! автор, спасибо!!!!
95. Cratos2 (CratosX) 24.03.13 04:16
(17) pumbaE, а можно подробнее ? Есть определённые пожелания к api в конфигуратор? Давай составим петицию, главное чтобы она разумной была.

(0) Evil Beaver, круто! Спасибо! Пожелания:
1. Сравнение начинать не только правой кнопкой мыши - Показать различия в диалогах, а просто двойным щелчком. Ну или в настройках указать метод (возможно, при двойном ЛКМ открывать сам модуль).

2. В сравнении SVN передавать не темповые файлы вида tmpCEE5.tmp, а нормальные названия. Я долго вкуривал, что файл слева - более поздняя версия ((. Или это зависит от настроек tortoise?

3. В описании привели только англоязычный интерфейс SVN. 1С-ники к сожалению не все владеют английским, уточните что есть русификация
Прикрепленные файлы:
96. Евгений Сосна (pumbaE) 24.03.13 10:18
(95) Cratos2, поподробней можете посмотреть в снегопате, я как скриптописатель могу показать мощь api снегопата и скриптов.
97. Cratos2 (CratosX) 24.03.13 17:08
При попытке открыть файл 8.1 выдаёт ошибку:

System.IO.FileNotFoundException: Не удалось найти указанный файл.
в V8Reader.Core.MDFileItem..ctor(IImageLister imgLister, String itemName)
в V8Reader.Core.MDReader.GetElement(String Name)
в V8Reader.Core.MDDataProcessor.Create(String ImageFile)
в V8Reader.Program.<>c__DisplayClass7.<OpenFile>b__5()
в V8Reader.Program.SafeMessageLoop(Action DoMessageLoop)


Сконвертировав под 8.2, всё проходит гладко.
Прикрепленные файлы:
epf 8.1 + 8.2.zip
98. Андрей Овсянкин (Evil Beaver) 25.03.13 11:36
(95) Cratos2, спасибо за конструктив. По пунктам:
1. Сравнение начинать не только правой кнопкой мыши - Показать различия в диалогах, а просто двойным щелчком. Ну или в настройках указать метод (возможно, при двойном ЛКМ открывать сам модуль)

Поведение содрал с родного "одинэсовского". Ваше предложение интересно, подумаю.
2. В сравнении SVN передавать не темповые файлы вида tmpCEE5.tmp, а нормальные названия. Я долго вкуривал, что файл слева - более поздняя версия ((. Или это зависит от настроек tortoise?

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

У меня английский интерфейс, скриншоты с него и снимал. Руссификация есть, но когда я ее вижу, то как слепой котенок пытаюсь переводить с русского обратно на английский. Дело привычки. Хотя айтишник, имхо, должен владеть английским, даже если он пишет "Если Тогда" :)

4. За ошибку спасибо. Посмотрю.
99. Александр Ульянов (Aleks1973) 25.03.13 11:48
После текста в описании "выложена для поиска ошибок" как-то временно потерял интерес. НО !
Тема - хорошая ! (С)