Гибрид 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)

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

23.01.2025    533    0    AleksKate    0    

5

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

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

19.09.2024    1255    0    Dangien    3    

6

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

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

12.09.2024    490    0    ermakovalekseyv    0    

2

Канбан и поставка ценности Бесплатно (free)

Менеджерам постоянно приходится отвечать на вопрос «когда сделаете?» или «когда будет готово?». Но любой менеджер знает – чтобы гарантированно уложиться в срок, нужно заложить трехкратный запас времени. Заказчики этот принцип тоже знают и стремятся срезать срок, насколько это возможно. Обе роли «торгуются» и давят друг на друга, пока кто-нибудь не продавит свое решение. В итоге недовольными, как правило, оказываются все. Попробуем прервать этот порочный круг, используя немного математики и теории вероятностей. Расскажем, как прогнозировать срок задачи на основе объективных данных с вероятностью 80%.

06.05.2024    2129    0    babr79    0    

5

Канбан и поставка ценности Программист Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бесплатно (free)

При разработке 1С:Бухгалтерии 8 используются унифицированные процессы обработки задач, построенные на методике Kanban. О том, как выглядит доска задач, в чем пишут код команды – в конфигураторе или в EDT, и что делается для повышения качества и понятности кода самого многопользовательского проекта фирмы «1С», пойдет речь в статье.

26.04.2024    5276    0    mrXoxot    5    

29

Канбан и поставка ценности Платформа 1С v8.3 Бухгалтерский учет 1С:Бухгалтерия 3.0 Бухгалтерский учет Бесплатно (free)

Применение Agile в отделе разработки 1С:Бухгалтерии не сразу оправдало возложенные на него ожидания. Но только благодаря гибким методикам удалось стабилизировать выпуск релизов и перестроить разработку так, чтобы она всегда начиналась с анализа задачи и с общения с пользователями. Расскажем об квинтэссенции опыта разработки самого многопользовательского проекта фирмы «1С».

23.04.2024    3952    0    user1853337    8    

29

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

Мы собрали здесь самые распространенные ошибки в проектном управлении, которые обходятся очень дорого... Если вы не уверены, что сможете завалить проект самостоятельно, то ниже мы собрали несколько советов, как гарантированно добиться результата.

01.04.2024    3313    0    MariaTemchina    6    

21

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

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

07.11.2023    2049    0    WildHare    2    

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