0. stoptime 282 12.11.14 11:14 Сейчас в теме

Redmine - библиотека для интеграции с 1с

Библиотека, которая через REST API взаимодействует с Redmine. На текущий момент реализована работа проектами, задачами, учетом времени.

Перейти к публикации

Комментарии
Избранное Подписка Сортировка: Древо
1. Yashazz 2301 14.11.14 00:55 Сейчас в теме
Автор, мои вам респекты. Но такой вопрос - может быть, чисто случайно, вам встречались сведения по API для TFS? Всё хочу интегрироваться, а инфы мало... Если да, киньте, плз, в меня ссылкой.
2. stoptime 282 14.11.14 09:56 Сейчас в теме
(1) Yashazz, Смотрел выступление на infostart event на эту тему. Может поищите, есть на ютуб канале Доржи Но там все сложно, через снегопад писали свои скрипты, и вспомогательный софт. Не мой уровень к сожалению.
3. pumbaE 607 14.11.14 18:31 Сейчас в теме
Только задачи или и wiki тоже забираете?
4. stoptime 282 15.11.14 10:15 Сейчас в теме
(3) pumbaE,
Wiki не забираю. У всех объектов единообразный интерфейс, добавить нужное не сложно.
5. PrinzOfMunchen 77 19.11.14 12:12 Сейчас в теме
(4) уже давно сделал интеграцию с 1С, только я делал через внешние источники данных. В связи с развитием ВИД, можно с их помощью уже не только получать данные из Redmine в 1С, но и из 1С писать напрямую в Redmine.
6. stoptime 282 19.11.14 15:56 Сейчас в теме
(5) PrinzOfMunchen, Был в начале такой план, но у меня база лежит на внешнем хостинге.
16. PrinzOfMunchen 77 24.11.14 11:04 Сейчас в теме
(6) ну так у нас тоже. Для ВИД это не проблема. Ты можешь через них к любой базе цепануться.
7. omut 19.11.14 21:44 Сейчас в теме
Нет в планах использовать redmine_contacts? Интересно было бы связать через пользователей 1С
8. stoptime 282 19.11.14 22:05 Сейчас в теме
(7) omut, Есть в планах добавить пользователей и роли. чтобы с ними можно было работать.
нужно немного разгрести дела, сесть и сделать. может на выходных сделаю
9. omut 20.11.14 00:36 Сейчас в теме
(8) я использовал этот плагин. Логика работы была такая: пользователи 1С не являются пользователями редмайн, а являются контактами. Данные по контакту через апи добавлялись в редмайн (если такого контакта там еще не было) и автоматически привязывались к задачам. К сожалению, руки так же не дошли добить до конца интерфейс добавления задачи в 1С (
14. stoptime 282 20.11.14 14:55 Сейчас в теме
(9) omut, Посмотрел плагин. у него есть API так что прикрутить можно. Единственное не понял в чем преимущество его пользования?
15. omut 21.11.14 10:48 Сейчас в теме
(14) обратная связь от пользователей 1С без необходимости заводить их в качестве пользователей. Например, можно создавать новые задачи от пользователей, привязывать контакты к задаче. В этом случае будет видно, кто отправил условную заявку или создал обращение в ТП. Как показывает практика, клиентам, заказчикам и прочим пользователям 1С пользоваться багтрекингом затруднительно. А так они просто пишут прямо в 1С текст (или прикрепляют что-то, это уже как надо) и формируется задача с нужными настройками и информацией, кто ее отправил. Еще один плюс: пользователей 1С может быть много и всех их мы просто не знаем. Полезно прикрутить в качестве организации, например, подразделение. Так автоматически формируется структура организации клиента, привязываются сотрудники клиента и все это видно в выставленных задачах (обращениях). Ну и электронная почта, как еще один бонус для обратной связи. Адрес так же можно привязывать автоматом. Примерно такая схема.
10. phsin 125 20.11.14 06:37 Сейчас в теме
Спасибо, интересная разработка!
Подскажите может вы делали интеграцию со spree https://github.com/spree/spree ?
11. stoptime 282 20.11.14 10:15 Сейчас в теме
(10) Нет интеграцию с этой системой не делал. Посмотрел, там идет взаимодействие через json , поэтому тот прием который я использовал, чтобы сократить код до минимума не подойдет.
12. phsin 125 20.11.14 10:49 Сейчас в теме
Нашел: Преобразование 1С->JSON->1С для обменов, Web-сервисов
http://infostart.ru/public/308198/

но если совсем обнаглеть, то хотелось бы для 7.7 ;)
13. stoptime 282 20.11.14 12:02 Сейчас в теме
(12) phsin, Про эту обработку знаю, хорошая вещь.
а вот с 7.7 точно не будет, там таких плюшек как XDTO нет, собственно за счет их использования все получилось просто.
да и я с 7.7 сейчас работаю преимущество только в проектах по переходу на 8. :) какой то разработки на 7.7 уже года 3 не веду.
17. Смешной 1С 45 03.02.15 13:19 Сейчас в теме
Подскажите, как получить все задачи? Сейчас, даже при простом запросе вида: redmine/issues.xml?project_id=7 я получаю только открытые задачи.
18. stoptime 282 04.02.15 18:09 Сейчас в теме
(17) Смешной 1С,
Можно уточнить запрос добавив отбор по всем статусам. Получится следующее redmine/issues.xml?project_id=7&status_id=*
user886140; +1 Ответить
19. SerMaxim 24.05.15 14:17 Сейчас в теме
Коллеги, а у всех работает обновление проектов ? У меня хоть убиться не получается программно создавать/обновлять подчиненные проекты, т.е. те где указан parent_id. Может кто подскажет как решить проблему ?
20. SerMaxim 24.05.15 14:37 Сейчас в теме
Пардон, нашел у себя ошибку - для сведений, в поле parent_id надо класть не идентификатор проекта, а номер родительского проекта. Собственно нашел еще ошибку одну - не всегда Redmine возвращает в ответ файл и необходимо исправить текст некоторых методов чтобы проверять - получен ли файл с сервера или нет. Если нет - то не надо считывать xml.
21. lustin 992 27.06.15 21:25 Сейчас в теме
(0) поразбирался с обработкой - обратил внимание что с custom fields до конца не разобрались ?

//Описание:Создает задачу по заданным параметрам и возвращает структуру с ее данными.
//Параметры: Параметры - Структура - содержит параметры создаваемой задачи
//Возвращаемое значение:
//  Структура - созданная новая задача
Функция НоваяЗадача(Параметры = Неопределено) Экспорт
	... 
	ЗаполнитьЗначенияСвойств(текОбъект,Параметры,,"custom_fields");

Показать
22. stoptime 282 29.06.15 21:33 Сейчас в теме
(21) lustin,
да они мне были не нужны. с загрузкой файлов тоже не все гладко вышло. в редмайн они грузятся а вот с задачей не связываются. не силен в руби поэтому не стал копать, что там к чему
23. Wanderer.nk 18 20.08.15 09:25 Сейчас в теме
(22)
по прикреплению файлов: у Вас ошибка в схеме в разделе группы файлов, не хватает аттрибута Type
Правильно будет
<objectType name="TypeUploads">
<property name="type" type="xs:string" lowerBound="0" form="Attribute"/>
<property xmlns:d4p1="rm@rm.rarus.ru" ref="d4p1:upload"/>
</objectType>

и
текОбъект.type = "array";
нужно заменить на
текОбъект.uploads.type = "array";

У меня все заработало :)

2. По custom-fields:
это свойство в процедуре УдалитьПустыеПоля(ОбрабатываемаяСтруктура) просто удаляется, если не заполнено.
Как решение заменить в 405 строке
ЗаполнитьЗначенияСвойств(текОбъект,Параметры,,"custom_fields");

на
ЗаполнитьЗначенияСвойств(текОбъект,Параметры,,?(Параметры.Свойство("custom_fields"),"custom_fields",""));

PS: спасибо за обработку. Сэкономило день моего времени!
stoptime; +1 Ответить
24. purgin 19.12.16 19:07 Сейчас в теме
25. stoptime 282 23.12.16 11:44 Сейчас в теме
26. zorin 01.02.17 20:36 Сейчас в теме
Скажите пожалуйста, почему может возникать ошибка (на следующем шаге от точки останова) :
{ВнешняяОбработка.RedmineAPI.МодульОбъекта(77)}: Ошибка при вызове метода контекста (ПрочитатьXML)
ОбъектXDTO = ФабрикаXDTO.ПрочитатьXML(ЧтениеХМЛ,ТипДанныхXDTO);
по причине:
Ошибка разбора XML: - [1,50]
Фатальная ошибка:
Space required after the Public Identifier
Прикрепленные файлы:
27. zorin 01.02.17 21:32 Сейчас в теме
Указанная ошибка возникает при нажатии " получить проект", "загрузить список проектов", "получить список задач", и т д
28. zorin 01.02.17 23:09 Сейчас в теме
Все, спасибо, разобрался, это антивирус мешал!
29. redscrest 31.07.17 15:48 Сейчас в теме
При количестве задач больше 999 в связи с тем что 1с вставляет в число 1000 разделитель в виде непрерывного пробела вы получите список задач который будет повторяться каждую тысячу элементов
30. redscrest 31.07.17 15:49 Сейчас в теме
Поэтому в параметр offset надо писать строку а не число
user886140; stoptime; +2 Ответить
31. stoptime 282 09.08.17 15:02 Сейчас в теме
37. user886140 23.07.18 16:25 Сейчас в теме
(30) в параметр offset пишу строку но все равно после 1000 загружаются не корректные записи. как быть?
32. ImHunter 21 09.08.17 15:11 Сейчас в теме
Внедряю у себя эту обработку в экспериментальном проекте.
Пока что сделал рефакторинг и добавил реквизиты для опционального создания SSL-соединения. Создал новые ф-ии:
// Функция - Получить соединение
// 
// Возвращаемое значение:
//  HTTPСоединение - Соединение с сервером RM
//
Функция СоздатьОбъектHTTPСоединение()
	
	ЗащСоед = ?(SSLИспользовать, Новый ЗащищенноеСоединениеOpenSSL(), Неопределено);
	Результат = Новый HTTPСоединение(
		РедмайнСервер, ?(РедмайнПорт<>0, РедмайнПорт, Неопределено), 
		?(Не ПустаяСтрока(SSLПользователь), SSLПользователь, Неопределено), 
		?(Не ПустаяСтрока(SSLПароль), SSLПароль, Неопределено), , 2, ЗащСоед, ИспользоватьАутентификациюОС
	);
		
	Возврат Результат;		
	
КонецФункции

Функция СоздатьОбъектHTTPЗапрос(Путь, Параметры = Неопределено, ИмяФайла=Неопределено, ДопЗаголовоки = Неопределено)
	
	СтрокаПараметров = "";

	Если Параметры<>Неопределено Тогда 
		Для каждого текПараметр из Параметры Цикл
			//не заполненные параметры игнорируются
			ТекЗнач = текПараметр.Значение;
			Если ПустаяСтрока(ТекЗнач) Тогда
				Продолжить;
			КонецЕсли;
			СтрокаПараметров = СтрокаПараметров + ?(ПустаяСтрока(СтрокаПараметров), "", "&") 
				+ текПараметр.Ключ + "=" + ?(ТипЗнч(ТекЗнач)=Тип("Число"), Формат(ТекЗнач, "ЧН=0; ЧГ="), ТекЗнач);
		КонецЦикла;
	КонецЕсли;
	СтрокаПараметров = ?(ПустаяСтрока(СтрокаПараметров), "", "?" + СтрокаПараметров);
	ТекстЗапроса = РедмайнПуть + "/" + Путь + ".xml" + СтрокаПараметров;
	//ЗАПРОС
	ЗапросКСайту = Новый HTTPЗапрос(ТекстЗапроса, ЗаголовокЗапроса(ДопЗаголовоки));
	
	Если Не ПустаяСтрока(ИмяФайла) Тогда
		ЗапросКСайту.УстановитьИмяФайлаТела(ИмяФайла);
	КонецЕсли;
	
	Возврат ЗапросКСайту;
	
КонецФункции
Показать

И использовал их:
Функция PostЗапрос(Путь, Параметры, ИмяФайла=Неопределено, ДопЗаголовоки = Неопределено)
	
	ЗапросКСайту = СоздатьОбъектHTTPЗапрос(Путь, Параметры, ИмяФайла, ДопЗаголовоки);
	РезультатИмяФайла = ПолучитьИмяВременногоФайла();//ПолучитьИмяТестовогоФайла();//
	Соединение = СоздатьОбъектHTTPСоединение();//Соединяем
	Соединение.ОтправитьДляОбработки(ЗапросКСайту, РезультатИмяФайла);
	Текст = Новый ЧтениеТекста(РезультатИмяФайла, КодировкаТекста.UTF8);
	Возврат Текст.Прочитать();	
	
КонецФункции
Показать
JohnyDeath; +1 Ответить
33. lastpioneer 95 20.04.18 13:47 Сейчас в теме
Подскажите, как вы задавали отбор, если нужно было выбрать задачи по двум Трекерам ? Если можно примерчик строки запроса
34. lastpioneer 95 23.04.18 12:30 Сейчас в теме
И ещё, как отобрать задачи у которых не заполнен трекер или другое поле перечисления?
35. stoptime 282 23.04.18 17:23 Сейчас в теме
Поидее передавать пустую строку, это если по API Redmıne оринтироватся, но нужно проверять. У мяня в сценарии использования такой вариант не используется.
36. user886140 16.07.18 15:08 Сейчас в теме
Добрый день! возможно ли получить все задачи из redmine разом, в один xml файл? Пока получается только по 100 задач вытащить за раз.
38. stoptime 282 26.07.18 14:33 Сейчас в теме
(36) насколько я помню это ограничения самого API. В той версии котороую я использую больше 100 нельзя
39. r2d255 10.09.18 19:31 Сейчас в теме
При нажатии на создать задачу :

{ВнешняяОбработка.RedmineAPI.МодульОбъекта(404)}: Ошибка при вызове метода контекста (ЗаполнитьЗначенияСвойств)
ЗаполнитьЗначенияСвойств(текОбъект,Параметры,,"custom_fields");
по причине:
Недопустимое значение параметра (параметр номер '4') (Поле 'custom_fields' объекта 'Структура' не обнаружено)
Оставьте свое сообщение
Новые вопросы с вознаграждением
Автор темы объявил вознаграждение за найденный ответ, его получит тот, кто первый поможет автору.

Вакансии

Консультант-аналитик 1С
Санкт-Петербург
Полный день

Консультант-аналитик 1С
Москва
зарплата от 120 000 руб. до 120 000 руб.
Полный день

Удаленный ИТ-журналист
Санкт-Петербург
По совместительству

Программист 1С
Санкт-Петербург
зарплата от 100 000 руб.
Полный день

Программист 1С
Санкт-Петербург
зарплата от 130 000 руб. до 150 000 руб.
Полный день