Интеграция между Atlassian Jira и 1С:Предприятие 8.3 используя Jira REST API (выборка, создание и изменение запросов, чтение, создание и удаление записей о работах, чтение комментариев и другие возможности)
Интеграция - Внешние источники данных
Файлы
ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.
Подписка PRO — скачивайте любые файлы со скидкой до 85% из Базы знаний
Оформите подписку на компанию для решения рабочих задач
Оформить подписку и скачать решение со скидкойВы можете заказать платную доработку или адаптацию этой разработки под вашу конфигурацию на «Бирже заказов».
- 0% комиссии — оплата напрямую исполнителю;
- Исполнители любого масштаба — от отдельных специалистов до команд под проект;
- Прямой обмен контактами между заказчиком и исполнителем;
- Безопасная сделка — при необходимости;
- Рейтинги, кейсы и прозрачная система откликов.
Функции
Ключевые функции
- Получение для проекта Jira всех типов запросов (issue type) и связанных с ними статусов (status) запросов.
- Выборка измененных запросов из Jira с отбором по проекту, периоду, с ограничением на кол-во отбираемых записей и используя шаблон JQL запроса.
- Получение списка пользователей Jira исходя из полей запроса (assignee, reporter, creator), полей worklog-а (autor, update autor) и полей комментариев (autor, update autor) и отображение имени пользователя и представления пользователя при выборе пользователя при редактировании полей запроса и полей записи о работе.
- Чтение и запись ключевых полей запроса (issue) Jira: Наименование (summary), Описание (description), Тип запроса (issue type), Родитель подзадачи (parent), Ссылка на epic (epic link), Приоритет (priority), Исполнитель (assignee), Автор (reporter), Создатель (creator), Срок исполнения (due date), Дата создания (created), Дата обновления (updated), Компоненты проекта Jira (components), Метки (labels), Первоначальная оценка (original estimate), Оставшееся время (remaining estimate), Всего затраты (time spent).
- Чтение и установка нового статуса запроса (status). Получение допустимых транзакции (transitions) Jira для перехода к новому статусу и осуществление перехода используя подходящую транзакцию.
- Чтение записей о работах (worklog) для запроса Jira. Добавление, Изменение и Удаление записей о работе.
- Чтение комментариев к запросу Jira. Формирование ссылки для перехода в Jira непосредственно к выбранному комментарию.
Дополнительные возможности
- В случае ошибки в момент выполнения http запроса к Jira, программа выдает диагностическое сообщение с кодом состояния и открывает для просмотра в виде текста файл с ответом от Jira.
- Программа отдельно контролирует список изменившихся полей запроса и при записи запроса передает в Jira только изменения.
- Основные значения сохраняются между сеансами работы с обработкой (параметры подключения к Jira, типы и статусы запросов, настройки отбора выборки запросов, список пользователей, последние выбранные значения полей запроса).
- Реквизиты и элементы формы для сохраняемых полей создаются программно.
Источники и ссылки
- Спецификация по работе с JIRA с использованием REST: http://docs.atlassian.com/jira/REST/latest/
- Спецификация REST API для JIRA SERVER: https://docs.atlassian.com/jira/REST/server/
- Примеры REST запросов к JIRA: https://developer.atlassian.com/server/jira/platform/jira-rest-api-examples/
- Продвинутый поиск в Jira используя Jira Query Language (JQL): https://confluence.atlassian.com/jirasoftwareserver073/advanced-searching-861256227.html
- Онлайн просмотр .json: jsonviewer.stack.hu
Особенности и ограничения
- Данная обработка предназначена для работы с серверной версией Jira.
- Для подключения к Jira используется обычная проверка подлинности (Basic authentication).
- При изменении статуса запроса (status) выполняется дополнительный запрос для определения подходящей транзакций перехода от текущего к выбранному статусу. В определенных случаях (например для "подзадачи") переход к выбранному статусу может оказаться невозможным. В таком случае программа выдаст диагностическое сообщение "Не удалось определить ""ID транзакции"" для статуса ...".
- При создании в Jira записи о работах (work log) в качестве автора запись всегда устанавливается пользователи под которым выполнено подключение к Jira (указать другого автора нельзя).
- При определенных настройках Jira, в момент перехода к новому статусу, также может изменится исполнитель (assignee) на пользователя от имени которого выполнено подключение к Jira.
- Используя REST невозможно изменить тип запроса "подзадача" на другой тип запроса. При попытке выполнить такое изменение Jira вернет код ошибки и описание ошибки в файле с ответом.
- Для комментариев к запросу реализовано только чтения списка комментариев и непосредственный переход к комментарию в браузере. Создание, изменение и удаление комментариев не поддерживается (при необходимости может быть легко реализовано по аналогии как это сделано для записей о работах (worklog).
Варианты использования
Короткий ролик с демонстрацией основных возможностей обработки (~ 7 мин, только текстовые комментарии, без голосового сопровождения)
Подключение к серверу Jira
На закладке "Параметры" указываются параметры для подключения к Jira:
- Адрес сервера для подключения.
- Ссылка по которой доступен REST API.
- Ключ проекта Jira который будет использоваться.
- Пользователь и пароль для подключения к Jira. Подключение к Jira выполняется используя простой (незащищённый) способ аутентификации (подробнее по ссылке: Basic authentication).


Получение Типов и статусов запросов для проекта Jira
- На закладке "Параметры" по кнопке "Заполнить типы и статусы из Jira" выполняется запрос к Jira, который возвращает .json файл с информацией о типах и статусах запросов используемых для указанного проекта. (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/project-getAllStatuses)
- Данные из таблицы используются в дальнейшем для заполнения списков выбора полей "Типа запроса" и "Статус запроса" в карточке запроса на закладке "Запрос".
- Информация из таблицы используется для определения "подзадач" и "id" типа запроса. Эти данные требуется для обращения к Jira при редактирования и создания запросов.
- Список типов и статусов автоматически сохраняется между сеансами работы в данных формы.

Выборка запросов используя JQL запрос к Jira
- На закладке "Выборка запросов" по команде "Прочитать из Jira" выполняется запрос к Jira по результатам которого заполняется список запросов (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/search-searchUsingSearchRequest)
- Запросы из Jira отбираются согласно JQL запроса.
- Итоговый JQL запрос формируется путем подстановки параметров в строку "Шаблон запрос JQL для выборки данных".
- Данные выбираются в количестве не более "Всего выбрать" заданными порциями.
- Из списка запросов по ссылке "Browse link" можно перейти к запросу в браузере.
- Из списка запросов по кнопкам "Добавить", "Изменить" можно перейти к созданию или редактированию запроса. При этом будет активирована закладка "Запрос" (в случае операции "Изменить" будет выполнено обращение к Jira и заполнены все предусмотренные для редактирования поля, а также получены все комментарии и записи о работах для выбранного запроса).

Список пользователей Jira для выбора
- Список на закладке "Пользователи" является основой для содержимого списков выбора при выборе участников запроса.
- Пользователи в список добавляются автоматически при "Выборке запросов" или при чтения данных конкретного запроса (с учетом записей о работах и комментариев).
- При необходимости пользователей в список можно добавить "вручную".
- Список пользователей автоматически сохраняется между сеансами работы в данных формы.

Чтение запроса из Jira
- На закладке "Запрос" выполняются основные операции по просмотру и редактированию полей запроса.
- Если выбрана операция "Изменить запрос" и заполнен "Ключ запроса" (Key) доступна команда "Прочитать из Jira".
- При нажатии "Прочитать из Jira" выполняется запрос к Jira и заполняются поля запроса, записи о работах и комментарии.
- Если заполнен "Ключ запроса" тогда отображается "ссылка для перехода к запросу в браузере".
- По ссылке "JSON" выполняется переход в браузере к файлу .json с данными запроса.
- Для чтения значений полей выполняется запрос к Jira (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-getIssue).
- В случае успешной операции чтения из Jira, все поля запроса отмечаются как "не изменявшиеся".
- Значения полей, количество записей о работах и количество комментариев (кроме самих записей о работах и комментариев) сохраняются между сеансами работы в данных формы.

Изменение полей запроса и запись в Jira
- Программа отдельно хранит все предыдущие значения полей запроса.
- Каждый раз при чтении запроса из Jira текущие и предыдущие значения полей синхронизируются.
- При изменение какого-либо из полей запроса, сравнивается новое значение и предыдущее.
- Если новое значение отличается от предыдущего, поле отмечается как "измененное" и выделяется на форме с помощью фона и цвета текста заголовка.
- При записи в Jira передаются только измененные поля (для которых новое значение отличается от предыдущего).
- Для записи выполняется запрос к Jira (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-editIssue)
- Предыдущие значения реквизитов сохраняются между сеансами работы в данных формы.
- Для "обнуления" измененных реквизитов можно либо "Прочитать из Jira" или "Записать в Jira" (после успешной записи автоматически выполняется "Прочитать из Jira".

Создание нового запроса в Jira
- Для создания нового запроса на закладке "Запрос" необходимо выбрать операцию "Создать запрос".
- Пока запрос не создан, недоступны ссылки для перехода к запросу, комментариям и списку записей о работах.
- Для создания запроса выполняется запрос к Jira (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-createIssue)
- После создания запроса в Jira, автоматически выполняется чтение запроса и активация операции "Изменить запрос".


Изменение статуса запроса в Jira
- Если изменяется статус запроса, программа показывает информационную надпись вида "При записи статус изменится с "В работе" -> "Выполнен".
- Изменение статуса происходит при нажатии "Записать в Jira".
- Сначала выполняется запрос по записи измененных полей запроса, а затем изменяется статус запроса.
- Изменение статуса запроса происходит в несколько этапов:
- Сначала выполняется дополнительный запрос для получения списка всех допустимых транзакция для текущего запроса (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-getTransitions)
- Из списка допустимых транзакция определяется подходящая транзакция, для которой конечный статус равен выбранному в запросе.
- Выполняется отдельный запрос для выполнения транзакции перехода (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-doTransition)
- После изменения статуса запроса, автоматически выполняется чтение запроса из Jira.

Чтение, Добавление и Удаление записей о работах в Jira
- В карточке запроса на закладке "Записи о работах" отображается список записей о работах запроса.
- По кнопке "Прочитать work log" выполняется запрос к Jira и заполняется список записей о работах для запроса (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-getIssueWorklog).
- По кнопке "Добавить" появляется форма для создания новой записи о работе. По кнопке "Сохранить запись" выполняется запрос к Jira для добавления новой записи о работе (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-addWorklog).
- По кнопке "Изменить" появляется форма для редактирования выбранной записи о работе. По кнопке "Записать изменения" выполняется запрос к Jira для обновления данных существующей записи о работе (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-updateWorklog).
- По кнопке "Удалить запись" выполняется запрос к Jira для удаления записи о работах (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-deleteWorklog)




Чтение комментариев и переход по ссылке к конкретному комментарию в Jira
- В карточке запроса на закладке "Комментарии" отображается список всех комментариев для запроса.
- По кнопке "Прочитать комментарии" выполняется запрос к Jira и заполняется список комментариев для запроса (см. https://docs.atlassian.com/software/jira/docs/api/REST/7.6.1/#api/2/issue-getComments).
- По ссылке "Ссылка на комментарий" можно непосредственно перейти к комментарию в Jira.

Вступайте в нашу телеграмм-группу Инфостарт
Обработка Atlassian Jira Управляемые формы Обмен Интеграция REST JSON
См. также
Внешние источники данных Разработчик Аналитик Пользователь 1С:Предприятие 8 1C:Бухгалтерия Узбекистан Беларусь Кыргызстан Молдова Россия Казахстан Платные (руб)
Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.
35000 руб.
15.11.2022 33789 53 49
WEB-интеграция Рабочее место Оптовая торговля Розничная торговля Логистика, склад и ТМЦ Пользователь 1С:Предприятие 8 1С:Бухгалтерия 2.0 1С:Бухгалтерия 3.0 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 1.6 1С:Управление нашей фирмой 3.0 1С:Управление торговлей 10 1С:Управление торговлей 11 1С:Розница 2 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика Россия Управленческий учет Платные (руб)
Программный продукт "Управление доставками в 1С" позволяет обмениваться с личным кабинетом Boxberry, СДЭК, Энергия, Почта России, DPD, ПЭК, Grastin, Деловые Линии, КСЕ, Dalli, ЯндексДоставка. Упрощает создание заявок и резервирование заказов прямо в интерфейсе 1С
24400 руб.
10.03.2016 76067 321 100
Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Перенос данных 1C Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 10 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
85400 руб.
05.10.2022 14553 17 8
WEB-интеграция Разработчик Аналитик 1С:Предприятие 8 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Оптовая торговля, дистрибуция, логистика ИТ-компания Платные (руб)
Модуль "Экспортер" — это расширение для 1С, предназначенное для автоматизации процессов выгрузки данных. Оно позволяет эффективно извлекать, преобразовывать и передавать данные из систем 1С в интеграционную платформу Spot2D. Подсистема упрощает настройку, снижает количество ручных операций и обеспечивает удобный контроль данных.
17568 руб.
20.12.2024 7741 35 4
Сайты и интернет-магазины WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)
Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM / LOGICSTARS. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM / LOGICSTAR разных брендов в одной информационной базе в ручном и автоматическом режиме.
42700 руб.
03.08.2020 25811 42 26
WEB-интеграция Системный администратор Разработчик Пользователь 1С:Предприятие 8 1C:Бухгалтерия 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)
Интеграционный модуль обмена по API между конфигурацией 1С:Альфа-Авто 6 и порталом LogicStar. Позволяет работать с несколькими обменами LogicStars разных брендов (CHERY, OMODA, JAECOO, EXEED, TENET) в одной информационной базе в ручном и автоматическом режиме. Поддерживается выгрузка заказ-нарядов, реализаций товаров и товарных остатков.
20740 руб.
13.05.2025 3065 6 0
Розничная торговля Внешние источники данных Разработчик Бухгалтер 1С:Предприятие 8 1С:Розница 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х 1С:Управление нашей фирмой 3.0 1С:Розница 3.0 Розничная и сетевая торговля (FMCG) Бухгалтерский учет Управленческий учет Платные (руб)
Загрузка данных продаж и инкассаций из сервисов Kit Vending/Kit Shop в 1С. Реализовано в виде Расширения. Мониторинг состояний торговых автоматов.
12200 руб.
10.06.2019 34634 49 25
Зарплата Внешние источники данных Бюджетный учет Перенос данных 1C Системный администратор Разработчик 1С:Предприятие 8 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)
Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактическим удержаниям, НДФЛ, вычетам, страховым взносам из базы Парус 8 учреждений (далее Парус) в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (далее 1С) и начать с ней работать с любого месяца года.
122000 руб.
19.08.2020 30607 28 3
При попытке изменить задачу выходит следующая ошибка:
В чем может быть проблема?
Если не полениться то можно подстроить под любую систему. Жаль нельзя добавить +10
Из обработки не могу подключиться, выдает ошибку аутентификации 401.
Подскажите, пожалуйста, в чем может быть дело.
Спасибо.
Попробую предположить исходя из того что в этот момент происходит.
В момент получения статусов выполняется REST запрос:
GET /rest/api/2/project/{projectIdOrKey}/statuses подробнее по ссылке (ссылка есть в описании к обработке): )
Вы можете просто в браузере выполнить запрос как показано на картинке:
Если запрос написан правильно, в ответ вы получите информацию в формате json.
В вашем случае скорее всего ошибка может быть в написании ключа проекта.
<status>
<status-code>404</status-code>
<message>
null for uri:
</message>
</status>
Пробовал с разными ключами. Всегда одно и тоже.
Я посмотрел какой должен быть запрос для облачной версии Jira (см. ссылку)
GET /rest/api/2/project/{projectIdOrKey}/statuses
- запрос такой же как и для серверной версии.
Возможно проблема в настройках прав пользователя под которым вы выполняете этот запрос:
Просто если у вас не работает запрос через браузер, сл-но он не работает и через обработку.
По Вопросу-1. "Не могу создать новую задачу... "reporter":"Field 'reporter' cannot be set"
Судя по ошибке при ваших настройках Jira, и с правами пользователя, под которым вы подключаетесь к Jira, нет возможности изменить поле "reporter".
Я проверил на "своей" Jira - у меня всё работает.
Ниже на картинке то как информация о "reporter" (автор) запроса отображается в моей Jira.
Попробуйте посмотреть как у вас:
1. Работает ли у вас выборка запросов (Закладка в обработке "Выборка запросов" - "Прочитать из Jira"/
2. Выводиться ли информация в поле "Reporter.name" (В списке выбранных запросов)
3. Откройте ссылку из колонки "Rest link" в браузере, и поищете поиском "reporter"
Если информация читается, но не записывается, причина с большой вероятность в ограниченных правах пользователя под которыми вы работаете c Jira через Rest.Проверьте что вы можете непосредственно в Jira под этим пользователем создать Запрос.
А затем попробуете при создании через обработку, указывать в качестве Автора (reporter), того же пользователя.
По Вопросу-2 приведите пжл. полное сообщение об ошибке, чтобы увидеть номер строки обработки в которой возникает ошибка
В Jira под пользователем могу создавать и изменять запросы. При создании через обработку с тем же автором приходит сообщение с ошибкой 400.
По второму вопросу: полное сообщение {ВнешняяОбработка.Jira_1C_Rest_Обмен_1С8_3.Форма.Форма.Форма(1897)}: Значение не является значением объектного типа (Количество)
Если fields_components.Количество() > 0 Тогда
В Jira под пользователем могу создавать и изменять запросы. При создании через обработку с тем же автором приходит сообщение с ошибкой 400.
Просмотр через блокнот или сразу в окне браузере не принципиально. Если это поле читается при выборке запросов, значит вопрос с его установкой из обработки.
Проблема может быть из-за имени пользователя в Jira введенного кириллицей. Такой вопрос уже подымался (смотрите комментарий №17). А как у в вашем случае?
Если fields_components.Количество() > 0 Тогда
Судя по ошибке, скорее всего в вашем случае в проекте Jira не используются "Компоненты". Проверить это вы можете скачав файл json и проанализировав поля запроса.
В публикации в разделе "Источники и ссылки" в п.5 есть ссылка на онлайн просмотр Json файлов.
Вы можете закомментировать код обработки по чтению данных о компонентах в таком случае, чтобы избежать ошибки при работе обработки.
На всякий случай, чтобы наверняка, привожу картинку что я имею ввиду под именем пользователя.
И это имя должно быть без пробелов и латиницей:
Если все-таки не работает, тогда опять же попробуйте закомментировать код в котором устанавливается поле "reporter" в строке: 2066
&НаКлиенте
Процедура СоздатьОбновитьЗапросОбработка(ДопПарам=Неопределено, Отказ=Ложь)
....
//ДобавитьПолеЗапросаДляИзмененияВJira(fields,"reporter","name","ПарамЗапросJira","Reporter_Name");
...
КонецПроцедуры
| ""fields"": {
| ""project"": {
| ""key"": ""PRODDEP""
| },
| ""issuetype"": {
| ""id"": ""10204""
| },
| ""components"":{
| ""id"":""11102""
| },
долго мочилась, но посмотрела через вашу обработку код аналогичной задачи и увидела квадратные скобки
вот так получилось в итоге:
| ""fields"": {
| ""project"": {
| ""key"": ""PRODDEP""
| },
| ""issuetype"": {
| ""id"": ""10204""
| },
| ""components"": [ {
| ""id"":""11102""
| } ] ,
Подозреваю что могут быть нюансы на разных версиях Jira.
Мне часто помогал простой способ, когда я интерактивно формировал запрос в Jira, а потом просто скачивал rest представлением этого запроса и анализировал его структуру.
В обработке в списке "Выборка запросов из Jira" есть колонка "Rest link" - ссылка по которой можно скачать такое представление.
Один только вопрос. Я кажется знаю ответ, но все-же уточню. Программный интерфейс не выносился на сервер, ради локальных запросов с клиента?
Да, так и есть. Данная обработка по своей сути - демонстрации возможностей интеграции. В реальности у меня большинство функций работает на сервере в рамках фоновых заданий.
Отличная обработка!!! мне очень помогает, благодарю Вас за сей продукт
вопросы такие
каким образом получить:
* список вложений к задаче (в том числе картинки прикладываемые)
* метки к задаче
* компоненты
* связи с другими задачами
где бы почитать про это?!
/rest/api/latest/issue/<номерЗадачи>?&expand=renderedFields
она даёт кучу дополнительный полей (в обработке это при изменении запроса)
и компоненты и метки можно и связи с другими задачами и вложения тоже получаются...
так вопрос закрыт)
Добрый день, спасибо за оценку )
* метки к задаче
* компоненты
- такой функционал реализован в обработке:
Метки получается из Jira и передаются в Jira через реквизит на форме обработки "Labels",
С компонентами - аналогично, на форме есть реквизит "Components".
На первый взгляд, мне кажется что это не тривиальная задача, поэтому я её я не делал, но если вы реализуете этот момент, и поделитесь с удовольствием скачаю себе :)
В реальной базе у меня используется этот функционал, но в рамках данной обработке его "не прикручивал" (итак потратил на "некоммерческую" обработку больше трудозатрат чем планировал)
Почитать об этом можно по ссылкам которые приведены в описании к публикации :)
В частности про вложения:
Для установки связи с другой задачей.
Добрый день. Специально только что зарегился в Jira Cloud:
1. Подключение к Jira работает.
2. Типы и статусы запросов читаются.
3. Выборка запросов из Jira - работает.
4. Создание запроса в Jira выдает ошибку "{"errorMessages":[],"errors":{"reporter":"Field 'reporter' cannot be set. It is not on the appropriate screen, or unknown."}}" - на первом этапе можно просто закомментить обновление этого поля.
5. Записи о работах читаются.
6. Записи о работах создаются.
7. Комментарии читаются.
8. Переходы по ссылкам работают.
ИТОГО:
Да, можно.
Но есть отдельные вопросы с созданием запроса, которые легко решаются.
Здесь обсуждается одна и та же обработка "Jira и 1C обмен через REST 1C 8.3.epf"
Скачать её можно по ссылке к публикации.
Чтобы её скачать нужно иметь всего лишь 1 стартмани.
На вход нужно передать соответствие "СоответствиеВложений" где ключ - имя файла вложения, а значение - base64 строка с данными файла. В переменную НомерIssue нужно передать ключ запроса.
ИмяФайлаОтправки = ПолучитьИмяВременногоФайла();
Поток = Новый ПотокВПамяти;
ФайлОтправки = Новый ЗаписьДанных(Поток, КодировкаТекста.UTF8);
Boundary = "jiraattach";
Для Каждого Вложение Из СоответствиеВложений Цикл
//Определяем раздел двоичных данных
ФайлОтправки.ЗаписатьСтроку("--" + Boundary);
ФайлОтправки.ЗаписатьСтроку("Content-Disposition: form-data; name=""file""; filename=""" + Вложение.Ключ + """");
ФайлОтправки.ЗаписатьСтроку("Content-Type: application/octet-stream" + Символы.ПС);
//Записываем кодированные двоичные данные
ФайлОтправки.Записать(Base64Значение(Вложение.Значение));
ФайлОтправки.ЗаписатьСтроку("");
//Завершение сообщения для сервера
КонецЦикла;
ФайлОтправки.ЗаписатьСтроку("--" + Boundary + "--");
ФайлОтправки.Закрыть();
РазмерФайлаОтправки = XMLСтрока(СтрДлина(Вложение.Значение));
ЗапросHTTP = Новый HTTPЗапрос;
ЗапросHTTP.Заголовки.Вставить("Content-Type", "multipart/form-data; boundary=" + Boundary);
ЗапросHTTP.Заголовки.Вставить("X-Atlassian-Token", "no-check");
ЗапросHTTP.АдресРесурса = "/rest/api/2/issue/"+НомерIssue+"/attachments";
ЗапросHTTP.УстановитьТелоИзДвоичныхДанных(Поток.ЗакрытьИПолучитьДвоичныеДанные());
Ответ = СоединениеJira.ОтправитьДляОбработки(ЗапросHTTP);
Показать{Сервер JIRA}/rest/api/2/issue/{Номер issue}?fields=attachmentВ ответ получаешь json вида
{
"id": "10002",
"self": "http://www.example.com/jira/rest/api/2/issue/10002",
"key": "EX-1",
"fields": {
"attachment": [
{
"self": "http://www.example.com/jira/rest/api/2.0/attachments/10000",
"filename": "picture.jpg",
"author": {
"self": "http://www.example.com/jira/rest/api/2/user?username=fred",
"name": "fred",
"avatarUrls": {
"48x48": "http://www.example.com/jira/secure/useravatar?size=large&ownerId=fred",
"24x24": "http://www.example.com/jira/secure/useravatar?size=small&ownerId=fred",
"16x16": "http://www.example.com/jira/secure/useravatar?size=xsmall&ownerId=fred",
"32x32": "http://www.example.com/jira/secure/useravatar?size=medium&ownerId=fred"
},
"displayName": "Fred F. User",
"active": false
},
"created": "2019-03-06T08:35:37.143+0000",
"size": 23123,
"mimeType": "image/jpeg",
"content": "http://www.example.com/jira/attachments/10000",
"thumbnail": "http://www.example.com/jira/secure/thumbnail/10000"
}
]
} Показать"10000" тут - id, который ты можешь передать в указанную тобой конструкцию и получить json аналогичный тому, что тебе тут уже в attachment пришло.
А можешь просто в цикле обежать, найти нужный файл по filename и вызвать строчку из content. Должна начаться закачка файла.
то что ниже по комментарию взлетела
там засада в том, что при первичном httpЗапросе возвращается 302 редирект на API atlassian где по токену надо выдёргивать файл
+ как мне подсказали в телеграм канале по 1с - там ещё Cookies задействованы... так что пока через КоннекторHTTP работает и славно!!!
Решил задачу с получением файлов из Attachment
взял библиотеку от Автора в виде Общего.Модуля: КоннекторHTTP из публикации
и такой код
ДополнительныеПараметры=Новый Структура;
ДополнительныеПараметры.Вставить("Заголовки", ПарамСерверJira.ЗаголовкиHTTP);
ДополнительныеПараметры.Вставить("РазрешитьПеренаправление", Истина);
рез= КоннекторHTTP.Get(JiraВложение["content"],, ДополнительныеПараметры );
в переменной Рез.Тело - двоичныеДанные файла
отлично работает эта спарка - рекомендую!!!
Для получения всех полей используемых в Задаче (включая Пользовательские поля)
С ТИПАМИ значений, а также с возможными подстановками в поле
существует такой запрос
ПарамСерверJira.JiraАдресRestAPI+"/issue/"+issue["key"] + "/editmeta"
при таком GetЗапросе получается вся структура созданных полей для данного issue
В нем библиотека всех запросов REST и возможность прямо из интерфейса выполнять запросы. Помогает сразу увидеть результат и с помощью фильтров получить итоговый текст get или post запроса.
В части получения данных все работает корректно и без ошибок.
В части отправки данных в Jira - ошибки.
При попытке записи worklog
{"errorMessages":["Internal server error"],"errors":{}}.
При попытке создать задачу
{"errorMessages":[],"errors":{"reporter":"Field 'reporter' cannot be set. It is not on the appropriate screen, or unknown."}}.
Не подскажете, в чем может быть проблема?
Возможно, на стороне сервера Jira необходимо установить определенные настройки?
Судя по ошибке у вас в Jira не используется поле "reporter" (автор), или есть какие-то ограничения с доступом к установке значения в этом поле. Попробуйте закомментировать в коде Обработки передачу поля "reporter".
p.s.
Я только что проверил у себя - у меня все работает без проблем.
Basic authentication with passwords is deprecated. For more information, see:
и больше ничего не происходит. Как обойти?
Я в свое время тоже с ходу не смог быстро решить вопрос как-то по другому, и остановился на basic authentication. Поэтому, да, к сожалению похоже с облачной версией теперь есть проблема, с которой я пока лично не смогу помочь.
1. Нужно сгенирировать токен и использовать его вместо пароля.
2. в обработке нужно подправить код функции
&НаСервереБезКонтекста
Функция ЗашифроватьBase64Сервер(Строка, КодировкаТекста = "UTF-8") Экспорт
ДД = ПолучитьДвоичныеДанныеИзСтроки(Строка,КодировкаТекста);
Стр64 = ПолучитьBase64СтрокуИзДвоичныхДанных(ДД);
Стр64 = StrReplace(Стр64,Chars.CR,"");
Стр64 = StrReplace(Стр64,Chars.LF,"");
Возврат Стр64;
КонецФункции
Суть проблемы - ПолучитьBase64СтрокуИзДвоичныхДанных разбививает строку на блоки в 64 символа т.е. добавляет два символа (CR и LF). В итоге получается, если в результате работы функции строка меньше или равна 64 символам, то все работает как надо. Если больше 64, то из-за добавления доп. символов авторизация не проходит.
{"errorMessages":[],"errors":
{"summary":"Field summary cannot be set. It is not on the appropriate screen, or known...
С чем это может быть связано?
Спасибо огромное. Заработало. Действительно, дело было в авторизации. Не подскажете, может быть как-то можно выполнить запрос с авторизацией по умолчанию? Т.е чтобы авторизация происходила под пользователем агента сервера 1С? (чтобы не нужно было хранить пароль и логин в базе).
Подскажите, можно ли подключить к данному функционалу ещё одну базу 1С и опираясь от добавления новых значений в добавленную базу,
возможно ли настроить автоматическое создание запроса, опираясь на данные из подключенной базы
к примеру :
Был создан новый сотрудник в одной базе
после чего был создан запрос (через Jira и 1C обмен через REST 1C 8.3)
Спасибо.
Подскажите, пожалуйста, свой email для связи
Подскажите, пожалуйста, есть ли возможность заводить записи о работах от имени другого пользователя, ни от которого происходит подключение? Или записи будут создаваться только под пользователем, под которым выполняется подключение?
{"errorMessages":[],"errors":{"duedate":"Field 'duedate' cannot be set. It is not on the appropriate screen, or unknown.","timetracking":"Field 'timetracking' cannot be set. It is not on the appropriate screen, or unknown."}}
Не подскажите в чем может быть проблема? Изменение запросов работает.
Попытался воспользоваться этой интеграцией с реальной доской заказчика. В итоге ввожу данные: Сервер, Ключ проекта, логин и токен. Однако при попытке получить ответ на запрос (нажатии на "Заполнить типы и статусы из Jira"), получаю "Неудача! Код состояния: 400. Bad Request"
С чем это может быть связано?
Во первых. Доска jira (Канбан или Аджайл) тут точно не причем. Доска это просто интерфейс для отображения Запросов Jira.
Во вторых. Исходя из информации вами предоставленной - сложно что-то подсказать.
В третьих. Только что проверил у себя: У меня все работает! (см. прилагаемую картинку)
Решил взять вашу обработку для своей разработки, но у меня есть несколько проблем с ней.
При попытке её открыть - нечего не происходит.
Открыл в конфигураторе, дабы посмотреть как вы передаете параметры для авторизации, увидел это (скриншот).
Хотел бы по поводу этого замечательного изобретения пообщаться лично, в телеграм)
Возможно вас смутило то, что параметры на форму добавляются программно с помощью процедуры "СоздатьЭлементыФормыДляПараметров()".
И если открыть форму в режиме предприятия, то я вижу следующую картинку (см. прикрепл. файл)
придется допиливать обработку для api токенов...
Не пойму зачем такие сложности с программным выводом на форму реквизитов, это же не типовой функционал..
Похоже так есть... Я, откровенно говоря, сейчас не использую интеграцию с 1С, а решаю вопросы автоматизации непосредственно на стороне Jira используя . Плюс пока сидели на "старой" Jira... Возможно после перехода на новую придется делать интеграцию - тогда займусь сам этим вопросом.
Просто так захотелось :)
Лично я быстрых ответов вам дать не смогу.
Полагаю, что вы можете на них ответить самостоятельно "покопавшись" в документации к Jira и при необходимости доработав код моей обработки.
Вы можете заказать платную консультацию или разработку у автора. Будет создан приватный заказ на «Бирже заказов» для автора.
№ 821900
Создание 24.04.18 08:56
Обновление 24.04.18 08:56
Просмотры 74371
Загрузки 487
Рейтинг
142
Комментарии 105
Код открыт Да
Рубрики Внешние источники данных WEB-интеграция
Кому Разработчик
Тип файла Внешняя обработка (ert,epf)
Платформа 1С:Предприятие 8
Конфигурация 1C:Бухгалтерия
Операционная система Не имеет значения
Страна Не имеет значения
Отрасль Не имеет значения
Налоги Не имеет значения
Вид учета Не имеет значения
Доступ к файлу Абонемент ($m)