Расширение для работы с базой знаний Confluence (версия cloud)

18.10.23

Интеграция - WEB-интеграция

Расширение позволяет настроить доступ к базе знаний из приложения 1С для пользователей. Основная цель: реализация доступа к статьям, без необходимости помнить адрес базы знаний и авторизовываться на ней. Дополнительно: экспорт в PDF и Word.

Скачать исходный код

Наименование Файл Версия Размер
Расширение просмотра статей в базе знаний Confluence (версия cloud):
.cfe 776,44Kb
5
.cfe 1.0.3.1 776,44Kb 5 Скачать

ВАЖНО

upd. от 24.11.22 Ровно до сегодняшнего дня я жил не тужил, деньги в Atlassian заносил (хоть и не много). Но оказалось, они сказали "спасибо, ваших денег нам не надо, мы не хотим вас тут видеть". И поставили аккаунт на удаление. Теперь задача быстро переехать куда-нибудь
upd. от 26.11.22 Хорошей альтернативы в короткие сроки не найдено, решено открыть новый аккаунт. Это в принципе не так чтобы сложно, основная проблема это перенос данных. Добавил некоторые механизмы для этого в версии 1.0.2.5

Сама статья

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

Предыстория

Внедрение для нас не такой частый кейс был, до 2020 года. Мы сознательно отходили от внедрения в сторону разработки. А внедрение наших решений выполнялось руками заказчиков, с нашим "шеф-надзором". Но в 2020-м мы подписались на внедрение комплекса программных продуктов в местном водоканале. Для меня этот проект принес много неприятных открытий, бОльшая часть была не связана с нами (а связана с тем, что такое гос-компании). Но кое-что было и у нас организовано не лучшим образом.

Мы писали инструкции в базу знаний, потом писали инструкции как работать с базой знаний, последние рассылали пользователям, учили их. Но со временем стало ясно. Почти никто не хотел делать закладку в браузере. Совсем никто не запоминал адрес. Ну, а то, что внутри есть некоторая организация данных, которую надо понять, это же надо вникать... в общем, никто вашу базу знаний читать не будет, даже вы сами. Если расстояние от вопроса до ответа дольше, чем позвонить или написать в Whatsapp и высказать "у вас тут все не работает". И с этим надо было что-то делать...

Варианты:

  • сразу же местные программисты предложили: "Распечатайте им все инструкции, отдайте и пусть не говорят что не знают". Ну подход у них такой, если пришел пользователь с проблемой, сначала надо отшить, и вот если этот пользователь со своим вопросом дойдет до генерального ну или другого зур (на местном наречии это большой) начальника, тогда и будем решать. А еще лучше: пишите служебку там и рассмотрим...
  • с нами такой подход не прокатывает. Любая попытка ответить: мы учили, мы показывали, мы инструкцию давали, мы... от заказчика (и самих "программистов") выводилось в поле "ну вам что сложно, покажите еще раз... ну или мы вам акт не подпишем". В общем кто сталкивался с подобными заказчиками, понимает как это бывает.

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

 

Confluence Cloud

На тот момент мы довольно давно отказались от базы знаний в 1С (была такая разработка у меня) и перешли в Confluence cloud. Данные были перенесены в нее и там продолжают наполняться. Есть, конечно, некоторые заморочки с оплатой (после некоторых событий), но тут не об этом. Работает и отлично.

И вот тут кажется можно заканчивать статью, у confluence есть REST API, всего-то надо сделать:

  • интерфейс для пользователя
  • обработку действий в интерфейсе

Я тоже так думал и с полными штанами энтузиазма начал это делать. Хотя нет, тут будет не честно сказать, что я ничего не знал. Помните историю про перенос данных из 1С в облако, конечно же его я сделал тоже используя REST API. Но тогда я сделал это "на коленке", а главное я не придал большого значения тому, что есть определенный формат хранения данных для статей. Я просто под него "прогнулся", все получилось, красиво, удобно, хорошо. Я порадовался и пошел решать другие задачи.

 
 Немного про формат

В Confluence все есть "статья". Будь то запись в блоге (новость) или сама статья. При этом формат хранения является собственной разработкой. Это не xml, не html и не какой-нибудь JSON. Ближе всего он к html разметке с использованием web-компонент. По крайней мере именно подобное вы увидите если провалитесь в исходные данные. 

<ac:layout><ac:layout-section ac:type="fixed-width" ac:breakout-mode="default"><ac:layout-cell><ac:structured-macro ac:name="tip" ac:schema-version="1" ac:macro-id="941154d1-9b1b-43d7-863e-75b961994e18"><ac:rich-text-body>
<p>Это домашняя страница стандартов разработки ПО на базе платформы 1С (версия 8.х) используемые в компании ПрогТехБизнес. </p></ac:rich-text-body></ac:structured-macro><ac:structured-macro ac:name="note" ac:schema-version="1" ac:macro-id="f6a1bfa7-4596-4345-8a98-7a765c04c895"><ac:rich-text-body>
<p>Все вопросы относительно разработки обсуждаются в канале #devs в Slack</p></ac:rich-text-body></ac:structured-macro>

Как вы понимаете, отобразить подобный формат у вас не получится. Ну или вам придется "нарыть" или написать собственные веб-компоненты для отображения данной статьи. Кроме веб-компонент есть еще и макросы, они определенным образом обрабатывают данные и выводят на экран в различном оформлении.

В общем, если хотите просто GET с сайта и ПолеHTML = Ответ.ПолучитьТелоКакСтроку() - то не выйдет ни разу

Но тем не менее, я решил не отступать, тем более некоторое время на опыты и изучения позволили мне найти решение проблемы. Сначала надо получить "сырые" данные в формате storage: view, потом через запрос POST в узлу convert получаете подготовленные данные. 

Там были несколько подводных камней:

  • конвертация данных
  • вывод картинок для не анонимного доступа
  • экспорт в PDF и Word

 

Конвертация данных

Для получения полноценных данных необходимо "подсказать" при конвертации раздел и родительскую статью. Тут два варианта: если вы не знаете их "до" обращения, то придется сначала вычислить. Впрочем, в моем случае, поскольку происходит пользовательская "навигация", программе прекрасно известно и раздел и родитель. 

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

Вот пример картинки из базы знаний и потом из 1С

 

 

Основные отличия в форматировании. Конечно можно поиграть с css в самом файле и доработать его, чтобы например заголовки таблиц были оформлены, границы выставлены и т.д. Возможно со временем я до этого доберусь.

Тем не менее, для чтения этого более чем достаточно, а значит можно двигаться дальше...

 

Картинки

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

Если вы используете анонимный доступ, тогда (возможно) с картинками все будет хорошо, они отобразятся. Но, если вы используется логин пользователя + token ID (см. тут), то статья придет со ссылками на картинки, которые находятся в защищенной зоне. И в таком случае поле под картинку есть, а картинки нет.

На текущий момент я решил проблему следующим образом: если используется не анонимный доступ, тогда после загрузки статьи, программа разбирает html, вытаскивая адреса картинок. После чего последовательно получает двоичные данные картинок и заменяет их в отображении. Выглядит это как будто загрузка сайта из 90-х, сначала контент, потом картинки. Немного медленно, но вполне работоспособно.

НО: возможно решение есть через установку заголовка cookie при получении данных, набросок для этого я уже сделал (в экспорте PDF) осталось раскатать на все расширение, если получится будет отлично.

Экспорт в PDF, Word

Штатно у Confluence есть такая возможность, а вот API не содержит данного функционала. HTML в 1С в PDF тоже сохранить не так просто, да и вообще конверторов html->pdf в мире не так много и каждый со своим приколом. А предлагать сохранять пользователям html+картинки не хотелось. Понятно что можно, но извините, а PDF удобнее. Да и к тому же, если в confluence настроить шрифты и локализацию при экспорте, результат выглядит очень красиво. И хотелось "как у них", а не "как получилось"... ну что же. Для начала сходим посмотрим, а как они делают.

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

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

Оговорюсь сразу, я не то чтобы все раскопал сам, я конечно рыл интернет и наткнулся на репозиторий парня, который сделал удобную обертку вокруг API для python (вот его репозиторий). В том числе и экспорт в PDF. Изучил его код, перепроверил все сам, доработал (на момент реализации, у него было несколько устаревшая реализация) и получилось.

Правда, недавно (месяц или около того) в запрос инициирования экспорта теперь необходимо передавать токен доступа, который хранится в cookie, так что надо сначала их получить, потом передать, в общем немного пришлось еще копнуть. Но лопата была недалеко, да и я находился в отпуске, и так хорошо между прогулками немного полезного закодить...

Ах да, экспорт в Word. Тут меня ждала халява, ссылка там формируется по шаблону и работает хорошо. Так что обошлось без танцев с бубном. Поэтому диплом магистра кафедры бубна всея-одинэс университета мне и не понадобился.

Расширение

Завернуть это все в расширение это уже дело техники. Оно построено на базе БСП и использует некоторые общие модули. Не работает в веб-клиенте, поскольку ждем реализации http объектов для веб-клиента. А таскать это все "сервер-клиент" мне пока не хотелось. Поэтому вы уж извините.

Что еще из хорошего есть в расширении:

  • общие модули для реализации методов обертки вокруг API. Они пока не полные, редактирования там нет. Если будет интерес пишите, может договоримся. Мне пока нужды нет, а времени увы маловато;
  • методы для поиска в базе знаний. Это я думаю может кому-то пригодится;
  • ну может кому-то зайдет в качестве источника для обучения, ну вдруг кто не очень с этими всякими api. Код старался сделать получше.

Послесловие

Сама разработка располагается в публичном репозитории на Github. Буду рад звездочкам и новым подписчикам. В моем репозитории есть и другие интересные (наверное) разработки. Тут уж кому что. В любом случае, заглядывайте, пишите, всегда рад конструктивной критике и правильным рекомендациям. 

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

Техническая информация:

  • платформа 8.3.21+ (используются методы Асинх)
  • БСП 3.1.7 (допустимо все версии БСП 3.1+)
  • режим совместимости расширения 8.3.12

Возможно понижение до 8.3.18+, но необходимо удалить использование Асинх методов HTTP-запросов (см. общий модуль confluence_ApiClientAsync и его вызов)

История изменений

  • 1.0.3.1 от 18.10.23
    • исправлены ошибки авторизации (по логин + токен ID)
    • исправлена загрузка PDF страницы
    • оптимизирована загрузка картинок для страниц без публичного доступа
    • проведен рефакторинг кода
    • ВАЖНО: требование к платформе 8.3.21 и выше
  • 1.0.2.6 от 28.11.22
    • исправлена ошибка чтения настроек при установленных ограничениях по статьям
  • 1.0.2.5 от 26.11.22
    • добавлена возможность экспорта пространств в XML и PDF
    • добавлены новые методы в для работы с api: get_space_as_pdf, get_space_as_xml, get_page_labels
    • исправлена ошибка чтения токена доступа пользователя
    • исправлена ошибка экспорта статей в PDF для не анонимного доступа
  • 1.0.2.4 первая публикация

confluence atlassian rest api

См. также

Интеграция Альфа Авто 5 / Альфа Авто 6 и AUTOCRM / Инфотек

Сайты и интернет-магазины WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    16096    13    18    

13

Интеграция 1С — Битрикс24. Обмен задачами

Сайты и интернет-магазины Интеграция WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Управленческий учет Платные (руб)

Интеграция 1С и Битрикс24. Разработка имеет двухстороннюю синхронизацию 1С и Битрикс24 задачами. Решение позволяет создавать пользователя в 1С из Битрикс24 и наоборот. Данная разработка технически подходит под все основные конфигурации линейки продуктов 1С:Предприятие 8.3 (платформа начиная с 8.3.23). При приобретении предоставляется 1 месяц бесплатных обновлений разработки. Доступна демо-версия продукта с подключением Вашего Битрикс24

5040 руб.

04.05.2021    18189    10    15    

16

Автоматическая загрузка файлов (например, прайс-листов) из электронной почты, FTP, HTTP, их обработка и выгрузка на FTP (на сайт) и для других целей

Прайсы WEB-интеграция Ценообразование, анализ цен Файловый обмен (TXT, XML, DBF), FTP Автомобили, автосервисы Оптовая торговля, дистрибуция, логистика Управленческий учет Платные (руб)

Программа с заданным интервалом времени (или по ручной команде) скачивает файлы (например, прайс-листы поставщиков) из различных источников: письма электронной почты, FTP или HTTP-адреса, и сохраняет их в каталог упорядоченной структуры. При этом извлекает файлы из архивов, может переименовывать файлы и менять их формат (csv, xls, txt). Можно настроить выгрузку обработанных файлов на сайт (через FTP-подключение). Программа будет полезна компаниям, у которых есть большое количество поставщиков и/или прайс-листы поставщиков обновляются часто (необязательно прайс-листы, файлы могут быть любого назначения). Собранные таким образом актуальные версии прайс-листов можно выгрузить с помощью программы себе на сайт (или на любой FTP-сервер) или выполнить другие необходимые задачи.

