Redmine 1c подключение к источнику данных
Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с системой Redmine.
Немного предыстории. В своей работе я пользуюсь системой управления задачами Redmine. Если честно, я не помню насколько давно я начал использовать Redmine, но помню, что это произошло когда стало очевидно, что проект Mantis BT окончательно заглох и серьезных улучшений ждать не приходится. Пришлось искать альтернативу и альтернатива, в виде Redmine, оказалась хороша. Я могу долго описывать прелести Redmine (это не реклама, честное слово!), но публикация посвящена взаимодействию Redmine и 1С, так что вернемся к теме.
Подсистема повторяет структуру данных, которая описывается Redmine API на объектах метаданных 1С и позволяет обмениваться данными через ту же Redmine API.
Почему так? Взаимодействовать с Redmine я пробовал разными способами: ситуативно, по необходимости обращался из кода к API, строил в памяти (на структурах и таблицах значений) временную модель, работал с ней и уничтожал, немного пробовал внешние источники данных. Но лучшей моделью использования стало для меня все же повторение структуры данных Redmine на объектах метаданных 1С. Это удобно, так как для получения и отправки информации используются привычные объекты 1С, а для сборки данных и построения сложных запросов к данным не нужно придумывать новые функции, достаточно собрать информацию запросом 1С, предварительно освежив данные справочников. Да, это приводит к дублированию информации (одни и те же данные есть в Redmine и в 1С), но удобство важнее. Плюс - можно достраивать UI на формах 1С как угодно, привычным способом.
Подсистема писалась для обычных форм, толстого клиента, но может быть легко переделана и под управляемые формы (планируется в следующих версиях). Разумеется, те формы что есть в подсистеме, просто поддерживают функционал подсистемы и могут быть доработаны.
Подсистема тестировалась на платформе 8.3.14.1694
Related Posts
Пользователи Redmine
Для того, чтобы подсистема выполняла операции от имени другого пользователя Redmine, в общем модуле ЮК_Redmine1C предусмотрено две функции - Логин и Логаут.
Например, если вы хотите, чтобы у новой задачи, которую вы создали в 1С, был определенный автор, перед отправкой задачи на сайт выполните логин, а после отправки - логаут.
Специальные предложения
Автор, мои вам респекты. Но такой вопрос - может быть, чисто случайно, вам встречались сведения по API для TFS? Всё хочу интегрироваться, а инфы мало. Если да, киньте, плз, в меня ссылкой.
(1) Yashazz, Смотрел выступление на infostart event на эту тему. Может поищите, есть на ютуб канале Доржи Но там все сложно, через снегопад писали свои скрипты, и вспомогательный софт. Не мой уровень к сожалению.
(4) уже давно сделал интеграцию с 1С, только я делал через внешние источники данных. В связи с развитием ВИД, можно с их помощью уже не только получать данные из Redmine в 1С, но и из 1С писать напрямую в Redmine.
(7) omut, Есть в планах добавить пользователей и роли. чтобы с ними можно было работать.
нужно немного разгрести дела, сесть и сделать. может на выходных сделаю
(8) я использовал этот плагин. Логика работы была такая: пользователи 1С не являются пользователями редмайн, а являются контактами. Данные по контакту через апи добавлялись в редмайн (если такого контакта там еще не было) и автоматически привязывались к задачам. К сожалению, руки так же не дошли добить до конца интерфейс добавления задачи в 1С (
(9) omut, Посмотрел плагин. у него есть API так что прикрутить можно. Единственное не понял в чем преимущество его пользования?
(14) обратная связь от пользователей 1С без необходимости заводить их в качестве пользователей. Например, можно создавать новые задачи от пользователей, привязывать контакты к задаче. В этом случае будет видно, кто отправил условную заявку или создал обращение в ТП. Как показывает практика, клиентам, заказчикам и прочим пользователям 1С пользоваться багтрекингом затруднительно. А так они просто пишут прямо в 1С текст (или прикрепляют что-то, это уже как надо) и формируется задача с нужными настройками и информацией, кто ее отправил. Еще один плюс: пользователей 1С может быть много и всех их мы просто не знаем. Полезно прикрутить в качестве организации, например, подразделение. Так автоматически формируется структура организации клиента, привязываются сотрудники клиента и все это видно в выставленных задачах (обращениях). Ну и электронная почта, как еще один бонус для обратной связи. Адрес так же можно привязывать автоматом. Примерно такая схема.
(10) Нет интеграцию с этой системой не делал. Посмотрел, там идет взаимодействие через json , поэтому тот прием который я использовал, чтобы сократить код до минимума не подойдет.
но если совсем обнаглеть, то хотелось бы для 7.7 ;)
(12) phsin, Про эту обработку знаю, хорошая вещь.
а вот с 7.7 точно не будет, там таких плюшек как XDTO нет, собственно за счет их использования все получилось просто.
да и я с 7.7 сейчас работаю преимущество только в проектах по переходу на 8. :) какой то разработки на 7.7 уже года 3 не веду.
Подскажите, как получить все задачи? Сейчас, даже при простом запросе вида: redmine/issues.xml?project_id=7 я получаю только открытые задачи.
(17) Смешной 1С,
Можно уточнить запрос добавив отбор по всем статусам. Получится следующее redmine/issues.xml?project_id=7&status_id=*
Коллеги, а у всех работает обновление проектов ? У меня хоть убиться не получается программно создавать/обновлять подчиненные проекты, т.е. те где указан parent_id. Может кто подскажет как решить проблему ?
(0) поразбирался с обработкой - обратил внимание что с custom fields до конца не разобрались ?
(21) lustin,
да они мне были не нужны. с загрузкой файлов тоже не все гладко вышло. в редмайн они грузятся а вот с задачей не связываются. не силен в руби поэтому не стал копать, что там к чему
и
текОбъект.type = "array";
нужно заменить на
текОбъект.uploads.type = "array";
У меня все заработало :)
2. По custom-fields:
это свойство в процедуре УдалитьПустыеПоля(ОбрабатываемаяСтруктура) просто удаляется, если не заполнено.
Как решение заменить в 405 строке
ЗаполнитьЗначенияСвойств(текОбъект,Параметры,,"custom_fields");
на
ЗаполнитьЗначенияСвойств(текОбъект,Параметры. (Параметры.Свойство("custom_fields"),"custom_fields",""));
Интеграция с Redmine (Rest API). Тестировалось на 1С:Предприятие 8.3.12.1412 1. Получение списков Проектов, Трекеров, Статусов, Версий, Пользователей 2. Отбор задач по дополнительным полям (произвольные поля добавляемые пользователями в Redmine) 3. Получение Учета времени с отбором по пользователю и диапазону дат 4. Получение задач с различными отборами (гибкая настройка)
Обработка "Интеграция с Redmine".
Обмен данными производится через Rest-API. При разработке использовалась описание сервиса расположенное на ресурсе
2. Отбор задач по дополнительным полям (произвольные поля добавляемые пользователями в Redmine)
В настоящий момент, поля (идентификаторы) приходится заполнять в ручном режиме. Такое ограничение возникло из-за того, что для их получения требуются права Администратора в Redmine, которыми я не обладаю.
На изображении ниже представлено отбор по произвольному полю Релиз, идентификатор в Redmine которого "21". Отбор можно задавать как по пустому значению, для этого в списке значений нужно указать пустую строку, так и по конкретным значениями, одному или нескольким.
3. Получение Учета времени с отбором по пользователю и диапазону дат
В качестве отбора для пользователя используется его ИД (можно узнать на закладке Пользователи) и период. Оба параметра задаются на закладке настройки.
4. Получение задач с различными отборами (гибкая настройка)
Подборы выполняются на соответствующих закладках: Проекты, Трекеры, Статусы, Версии, Произвольные поля (Отборы по Пользователи не реализовано, в связи с тем что доступ к этой таблице так же требует Администраторских прав)
Для начала работы требуется заполнить настройки на первой закладке:
Как узнать свой API Key, вы можете нажав кнопку "Как узнать свой ключ API"
Основное отличие это работа с произвольными полями и возможность отбора по нескольким однотипным параметрам.
Наша небольшая команда в качестве трекера для работы с клиентами использует бесплатный достаточно популярный трекер Redmine. Почему Redmine? — Потому что для нас проще было разместить трекер в сети, чем организовывать доступ к нашей инфраструктуре и использовать что-нибудь на основе 1с. Для синхронизации данных Redmine и 1с была написана эта обработка.
Все общение с Redmine идет через REST API, подробное описание которого можно найти по адресу
В самой обработке есть управляемая форма где можно посмотреть примеры работы.
Подключение к Redmine
Для того чтобы подключится к Redmine , на необходимо включить использование Rest . Это можно сделать на закладке Администрирование — > Настройки — > закладка Аутентификация — > галочка веб сервис REST :
Затем получить ключ текущего пользователя, под которым вы зашли. Заходите в пункт «Моя учетная запись». В правой панели смотрите ваш API Ключ.
Данные о ключе и сервере прописываете в реквизиты обработки.
После инициализации этих переменных, можно делать запросы к Redmine.
Пример получения данных
Для примера получим описание задачи. В примере в форме обработки это делается кодом:
У меня в переменных формы НомерЗадачи, содержится «41», это идентификатор задачи в базе Redmine . В параметрах, я указал что хочу получать присоединенные файлы, по умолчанию они не выдаются. На выходе получаем структуру:
Как обрабатывать эту структуры мы решаем в зависимости от того что мы делаем в нашей 1с конфигурации.
Начало работы
Для того, чтобы начать работу с подсистемой, ее нужно залить в вашу конфигурацию, либо развернуть чистую базу из .cf и настроить хотя бы один узел плана обмена (предопределенный узел самой базы настраивать не нужно):
Немного о настройках.
Адрес, порт, путь в комментариях не нуждаются, ключ API вы можете найти в настройках пользователя в самом Redmine в разделе "Моя учетная запись":
От имени этого пользователя, ключ которого вы возьмете, будет работать подсистема (но не всегда, об этом далее). Пользователь должен быть администратором.
Задачи могут получаться как регламентно, так и по событию. Настройка расписания регламентных заданий вынесена на форму списка плана обмена, как получать задачи по событию, я напишу чуть ниже.
Флаг "Получать только доступные проекты" заставит подсистему получать данные только из тех проектов, в которые назначен пользователь Redmine от имени которого работает подсистема. В противном случае, будут доступны все проекты.
Флаг "Полное обновление по регламентному заданию" включает обновление всех справочников из Redmine и очистку мусора. Рекомендуется периодически делать это, но помните, что полное обновление может занять продолжительное время.
О мусоре
Для своих внутренних нужд подсистема создает "лишние" элементы некоторых справочников. Процедура сбора мусора помечает такие элементы на удаление и в последствии они могут быть безопасно удалены. Так же, некоторые данные могут быть удалены в самом Redmine, без участия 1С и в этом случае в 1С такие данные так же будут синхронизированы и помечены на удаление в процессе выполнения очистки.
Флаг "Получать пометки удаления в закрытых задачах" заставит подсистему при сборке мусора получать информацию о том, существует ли еще уже закрытая задача в Redmine и, если нет, пометить ее на удаление. Как правило, в этом нет необходимости.
Флаг "Не получать/отправлять наблюдателей" нужен, чтобы отключить синхронизацию данных о наблюдателях в процессе синхронизации данных о задачах. Если вы не используете наблюдателей в Redmine, лучше включить этот флаг, так как работа с наблюдателями порождает массу небольших отдельных запросов к API и время синхронизации задач может значительно увеличиться.
"Коррекция времени (часов)" корректирует время, получаемое из задач, на указанное количество часов. Это полезно, если настройка сервера Redmine указывает на отличный от вашего часовой пояс.
Логи
Так как подсистема активно взаимодействует с внешним сайтом, которым является Redmine, вы можете столкнуться с ошибками, связанными с нестабльным интернетом. Для более удобного отслеживания таких ситуаций, а так же других возможных проблем, подсистема все возникшие ошибки пишет в отдельный регистр логов. Очистка устаревших данных этого регистра производится так же при очистке мусора. Срок хранения логов указывается в настройке "Срок хранения логов (дней)" в днях.
Получение задач по событию
Для того, чтобы оперативно получать информацию про обновления происходящие в Redmine, я сделал плагин к Redmine, который отправляет уведомление в подсистему о том, что задача была создана или обновлена и подсистема вытягивает информацию о задаче через API.
Для работы механизма уведомлений нужно опубликовать веб-сервис подсистемы и установить плагин. Более подробную информацию об установке вы можете найти на странице плагина.
Начало работы
Для того, чтобы начать работу с подсистемой, ее нужно залить в вашу конфигурацию, либо развернуть чистую базу из .cf и настроить хотя бы один узел плана обмена (предопределенный узел самой базы настраивать не нужно):
Немного о настройках.
Адрес, порт, путь в комментариях не нуждаются, ключ API вы можете найти в настройках пользователя в самом Redmine в разделе "Моя учетная запись":
От имени этого пользователя, ключ которого вы возьмете, будет работать подсистема (но не всегда, об этом далее). Пользователь должен быть администратором.
Задачи могут получаться как регламентно, так и по событию. Настройка расписания регламентных заданий вынесена на форму списка плана обмена, как получать задачи по событию, я напишу чуть ниже.
Флаг "Получать только доступные проекты" заставит подсистему получать данные только из тех проектов, в которые назначен пользователь Redmine от имени которого работает подсистема. В противном случае, будут доступны все проекты.
Флаг "Полное обновление по регламентному заданию" включает обновление всех справочников из Redmine и очистку мусора. Рекомендуется периодически делать это, но помните, что полное обновление может занять продолжительное время.
О мусоре
Для своих внутренних нужд подсистема создает "лишние" элементы некоторых справочников. Процедура сбора мусора помечает такие элементы на удаление и в последствии они могут быть безопасно удалены. Так же, некоторые данные могут быть удалены в самом Redmine, без участия 1С и в этом случае в 1С такие данные так же будут синхронизированы и помечены на удаление в процессе выполнения очистки.
Флаг "Получать пометки удаления в закрытых задачах" заставит подсистему при сборке мусора получать информацию о том, существует ли еще уже закрытая задача в Redmine и, если нет, пометить ее на удаление. Как правило, в этом нет необходимости.
Флаг "Не получать/отправлять наблюдателей" нужен, чтобы отключить синхронизацию данных о наблюдателях в процессе синхронизации данных о задачах. Если вы не используете наблюдателей в Redmine, лучше включить этот флаг, так как работа с наблюдателями порождает массу небольших отдельных запросов к API и время синхронизации задач может значительно увеличиться.
"Коррекция времени (часов)" корректирует время, получаемое из задач, на указанное количество часов. Это полезно, если настройка сервера Redmine указывает на отличный от вашего часовой пояс.
Логи
Так как подсистема активно взаимодействует с внешним сайтом, которым является Redmine, вы можете столкнуться с ошибками, связанными с нестабльным интернетом. Для более удобного отслеживания таких ситуаций, а так же других возможных проблем, подсистема все возникшие ошибки пишет в отдельный регистр логов. Очистка устаревших данных этого регистра производится так же при очистке мусора. Срок хранения логов указывается в настройке "Срок хранения логов (дней)" в днях.
Отправка данных
Для отслеживания изменений в объектах внутри 1С используется план обмена и регистр сведений "Исходные версии объектов".
При изменении данных в 1С информация об изменениях будет накапливаться в регистре и будет отправлена на сайт по кнопке или вызовом соответствующего метода модуля менеджера.
Спасибо
Про обнаруженные ошибки пишите в комментарии.
Так как подсистемой я пользуюсь сам в ежедневной работе, она поддерживается и будет обновляться.
Спасибо за интерес к подсистеме, всем хорошего дня и хорошего кода.
Почему это решение называется «почти коробка»? Потому, что это почти коробочное решение. С его помощью, просто добавив подсистему в конфигурацию, уже можно начинать взаимодействовать с системой Redmine.
Немного предыстории. В своей работе я пользуюсь системой управления задачами Redmine. Если честно, я не помню насколько давно я начал использовать Redmine, но помню, что это произошло когда стало очевидно, что проект Mantis BT окончательно заглох и серьезных улучшений ждать не приходится. Пришлось искать альтернативу и альтернатива, в виде Redmine, оказалась хороша. Я могу долго описывать прелести Redmine (это не реклама, честное слово!), но публикация посвящена взаимодействию Redmine и 1С, так что вернемся к теме.
Подсистема повторяет структуру данных, которая описывается Redmine API на объектах метаданных 1С и позволяет обмениваться данными через ту же Redmine API.
Почему так? Взаимодействовать с Redmine я пробовал разными способами: ситуативно, по необходимости обращался из кода к API, строил в памяти (на структурах и таблицах значений) временную модель, работал с ней и уничтожал, немного пробовал внешние источники данных. Но лучшей моделью использования стало для меня все же повторение структуры данных Redmine на объектах метаданных 1С. Это удобно, так как для получения и отправки информации используются привычные объекты 1С, а для сборки данных и построения сложных запросов к данным не нужно придумывать новые функции, достаточно собрать информацию запросом 1С, предварительно освежив данные справочников. Да, это приводит к дублированию информации (одни и те же данные есть в Redmine и в 1С), но удобство важнее. Плюс - можно достраивать UI на формах 1С как угодно, привычным способом.
Подсистема писалась для обычных форм, толстого клиента, но может быть легко переделана и под управляемые формы (планируется в следующих версиях). Разумеется, те формы что есть в подсистеме, просто поддерживают функционал подсистемы и могут быть доработаны.
Подсистема тестировалась на платформе 8.3.14.1694
Спасибо
Про обнаруженные ошибки пишите в комментарии.
Так как подсистемой я пользуюсь сам в ежедневной работе, она поддерживается и будет обновляться.
Спасибо за интерес к подсистеме, всем хорошего дня и хорошего кода.
Наша небольшая команда в качестве трекера для работы с клиентами использует бесплатный достаточно популярный трекер Redmine. Почему Redmine? - Потому что для нас проще было разместить трекер в сети, чем организовывать доступ к нашей инфраструктуре и использовать что-нибудь на основе 1с. Для синхронизации данных Redmine и 1с была написана эта обработка.
Все общение с Redmine идет через REST API, подробное описание которого можно найти по адресу
В самой обработке есть управляемая форма где можно посмотреть примеры работы.
Подключение к Redmine
Для того чтобы подключится к Redmine , на необходимо включить использование Rest . Это можно сделать на закладке Администрирование - > Настройки - > закладка Аутентификация - > галочка веб сервис REST :
Затем получить ключ текущего пользователя, под которым вы зашли. Заходите в пункт "Моя учетная запись". В правой панели смотрите ваш API Ключ.
Данные о ключе и сервере прописываете в реквизиты обработки.
После инициализации этих переменных, можно делать запросы к Redmine.
Пример получения данных
Для примера получим описание задачи. В примере в форме обработки это делается кодом:
У меня в переменных формы НомерЗадачи, содержится "41", это идентификатор задачи в базе Redmine . В параметрах, я указал что хочу получать присоединенные файлы, по умолчанию они не выдаются. На выходе получаем структуру:
Как обрабатывать эту структуры мы решаем в зависимости от того что мы делаем в нашей 1с конфигурации.
Отчеты
Для ознакомительных целей и демонстрации возможностей в подсистему добавлено несколько отчетов и регистров, накапливающих дополнительную информацию о задачах.
Пользовательский модуль
Если вы хотите самостоятельно обрабатывать полученные задачи и изменения в них, не вмешиваясь в код подсистемы, вы можете воспользоваться модулем ЮК_RM_Пользовательский. Функция ЗадачиПолучены будет вызвана после получения информации о создании или обновлении задачи регламентно или по событию.
40 Comments
Автор, мои вам респекты. Но такой вопрос — может быть, чисто случайно, вам встречались сведения по API для TFS? Всё хочу интегрироваться, а инфы мало… Если да, киньте, плз, в меня ссылкой.
(1) Yashazz, Смотрел выступление на infostart event на эту тему. Может поищите, есть на ютуб канале Доржи Но там все сложно, через снегопад писали свои скрипты, и вспомогательный софт. Не мой уровень к сожалению.
Только задачи или и wiki тоже забираете?
Wiki не забираю. У всех объектов единообразный интерфейс, добавить нужное не сложно.
(4) уже давно сделал интеграцию с 1С, только я делал через внешние источники данных. В связи с развитием ВИД, можно с их помощью уже не только получать данные из Redmine в 1С, но и из 1С писать напрямую в Redmine.
(5) PrinzOfMunchen, Был в начале такой план, но у меня база лежит на внешнем хостинге.
Нет в планах использовать redmine_contacts? Интересно было бы связать через пользователей 1С
(7) omut, Есть в планах добавить пользователей и роли. чтобы с ними можно было работать.
нужно немного разгрести дела, сесть и сделать. может на выходных сделаю
(8) я использовал этот плагин. Логика работы была такая: пользователи 1С не являются пользователями редмайн, а являются контактами. Данные по контакту через апи добавлялись в редмайн (если такого контакта там еще не было) и автоматически привязывались к задачам. К сожалению, руки так же не дошли добить до конца интерфейс добавления задачи в 1С (
Спасибо, интересная разработка!
(10) Нет интеграцию с этой системой не делал. Посмотрел, там идет взаимодействие через json , поэтому тот прием который я использовал, чтобы сократить код до минимума не подойдет.
Нашел: Преобразование 1С->JSON->1С для обменов, Web-сервисов
но если совсем обнаглеть, то хотелось бы для 7.7 😉
(12) phsin, Про эту обработку знаю, хорошая вещь.
а вот с 7.7 точно не будет, там таких плюшек как XDTO нет, собственно за счет их использования все получилось просто.
да и я с 7.7 сейчас работаю преимущество только в проектах по переходу на 8. 🙂 какой то разработки на 7.7 уже года 3 не веду.
(9) omut, Посмотрел плагин. у него есть API так что прикрутить можно. Единственное не понял в чем преимущество его пользования?
(14) обратная связь от пользователей 1С без необходимости заводить их в качестве пользователей. Например, можно создавать новые задачи от пользователей, привязывать контакты к задаче. В этом случае будет видно, кто отправил условную заявку или создал обращение в ТП. Как показывает практика, клиентам, заказчикам и прочим пользователям 1С пользоваться багтрекингом затруднительно. А так они просто пишут прямо в 1С текст (или прикрепляют что-то, это уже как надо) и формируется задача с нужными настройками и информацией, кто ее отправил. Еще один плюс: пользователей 1С может быть много и всех их мы просто не знаем. Полезно прикрутить в качестве организации, например, подразделение. Так автоматически формируется структура организации клиента, привязываются сотрудники клиента и все это видно в выставленных задачах (обращениях). Ну и электронная почта, как еще один бонус для обратной связи. Адрес так же можно привязывать автоматом. Примерно такая схема.
(6) ну так у нас тоже. Для ВИД это не проблема. Ты можешь через них к любой базе цепануться.
Подскажите, как получить все задачи? Сейчас, даже при простом запросе вида: redmine/issues.xml?project_id=7 я получаю только открытые задачи.
Можно уточнить запрос добавив отбор по всем статусам. Получится следующее redmine/issues.xml?project_id=7&status_id=*
Коллеги, а у всех работает обновление проектов ? У меня хоть убиться не получается программно создавать/обновлять подчиненные проекты, т.е. те где указан parent_id. Может кто подскажет как решить проблему ?
(0) поразбирался с обработкой — обратил внимание что с custom fields до конца не разобрались ?
да они мне были не нужны. с загрузкой файлов тоже не все гладко вышло. в редмайн они грузятся а вот с задачей не связываются. не силен в руби поэтому не стал копать, что там к чему
по прикреплению файлов: у Вас ошибка в схеме в разделе группы файлов, не хватает аттрибута Type
нужно заменить на
У меня все заработало 🙂
2. По custom-fields:
это свойство в процедуре УдалитьПустыеПоля(ОбрабатываемаяСтруктура) просто удаляется, если не заполнено.
Обнаруженные проблемы
К сожалению, информация об ошибках, которую возвращает сам API не слишком информативна и порой сложно догадаться почему та или иная операция возвращает код ошибки.
При создании задач это чаще всего связано с тем, что не хватает какого-то обязательного поля, при получении файлов или комментариев может быть так, что информации уже нет в Redmine (была удалена).
Тут ничего посоветовать не могу, кроме того, чтобы внимательно читать документацию к API, а удаленные файлы и комментарии подсистема старается отслеживать сама, но об ошибках все же пишет информацию в лог.
Общее описание
Итак, что же предлагается:
Большая часть справочников не нуждается в комментариях. Тут есть задачи, пользователи, проекты, статусы и прочее-прочее.
Вот, например, форма задачи:
Большая часть справочников имеет кнопку "Получить с сайта":
И соответствующий вызов функции модуля менеджера справочника:
У некоторых справочников, там, где это поддерживалось API и было целесообразно для моих потребностей, есть кнопка отправки.
В модулях менеджеров есть соответствующие функции:
Пользовательский модуль
Если вы хотите самостоятельно обрабатывать полученные задачи и изменения в них, не вмешиваясь в код подсистемы, вы можете воспользоваться модулем ЮК_RM_Пользовательский. Функция ЗадачиПолучены будет вызвана после получения информации о создании или обновлении задачи регламентно или по событию.
Обнаруженные проблемы
К сожалению, информация об ошибках, которую возвращает сам API не слишком информативна и порой сложно догадаться почему та или иная операция возвращает код ошибки.
При создании задач это чаще всего связано с тем, что не хватает какого-то обязательного поля, при получении файлов или комментариев может быть так, что информации уже нет в Redmine (была удалена).
Тут ничего посоветовать не могу, кроме того, чтобы внимательно читать документацию к API, а удаленные файлы и комментарии подсистема старается отслеживать сама, но об ошибках все же пишет информацию в лог.
Общее описание
Итак, что же предлагается:
Большая часть справочников не нуждается в комментариях. Тут есть задачи, пользователи, проекты, статусы и прочее-прочее.
Вот, например, форма задачи:
Большая часть справочников имеет кнопку "Получить с сайта":
И соответствующий вызов функции модуля менеджера справочника:
У некоторых справочников, там, где это поддерживалось API и было целесообразно для моих потребностей, есть кнопка отправки.
В модулях менеджеров есть соответствующие функции:
Отправка данных
Для отслеживания изменений в объектах внутри 1С используется план обмена и регистр сведений "Исходные версии объектов".
При изменении данных в 1С информация об изменениях будет накапливаться в регистре и будет отправлена на сайт по кнопке или вызовом соответствующего метода модуля менеджера.
Пользователи Redmine
Для того, чтобы подсистема выполняла операции от имени другого пользователя Redmine, в общем модуле ЮК_Redmine1C предусмотрено две функции - Логин и Логаут.
Например, если вы хотите, чтобы у новой задачи, которую вы создали в 1С, был определенный автор, перед отправкой задачи на сайт выполните логин, а после отправки - логаут.
Отчеты
Для ознакомительных целей и демонстрации возможностей в подсистему добавлено несколько отчетов и регистров, накапливающих дополнительную информацию о задачах.
Общее описание
Итак, что же предлагается:
Большая часть справочников не нуждается в комментариях. Тут есть задачи, пользователи, проекты, статусы и прочее-прочее.
Вот, например, форма задачи:
Большая часть справочников имеет кнопку "Получить с сайта":
И соответствующий вызов функции модуля менеджера справочника:
У некоторых справочников, там, где это поддерживалось API и было целесообразно для моих потребностей, есть кнопка отправки.
В модулях менеджеров есть соответствующие функции:
Получение задач по событию
Для того, чтобы оперативно получать информацию про обновления происходящие в Redmine, я сделал плагин к Redmine, который отправляет уведомление в подсистему о том, что задача была создана или обновлена и подсистема вытягивает информацию о задаче через API.
Для работы механизма уведомлений нужно опубликовать веб-сервис подсистемы и установить плагин. Более подробную информацию об установке вы можете найти на странице плагина.
Читайте также: