Снегопат https://snegopat.ru/forum/ |
|
Работа с Хранилищем 1С https://snegopat.ru/forum/viewtopic.php?f=1&t=110 |
Страница 1 из 3 |
Автор: | JohnyDeath [ 20 янв 2012, 09:01 ] |
Заголовок сообщения: | Работа с Хранилищем 1С |
Я опять за старое. Реально ли в данной версии снегопата реализовать простейшую работу с Хранилищем 1С + БагТрекер Redmine? У Redmine-а есть RestApi. У 1С есть снегопат ) Что хочу: 1) Создать/изменить задачу из конфигуратора. Это в данный момент не проблема. 2) При помещении в хранилище считывать инфу, которую написали в комментарии при помещении и что-либо делать с задачами Redmin-а. Например, закрывать, если стоит текст {Закрыта задача # 123}. 2.1) Также хотелось бы поиметь тексты помещаемых модулей и формы (хотя бы в бинарном виде), для того, чтобы их можно было бы прикрепить к задачам, а еще лучше - положить во внешнее хранилище типа SVN Что-нибудь из 2-го пункта можно сделать уже сейчас? Вроде бы тексты заголовков окон снегопат читает, может и внутренности умеет. |
Автор: | orefkov [ 20 янв 2012, 09:06 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
п.2 - я так понял проблема в том, что хочется отлавливать момент помещения в хранилище? |
Автор: | JohnyDeath [ 20 янв 2012, 09:15 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
Да. И поиметь всё, что в этом окне записано и объекты (тексты или бинарники), которые помещаются. |
Автор: | kuntashov [ 20 янв 2012, 09:58 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
Я тоже в фоновом режиме давно уже думаю над задачей из п. 2.1, даже поэксперементировал немного, но пока забросил. "Поиметь" содержимое текстового окна довольно легко - это обычное текстовое окно и getActiveTextWindow() его возвращает (когда оно активно, конечно же. Но загвоздка в том, что его открытие не генерирует события createTextWindow (Александр, это сознательно так сделано?), поэтому, для имитации этого события я использовал следующий подход: 1. Вешал обработчик на закрытие модального окна размещения измененных объектов в конфигурацию, в обработчике создавал таймер (на 1 секунду). 2. В событии от таймера вызывал команду открытия окна сообщений, чтобы в него гарантированно поместился фокус. 3. Получал содержимое окна. На домашнем компе где-то скрипт валяется, могу выложить, если надо. Дальше этого я пока не пошел. |
Автор: | kuntashov [ 20 янв 2012, 10:09 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
Что касается задачи в целом: мне тоже бы хотелось иметь возможность реализовать интеграцию хранилища со сторонней VCS в онлайне. Основная цель: повысить скорость выполнения сценария: "А что у нас менялось в коде открытого модуля тогда-то" и, наиболее частый его частный случай "А что это я тут поменял с момента последнего коммита?" и подобными. С хранилищем приходится выполнять эту операцию через сравнение с нужной версией хранилища, что крайне медленно. Если уметь при коммите в хранилище автоматически отправлять изменения, например, в репо на фоссиле, то этот сценарий можно ускорить в сотни раз по времени и тогда его реально можно будет использовать. Для реализации задачи перехвата содержимого окна сообщений мало, нужно еще уметь открывать извлекать тексты произвольных модулей. Для этих целей пытался использовать диалог "Выгрузить файлы", но программно проставить флажки в дереве значений не удалось: модель форм, предоставляемая Снегопатам пока позволяет манипулировать только с "простыми" элементами управления, а c SendKeys навигация по дереву слишком уж экстремальная . Да и медленно все это, что опять делает бессмысленным все эти манипуляции. |
Автор: | orefkov [ 20 янв 2012, 10:14 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
Я просто с хранилищем не работал, поэтому пока слабо представляю, о каких окнах и диалогах идет речь Сейчас попробую разверну хранилище, поиграюсь. ЗЫ. Александру - не проверял ли ты, что возвращает value для ЭУ типа Дерево? |
Автор: | JohnyDeath [ 20 янв 2012, 10:35 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
kuntashov писал(а): Основная цель: повысить скорость выполнения сценария: "А что у нас менялось в коде открытого модуля тогда-то" и, наиболее частый его частный случай "А что это я тут поменял с момента последнего коммита?" и подобными. У нас еще есть потребность именно в баг-трекере. Т.е. кто-либо (пользователи или сами разработчики) добавляют пожелание/ошибку, а мы исправляем её, помещая в хранилище правки и одновременно закрывая задачу. Т.о. инициатор задачи будет всегда в курсе событий, происходящих с его задачей. Да и сам разработчик сможет ответить на вопрос "А вообще зачем я вносил эти правки? На основании чего я вдруг взялся всё переделывать?" |
Автор: | kuntashov [ 20 янв 2012, 11:31 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
У меня процесс немного другой и одна задача может быть закрыта несколькими коммитами, поэтому в общем случае жесткой связи "коммит в хранилище - закрытие задачи в багтрекере" не может быть. Я просто Но этот вопрос влияет лишь на мелкую деталь реализации: закрывать ли задачу при коммите или просто добавлять в нее комментарий, что были произведены такие-то действия или ничего не делать с задачей вообще. Сделаем опцию, когда разберемся с основными проблемами ) |
Автор: | sosnae [ 20 янв 2012, 13:19 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
+ Отчет о конфигурации - конечно тоже желательно выгружать. Но самая большая проблема для меня это все таки формы... Как вариант конечно можно будет приделать Декомпиляторы форм и вроде как есть уже Декомпилятор управляемых форм. |
Автор: | lustin [ 21 янв 2012, 14:06 ] |
Заголовок сообщения: | Re: Работа с Хранилищем 1С |
JohnyDeath писал(а): Я опять за старое. ... Я думал в этом направлении и вот к каким выводам пришел: 1. Нужен скрипт для Снегопата который будет иметь функциональность: * связать текущую конфигурацию с проектом Redmine: запись настроек в snegopat.pfl * показать список задач по проекту черезе RestAPI * позволить прокомментировать, указать затраченное время под конкретную задачу через ResAPI * позволить изменить статус задачи Блокировка, Закрытие и т.д через ResAPI скрипт должен иметь "хоткеи" - куда же без них 2. нужен адаптер к хранилищу для Redmine * интерфейс адаптера к системе контроля версий определен тут * нужна утилита для доступа к хранилищу из командной строки: единственное что у нас есть - это Tool1CD от awa, запуск из командной строки там есть, выгрузка в xml есть, не хватает только разбора модуля из image полей. --- я готов написать адаптер для Redmine в виде плагина (положу его на Github например для update стандартным способом) - мне не хватает только консольной утилиты. С awa мы говорили на эту тему, но как то пока наверное времечка нету ни у кого. P.S. Там еще нужна будет подсветка синтаксиса 1С - на эту тему уже тоже копали, есть пример в виде библиотеки для CodeRay (но там были проблемы с кодировкой UTF-8) |
Страница 1 из 3 | Часовой пояс: UTC + 3 часа |
Powered by phpBB® Forum Software © phpBB Group http://www.phpbb.com/ |