Расширение для работы с базой знаний 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    15900    12    18    

12

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

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

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

5040 руб.

04.05.2021    17836    6    15    

13

[Расширение] БОР-Навигатор.Культура

Зарплата Бюджетный учет WEB-интеграция Обмен с ГосИС Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бюджетный учет Платные (руб)

Расширение конфигурации, включающее в себя объекты, необходимые для подготовки и сдачи отчета "Штатная численность" системы "БОР-Навигатор.Культура" в программе "1С:Зарплата и кадры государственного учреждения", редакция 3.1.

8400 руб.

01.02.2019    25849    9    0    

7

Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС

Обмен с ГосИС WEB-интеграция Платформа 1С v8.3 Управляемые формы 1С:Комплексная автоматизация 1.х 1С:Бухгалтерия 2.0 1С:Управление торговлей 10 1С:Управление производственным предприятием 1С:Управление нашей фирмой 1.6 1С:Бухгалтерия государственного учреждения 1С:Документооборот 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Платные (руб)

Обработка является альтернативой механизму, разработанному фирмой 1С и заполняющему реквизиты контрагента по ИНН или наименованию. Не требуется действующей подписки ИТС. Вызывается как внешняя дополнительная обработка, т.е. используется, непосредственно, из карточки контрагента. Заполнение по ИНН или наименованию реквизитов контрагента по данным сайта ФНС (egrul.nalog.ru) для БП 2.0, БП 3.0, БГУ 1.0, БГУ 2.0, УТ 10.3, УТ 11.x, КА 1.1, КА 2.x, УПП 1.x, ERP 2.x, УНФ 1.5, УНФ 1.6, УНФ 3.0, ДО 2.1

2400 руб.

28.04.2016    88874    162    216    

318

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

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

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

12000 руб.

02.02.2021    16461    42    49    

23
Комментарии
Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. Lemmonbri 119 24.11.22 16:44 Сейчас в теме
Confluence не работает в РФ больше. Не вижу ценности этой статьи.
2. vandalsvq 1545 24.11.22 17:48 Сейчас в теме
(1) кто вам такое сказал? Или я не в РФ живу по вашему? Хотя многие РБ расшифровывают как респ. Беларусь, а не Башкортостан 😂
3. vandalsvq 1545 24.11.22 17:57 Сейчас в теме
(1) хотя счас нашел отредактированную статью Atlassian по поводу февральских событий, датированную 02.03.22. И как будто они и с малым бизнесом «покончили». Кто их поймёт, но аналогов достойных не много, а последнее исследование показывало, либо цена выше, либо функционально не устраивало.
6. vandalsvq 1545 24.11.22 19:45 Сейчас в теме
(1) слушай, чувак, ты хоть и был как гром с ясного неба, но я залез в админку, посмотрел и оказалось. С октября atlassian не берет деньги, а аккаунт стоит на удаление... как будто это я отправил заявку на отмену использования. И как вернуть я не нашел, видимо это невозможно.
Теперь уже актуально написание статьи по переезду куда-нибудь, а куда, я не знаю.... узнаю расскажу
Спасибо тебе, уж не знаю конкретно за что....
4. Lemmonbri 119 24.11.22 18:21 Сейчас в теме
(2) при попытки регистрации вот такое
Прикрепленные файлы:
5. vandalsvq 1545 24.11.22 18:48 Сейчас в теме
(4) у меня очень старый аккаунт.. но ситуация неприятная, с учетом поправок октября, задумался, а как бы они без предупреждения не отключили бы нафиг. Надо отходные пути продумать. Хотя тогда в расширении просто появится возможность работать с чем-нибудь другим. Идея от этого не стала плохой. Инструменты политически неугодные...
7. Lemmonbri 119 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 1545 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 1545 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 1545 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, и тот путь который указан для получения вложений - не работает. Система не проверяет, что картинка не получена и затирает их. Просто закоментил вызов функции ОбработатьКартинкиСтраницыНаКлиенте()
Оставьте свое сообщение