25200 руб.

28.05.2015    85428    26    51    

50

Модуль для обмена "1С:Предприятие 8. УАТ. ПРОФ" с FortMonitor

WEB-интеграция 8.3.8 Конфигурации 1cv8 Автомобили, автосервисы Беларусь Украина Россия Казахстан Управленческий учет Платные (руб)

Расширение предназначено для конфигурации "1С:Предприятие 8. Управление Автотранспортом. ПРОФ". Функционал модуля: 1. Заполнение регистров сведений по подсистеме "Мониторинг", а именно: события по мониторингу, координаты по мониторингу, пробег и расход по мониторингу, текущее местоположение ТС по мониторингу 2. Заполнение путевого листа: пробег по мониторингу, время выезда/заезда, табличная часть ГСМ, места стоянок по геозонам. 3. Отчеты по данным загруженным в регистры сведений. 4. Предусмотрена автоматическая загрузка данных в фоновом режиме (условия работы данной загрузке читайте в описании товара) Модуль работает без включенной константы по настройкам мониторинга. Модуль формы предоставляется с открытым кодом, общий модуль защищен. Любой заинтересованный пользователь, имеет возможность скачать демо-версию расширения.

22656 руб.

25.05.2021    13003    33    8    

12

Интеграция с сервисом vetmanager

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

Внешняя обработка разрабатывалась для загрузки документов из Ветменеджер в 1С: Бухгалтерия 3.0

12000 руб.

02.02.2021    16634    43    49    

23
Комментарии
Подписаться на ответы Инфостарт бот Сортировка: Древо развёрнутое
Свернуть все
1. Lemmonbri 123 24.11.22 16:44 Сейчас в теме
Confluence не работает в РФ больше. Не вижу ценности этой статьи.
2. vandalsvq 1553 24.11.22 17:48 Сейчас в теме
(1) кто вам такое сказал? Или я не в РФ живу по вашему? Хотя многие РБ расшифровывают как респ. Беларусь, а не Башкортостан 😂
3. vandalsvq 1553 24.11.22 17:57 Сейчас в теме
(1) хотя счас нашел отредактированную статью Atlassian по поводу февральских событий, датированную 02.03.22. И как будто они и с малым бизнесом «покончили». Кто их поймёт, но аналогов достойных не много, а последнее исследование показывало, либо цена выше, либо функционально не устраивало.
6. vandalsvq 1553 24.11.22 19:45 Сейчас в теме
(1) слушай, чувак, ты хоть и был как гром с ясного неба, но я залез в админку, посмотрел и оказалось. С октября atlassian не берет деньги, а аккаунт стоит на удаление... как будто это я отправил заявку на отмену использования. И как вернуть я не нашел, видимо это невозможно.
Теперь уже актуально написание статьи по переезду куда-нибудь, а куда, я не знаю.... узнаю расскажу
Спасибо тебе, уж не знаю конкретно за что....
4. Lemmonbri 123 24.11.22 18:21 Сейчас в теме
(2) при попытки регистрации вот такое
Прикрепленные файлы:
5. vandalsvq 1553 24.11.22 18:48 Сейчас в теме
(4) у меня очень старый аккаунт.. но ситуация неприятная, с учетом поправок октября, задумался, а как бы они без предупреждения не отключили бы нафиг. Надо отходные пути продумать. Хотя тогда в расширении просто появится возможность работать с чем-нибудь другим. Идея от этого не стала плохой. Инструменты политически неугодные...
7. Lemmonbri 123 25.11.22 07:47 Сейчас в теме
(6) Я не чувак. А за инфу всегда пожалуйста, эти мы с радостью поделимся.
8. devtelscargo 11.10.23 17:20 Сейчас в теме
Спасибо за разаработку, выглядит очень полезно - поддержал скачиванием за $m.

Пытаюсь запустить на тестовой базе - вопрос по заполнению начальных настроек.
В базе знаний:
1. Адрес - в каком виде должен быть указан? https://org-domain.atlassian.net/
2. Логин - это метка токена или именно логин (в виде адреса ЭП) с которого создан токен?

