Гибрид 1С и Atlassian: как, а главное – зачем?

10.01.25

Управление проектом - Инструменты управления проектом

Постоянное разграничивание документации для разработчиков и пользовательских инструкций зачастую приводит к полной неразберихе. К тому же ведение документации и учета задач обычно ведется в разных системах. Расскажем о том, как восстановить правдивую картину проделанных работ и создать структурированную систему управления документацией с использованием JIRA и Confluence на базе конфигурации Управление задачами.

Хочу затронуть проблему документации – в частности, отсутствие единого источника, в котором бы хранилась документация, информация по задачам и история изменения объектов метаданных.

Так как я в своей практике часто сталкиваюсь с хаосом и неразберихой в имеющейся документации в компаниях, как мне кажется, эта проблема связана именно с отсутствием этого единого источника.

Мы рассмотрим, как можно управлять задачами и документацией различного уровня в конфигурации 1С.

  • Познакомимся с конфигурацией Управление задачами: Канбан доска.

  • Посмотрим, как в управлении документацией нам поможет использование продуктов Atlassian Jira и Confluence, в частности, их REST API.

  • Посмотрим, как можно организовать хранение документации в разрезе объектов метаданных.

  • Бонусом я расскажу, как можно реализовать конструктор создания статей в Confluence.

 

Как обычно ведется документация

 

 

При ведении документации у нас обычно есть два не связанных между собой блока:

  • Есть какая-то система для учета задач, например, Jira. И какие-то сторонние ресурсы, где хранится функциональное описание, техзадания и прочая документация к нашей системе – в данном случае, это Confluence. Эти ресурсы могут быть связаны с системой задач, либо не связаны, но мы выделим их в один блок.

  • И есть второй блок, где хранятся сами конфигурации, которые мы дорабатываем

Зачастую единственная связь между этими двумя блоками – это комментарии, которые оставляет разработчик в коде со ссылкой на задачу. Но пользоваться такой связью неудобно, потому что:

  • Увеличивается время поиска нужной информации. Нам нужно зайти в конфигуратор, найти конкретный объект, посмотреть, есть ли в коде комментария ссылка на задачу, потом пойти в Jira, из нее перейти в Confluence. Затрачивается очень много времени.

  • Страдает контроль документации – мы не знаем, насколько на данный момент наша документация актуальна, в каком она в состоянии, ведется ли она своевременно, есть ли она вообще.

  • Несвязность – прямая связь объектов метаданных с нашей документацией отсутствует.

  • И затрачивается время на оформление новой документации, так как у нас, по сути, три разных источника и нам между ними нужно постоянно переключаться.

 

Возможное решение

 

 

Я хочу предложить вариант решения для этой проблемы.

Возьмем три блока, которыми мы будем манипулировать.

  • За основу возьмем конфигурацию Управление задачами: Канбан доска.

  • В нее мы будем загружать из хранилища конфигурации наши объекты метаданных.

  • И настроим двухстороннюю синхронизацию с продуктами Atlassian – Jira и Confluence.

Такое решение позволит нам буквально парой щелчков мыши выбрать какой-то объект метаданных, который мы хотим, и узнать всю полезную информацию: какие были сделаны доработки, когда, кем, в рамках каких задач.

Почему была выбрана именно конфигурация Управление задачами: Канбан доска?

  1. Она в открытом доступе, ее можно скачать на GitHub, она поддерживается.

  2. Она разработана с использованием БСП, что упрощает нам доработку.

  3. В нее уже встроен удобный механизм управления задачами – не нужно ничего с нуля создавать.

  4. И, что нам важнее всего, в ней уже реализована загрузка метаданных из хранилища конфигурации.

 

Схема взаимодействия

 

 

Объясню схему взаимодействия.

За основу взята конфигурация Управление задачами. В нее встроена обработка, которая позволяет загрузить объекты метаданных из хранилища конфигурации в специальный справочник «Конфигурации».

Мы немного доработаем конфигурацию «Управление задачами» – введем два новых периодических регистра сведений, которые будут у нас хранить ссылки на документацию. Регистра два, потому что, мне кажется, лучше разделять:

  • Технические спецификации – документацию, которую пишет разработчик.

  • И функциональные спецификации – документацию, которую будут писать аналитики. Туда будут входить пользовательские инструкции и ТЗ для программистов.

Кроме этого, мы настроим двустороннюю синхронизацию с Jira и будем получать в справочник «Задачи» поля, которые нам необходимы, например:

  • Статус;

  • Исполнитель;

  • Автор;

  • Заказчик;

  • Ответственный;

  • Описание;

  • Комментарии;

  • и так далее – можем получить любые поля.

Причем поскольку синхронизация двусторонняя, мы можем внести изменения на стороне 1С, а потом из 1С их обратно загрузить в Jira.

И добавим справочник «Шаблоны статей» – он будет выступать как конструктор документации, в котором можно для определенных объектов метаданных задать шаблоны, чтобы их основе потом создавать статьи Confluence.

Работать это будет так:

  • Когда разработчик либо аналитик хочет создать документацию, он выбирает объект метаданных и нажимает кнопку «Создать».

  • Если для этого объекта метаданных в справочнике «Шаблоны статей» заполнен шаблон, он автоматически через API будет передан в Confluence.

  • В результате в Confluence будет создана предзаполненная страница с готовой структурой: шапкой, наименованием, макросами, таблицами и другими элементами. Останется только ее заполнить.

Это довольно удобно – особенно если нужно унифицировать документацию, чтобы все писали ее плюс-минус одинаково, не вразнобой.

 

Технические спецификации

 

 

Покажу, как выглядят технические спецификации, и что это такое.

На слайде показана карточка задачи, у нее есть табличная часть «Технические спецификации». Здесь видно:

  • период, когда была сделана запись;

  • по какому объекту метаданных создавалась документация;

  • кто эту документацию написал – кто ответственный;

  • и ссылка на Confluence на эту документацию.

 

 

Такая же история здесь с функциональными спецификациями: практически такая же табличная часть, только ею в основном будут пользоваться аналитики, они будут писать ТЗ и пользовательские инструкции.

 

Схема реализации

 

 

Опишу схему реализации – что было нужно для этого и чем пользовались.

Были использованы четыре главных инструмента для реализации:

  • соединение ADODB и хранимые процедуры SQL нам нужны лишь для того, чтобы подключиться к SQL-базе Jira и забрать оттуда список ID наших задач.

    • чтобы вообще запустить и подрубиться к SQL, мы пользуемся ADODB-соединением;

    • а хранимыми процедурами мы берем ID.

  • Дальше мы создаем в нашей конфигурации элементы справочника «Задачи» и заполняем их. Но все поля, которые нам нужны, мы берем из Jira через API. Таким образом мы реализуем двустороннюю интеграцию:

    • если мы что-то изменим в 1С, это также прилетит в Jira;

    • и если что-то изменится в Jira, это также прилетит в 1С;

    • а ADODB-соединение нужно для того, чтобы постоянно пополнять задачи, чтобы они попали в 1С, если были созданы только в Jira.

  • Также был использован формат JSON, потому что вся синхронизация через API реализована через этот формат.

Про каждый инструмент расскажу подробнее.

 

 

Подключение к SQL через ADODB-соединение выполняется довольно просто. Здесь нужен COM-объект ADODB.Connection и строка подключения с пользователем, которому доступны заранее созданные в SQL-базе хранимые процедуры.

 

 

Запросы к REST API выполняются через HTTP-соединение.

Подключаемся к серверу Jira через заранее заведенного системного пользователя Atlassian с определенными правами. Я чуть позже скажу, какие права ему для этого нужны.

И дальше мы просто через объект HTTPЗапрос выполняем запросы к API.

Причем есть пять различных видов запросов – POST, GET, PATCH, PUT, DELETE.

Как понять, какой вид запроса и когда нам нужен, я сейчас расскажу.

 

 

Для этого имеется документация Atlassian, она довольно удобная. Здесь я приложил ссылки:

Там слева довольно удобно организован список объектов – при раскрытии показывается перечень доступных методов, которые помечены цветными маркерами в зависимости от вида запроса.

 

 

Например, вот так выглядит описание GET-запроса для объекта Issue – он подойдет, если нам нужно получить задачу. Мы видим:

  • вид запроса, очевидно – GET;

  • что он возвращает;

  • что нам нужно подать на вход – либо ID, либо ключ задачи;

  • какие права нужны пользователю для того, чтобы воспользоваться этим запросом.

 

 

Также можно посмотреть:

  • как пишется запрос, и что нам для него нужно;

  • коды возврата, которые нам предоставляет API для этого запроса;

  • и пример обращения к API на шести языках программирования, которые мы можем использовать как референс, чтобы перевести на 1С.

Этим очень удобно пользоваться.

 

 

Ну и также нам, как я уже сказал, понадобится работа с данными формата JSON:

  • Так как любые параметры, которые мы передаем через API, должны быть оформлены в виде JSON, нам понадобится ЗаписьJSON.

  • И когда мы получаем ответ от API, нам нужно прочитать JSON через ЧтениеJSON, распарсить эти данные и распределить их по местам в нашей конфигурации.

 

 

Я покажу, как мы реализовали эту доработку.

Изначально у нас была карточка задачи Jira – на слайде показана шапка задачи.

 

 

Вот так в итоге это выглядит в карточке задачи 1С

Основные поля – Статус, Наименование, Исполнитель – мы взяли из Jira.

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

Таким образом мы к задаче подтянули нашу конфигурацию. И когда разработчик либо аналитик будет писать документацию, он выберет, какой конкретно объект метаданных он хочет описать, и какие изменения он сделал.

При выборе объекта метаданных (элемента справочника «Конфигурации») документация привязывается к объекту метаданных и к задаче – у нас получается связь, которой до этого не было.

 

 

Так может выглядеть пример шаблона статьи Confluence. Здесь есть предзаполненные значения:

  • Наименование, которое мы взяли из задачи;

  • Заказчик;

  • Аналитик;

  • Разработчик и так далее.

Можно пользоваться макросами – как это сделать, описано в документации. Причем можно пользоваться как стандартными макросами, так и покупать дополнительные – у нас был такой случай.

 

Альтернативы использования

 

 

Еще хочу поговорить об альтернативах Atlassian. Их довольно много, и я не вижу смысла углубляться в каждый из них в отдельности, чтобы как-то сравнивать.

Но я для себя выделил три основных преимущества Atlassian перед другими системами:

  1. Продукты Atlassian популярны – скорее всего, у вас в компании уже есть Jira и Confluence вместе или только Jira.

  2. Jira и Confluence уже между собой синхронизированы «из коробки» – не нужно ничего настраивать.

  3. У них хорошая документация, и это упрощает настройку интеграции с ними – можно разобраться очень быстро.

В моем случае я сделал синхронизацию, используя продукты Atlassian, но привязываться именно к этим продуктам необязательно.

Если есть достаточно гибкий API, в котором есть все, что нам нужно – этот же механизм мы можем спокойно перенести на любую другую систему.

 

Преимущества и недостатки

 

 

Поговорим о преимуществах и недостатках этого механизма.

Из преимуществ:

  • У нас появился быстрый доступ к документации в одном месте. Это то, чего мы добивались.

  • Удобство ведения задач – так как все теперь в одном месте, все очень прозрачно видно в отчетах.

  • Эффективное тестирование доработок. Например, если у нас есть какой-то уже доработанный объект метаданных, который мы хотим еще больше доработать, то при написании сценария тестирования мы можем построить по нему отчет и посмотреть, какие уже были доработки. Это поможет нам написать качественный сценарий тестирования, чтобы ничего из прошлых доработок не затерлось и не поломалось.

  • У нас появляется ведение документации в разрезе метаданных конфигураций. Мы этого добивались, мы это получили.

  • Конструкторы заполнения статей Confluence и задач. Мы можем сделать предопределенные конструкторы не только для статей Confluence, но и для задач, чтобы пользователь не выбирал сам все подряд, а чтобы это заполнялось автоматически или полуавтоматически. Это все тоже можно в 1С через API доработать.

  • Возможность расширения функциональности в плане гибкости. Здесь тоже можно все что угодно надстраивать без каких-либо проблем.

  • Простота доработки системы. Правда здесь важно оговориться, что имеется в виду именно доработка системы – когда все уже работает и синхронизация с системой документации настроена.

Здесь переходим к недостаткам:

  • Сложность реализации с нуля такой системы довольно высокая, особенно если разработчик никогда не работал с API и конфигурация «Управление задачами» для него новая. Потому что для самостоятельной реализации таких доработать нужно изучать документацию, а она на английском. На это потребуется время.

  • Время на обучение персонала. Поскольку механизм новый, нужно будет написать пользовательские инструкции, чтобы все понимали, как с этим работать – куда что писать, где что забивать, куда что нажимать. На обучение потребуется довольно много времени.

  • Возникает необходимость поддерживать дополнительную конфигурацию – нужно выделять на это разработчика, чтобы он тратил на это время.

  • Контроль заполняемости документации. Да, стало лучше, прозрачнее, удобнее, но проблему контроля заполняемости документации мы здесь не решим. К сожалению, мы должны полагаться на добросовестность сотрудников, что они действительно заполняют описания, делают это своевременно и так далее. К сожалению, мы никак не можем решить эту проблему автоматическим путем.

  • При ведении документации возникают высокие шансы на ошибку. Даже когда пользователи уже не первый месяц с этой системой работают, все равно из-за сложности такой схемы всегда будет шанс на ошибку – не туда записать документацию, выбрать не тот объект и так далее. Потом придется это все откатывать. Причем это все тоже можно реализовать, поэтому это не критичный недостаток, тем не менее он есть.

 

Вопросы и ответы

 

Какое хранилище использовалось – 1С или Git? Доступ в него осуществлялся напрямую или через промежуточное трансформирование в конфигурацию и выгрузку файлов?

Было хранилище 1С, не Git. Загружалось в «Управление задачами» через встроенную обработку: она напрямую берет файлики, их парсит и заполняет в справочной конфигурации.

По TCP он тоже работает?

Точно не могу сказать, надо смотреть более детально.

Зачем в части интеграции Confluence с системой 1С нужен ADODB, если все по API поддерживается? Или были какие-то нюансы?

Когда я реализовывал, мне выбора не предоставили. Поэтому я говорю, что здесь как вариант ADODB.Соединение.

Скорее всего есть другие варианты, но это мой случай, мой кейс. Я говорю, что здесь как вариант можно использовать COM-объект ADODB.Connection и хранимыми процедурами брать ID. Но да, я понимаю, что COM-объект не для всех подходит.

Вы говорили про документацию в привязке к объекту метаданных. А документация у вас для кого? Для пользователей, для службы поддержки, для разработчиков, для аналитиков? Что это за документация?

Для всех. У нас получается три варианта документации.

  • У нас есть техническая документация, которую пишут разработчики.

  • Есть документация для разработчиков – это ТЗ, который пишут аналитики.

  • И также есть документация для пользователей – это пользовательские инструкции.

Допустим, у нас есть задача по доработке книги продаж. И есть соседняя задача для доработки книги продаж, которая была сделана год назад. Как описания к этим задачам связаны между собой? Дорабатывается имеющаяся документация или пишется новая? Вопрос в связке. Именно сейчас я вижу задачу, изменения конфигурации и изменения документации. Есть ли отчет о том, что есть такой объект метаданных, и по нему история изменения?

У меня на слайдах примера отчета нет. Но я рассказываю, как это внутри выглядит, просто как я реализовывал. Вот и все.

А если документация затрагивает несколько объектов метаданных, как здесь быть? Можно привязаться ко всем?

Да, конечно. У нас задача может затрагивать изменения многих объектов – например, требуется доработать несколько форм или несколько модулей. Все эти объекты можно привязать к одной задаче, чтобы дальше мы видели, что сделано в рамках одной задачи.

Правильно ли я понимаю, что к задаче может быть привязано только одно хранилище? А как быть с интеграционными задачами, когда у нас есть две конфигурации? Это будет поддерживаться или нужны доработки?

Я думаю, это надо будет дорабатывать.

 

*************

Статья написана по итогам доклада (видео), прочитанного на конференции INFOSTART EVENT.

См. также

Инструменты управления проектом Продуктовый подход Работа с заинтересованными сторонами Бесплатно (free)