И по самому пространству - должно ли оно быть опубликовано? И сможет ли работать с версией Free Cloud (без публикации)?
9. user1981853 14.11.23 16:34 Сейчас в теме
Добрый день.
А Вы не могли бы приложить инструкцию по работе с данной обработкой? по заполнению начальных настроек, конкретно по кнопкам и вкладкам каждой обработки? Спасибо.
10. vandalsvq 1553 14.11.23 17:38 Сейчас в теме
(9) К сожалению полной инструкции на текущий момент у меня нет, времени тоже не много, я напишу тут кратко.

- сначала надо установить расширение. Как ставить расширение - https://portal.1c.ru/download/public/instruction/instruction_Kontragent_KZ.pdf
- после установки необходимо настроить права для пользователей. Роли называются: Confluence: Полные права; Confluence: Просмотр базы знаний
- если права настроены и расширение установлено, после перезапуска в главном меню появится пункт "База знаний" (Главное - Сервис - База знаний)
- при нажатии откроется главное окно, в нем надо перейти по кнопке "Настройки пользователя" в форму настройки
- далее необходимо ввести адрес сервера в формате "https://[NAME].atlassian.net"
- установить "использовать анонимный доступ", если ваш тариф позволяет его использовать и страницы имеют соответствующее разрешение ИЛИ
- указать логин пользователя
- указать Токен ID (идентификатор доступа), для его получения нажмите на вопросик рядом с полем и в подсказке гиперссылка "перейти" (ну или сюда - https://id.atlassian.com/manage-profile/security/api-tokens)

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

Записать настройки, закрыть форму. Настройки будут применены и форма работы с базой знаний будет обновлена.

Кстати, настройки общие для всех пользователей.

А в остальном, форма главного окна достаточно простая, мне кажется там не должно возникнуть проблем
11. user1981853 15.11.23 09:45 Сейчас в теме
(10)
https://[NAME].atlassian.net
, спасибо за ответ, с установкой расширения проблем не возникло.
"далее необходимо ввести адрес сервера в формате "https://[NAME].atlassian.net""
Уточните, пожалуйста, что подразумевается под [NAME]?
Также хотелось бы уточнить, почему при настройках выходят сообщения вида: поле "список страниц" не заполнено или получение всех пространств, код ошибки 301?
12. romankoav 4 17.01.24 17:20 Сейчас в теме
А если версия не облачная, то ничего работать не будет? или с нею все проще?
13. vandalsvq 1553 17.01.24 22:30 Сейчас в теме
(12) я с не облачной версией не имел дело. Насколько знаю, там несколько отличается api, при том не понятно на сколько и как. Так что увы даже не могу сказать. Если получится у вас попробовать и даже запустить, расскажите.
14. romankoav 4 18.01.24 08:37 Сейчас в теме
15. romankoav 4 25.01.24 16:59 Сейчас в теме
Пока ковыряю код, выяснил, что практически везде по коду к адресу, к запросу, добавляется слово wiki. В той версии конфлюенса, что у нас стоит, 6.12, это слово лишнее, практически везде приходится его убирать.
16. vandalsvq 1553 25.01.24 17:09 Сейчас в теме
(15) получается можно вынести это в настройку какую-нибудь
17. user1107771 27.01.24 15:16 Сейчас в теме
(16) Можно. То есть надо задавать сайт и путь до API.
Пока проблемы такие:
- Не переходит в том же окне по своим же внутренним ссылкам
- Картинки почти всегда не показываются
- Содержание по идее имеет древовидную структуру, но считывается только 1 уровень

Ну и хотелось бы шрифт без засечек, не смотрел еще где поправить
18. romankoav 4 29.01.24 17:46 Сейчас в теме
(17) Проблему перехода по внутренним ссылкам решил. Такой вопрос: почему не была реализована кнопка "назад", "вперед"? А то по ссылкам заберёшься в глубь, хочется быстро обратно попасть...
Картинки, некоторые показываются на секунду, потом пропадают, есть мысли почему так?
И как можно осуществить поиск со знаком # в строке поиска? чем экранировать символ?
19. romankoav 4 31.01.24 17:04 Сейчас в теме
Сделал кнопки вперед и назад. С картинками такая ситуация. При начальной загрузке страницы все картинки уже есть (доступ не анонимный), но потом запускается фоновая загрузка картинок через API, и тот путь который указан для получения вложений - не работает. Система не проверяет, что картинка не получена и затирает их. Просто закоментил вызов функции ОбработатьКартинкиСтраницыНаКлиенте()
Оставьте свое сообщение