В девятнадцатом выпуске третьего сезона подкаста Радио “Аналитик“ обсудили, чем продуктовый подход отличается от проектного, особенности заказной разработки и в каких ситуациях продуктовый подход применим в заказной разработке.

19.05.2025    208    0    Radio_Analyst    0    

2

Инструменты управления проектом Бесплатно (free)

Возможно ли действительно реализовать проект в срок, в рамках бюджета и с нужным качеством – или все-таки придется чем-то пожертвовать? Расскажем о том, с чем сталкиваются исполнители на каждом этапе проекта, и какие практические инструменты помогают им управлять ожиданиями заказчиков.

12.05.2025    460    0    user1551153    0    

2

Коммуникации Инструменты управления проектом Россия Бесплатно (free)

В современном мире ИТ-проекты становятся всё сложнее: распределённые команды, сжатые сроки, высокие ожидания заказчиков. За последние несколько лет работы в роли руководителя проектов я накопил опыт, который помог мне выстроить эффективный процесс управления и сохранить мотивацию команды. В этой статье я поделюсь ключевыми уроками, которые могут быть полезны как начинающим, так и опытным менеджерам.

09.04.2025    490    0    Alex_tut    0    

1

Инструменты управления проектом Бесплатно (free)

Об управлении рисками в проектах слышали многие, но на практике большинство руководителей проектов действуют скорее интуитивно, чем по установленным правилам. Хотя на самом деле управление рисками – такая же строго регламентированная дисциплина, как и бухгалтерский учет. Расскажем о методике формирования матрицы рисков, мониторинге, выявлении и оценке рисков в проекте.

08.04.2025    736    21    Dziden    0    

3

Инструменты управления проектом Внедрение изменений Бесплатно (free)

Про Scrum часто говорят: «Пока ты читаешь и смотришь материалы о том, как нужно внедрить его в команду, все кажется легко и просто. Но стоит взяться самому за дело, оказывается, что все вовсе не так». И действительно, есть много материалов, но все ли в них рассказано до конца или что-то упущено? Расскажем о том, как избежать ошибок при внедрении Scrum и увеличить эффективность команды при работе над продуктом.

12.03.2025    962    0    margarita_mak    0    

4

Инструменты управления проектом Бесплатно (free)

Сейчас, в эпоху цифровизации, любой бизнес можно назвать ИТ-проектом, поскольку повышение качества оказанных услуг практически всегда напрямую связано с улучшением системы, в которой эти услуги ведутся и анализируются. Расскажем об уникальной BPM-системе для управления оказанием внешних и внутренних услуг в Инфостарте и открытом использовании системы для управления проектами вместе с партнерами.

05.03.2025    1406    0    support    8    

23

Интеграции Кейсы автоматизации Инструменты управления проектом Бесплатно (free)

Задачи производственного планирования решить на 1С сложно – не хватает средств гибкой визуализации, недостаточно производительности для анализа и расчетов в реальном времени, недоступны многопоточные вычисления в режиме in-memory. Расскажем о том, как интегрировать APS-систему с 1С:ERP УХ, спрятав ее за фасадом привычного 1С-интерфейса.

20.02.2025    933    0    user1934826    1    

2

Инструменты управления проектом Продуктовый подход Канбан и поставка ценности Бесплатно (free)

Когда команда начинает применять в разработке продукта гибкие методологии, возникает масса вопросов – подойдет ли Scrum, как организовать структуру Kanban-доски, как сбалансировать загрузку команды и вовлечь всех участников в развитие продукта. Расскажем об организации слаженной работы не кросс-функциональной команды и опыте применения гибких методологий в продуктовой разработке.

23.01.2025    1184    0    AleksKate    1    

5
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. vandalsvq 1611 12.01.25 16:27 Сейчас в теме
Ну так, для информации, вдруг пригодится - https://infostart.ru/1c/tools/1131241/
Интеграцию с Jira не делал, поскольку не используем. Но confluence давно и активно, а расширение (представленное выше) было основой для интеграции дальнейшей
2. KroVladS 35 14.01.25 16:18 Сейчас в теме
Оставьте свое сообщение