[Обновление] Подсистема PAPI версия 0.9.3

28.10.24

Разработка - Инструментарий разработчика

Вышел релиз 0.9.3.1 подсистемы PAPI. Давайте посмотрим, что изменилось.

Напоминаю для тех, кто не знает. PAPI - подсистема с открытым кодом, которая делает попытку сделать мир лучше. Подсистема лежит на GitHub и на Infostart -> [Open source] Подсистема PAPI, там же есть ссылки на статьи с примерами.

На GitHub ссылку не выкладываю, но найти ее труда не составит.

На самом деле 06.10.2024 выходил промежуточный релиз 0.9.2.7, 0.9.3 вышел 20.10.2024, а текущий релиз 0.9.3.1 от 27.10.2024, но я решил расписать все изменения разом.

 
Благодарности:

При создании версии 0.9.3 мне была предложена помощь, и я не отказался. Огромное спасибо коллегам.

1 Александр Анисков [vandalsvq]. За то, что разрешил воспользоваться его разработкой Консоль кода для подсистемы БСПГрупповое изменение реквизитов сделанной на базе разработки Консоль кода для управляемых форм

2 Евгений Мартыненков [JohnyDeath]. За то, что прикрутил консоль кода и оптимизировал подписки на события.

 

 
Все изменения:

1 Все подсистемы были переработаны и теперь больше похожи на модульность.

2 Создана единая форма для настроек подсистем.

3 Создан регламент по очистке устаревших данных.

4 К алгоритмам, методам, подпискам прикручена консоль кода.

5 Подписки теперь создают исполнители подписок.

6 В 0.9.3 модуль PAPI_ПодпискиНаСобытияКлиентСервер переименован в PAPI_ПодпискиНаСобытияКлиентСерверУдалить и удален в 0.9.3.1

7 Добавлено обновление с предыдущих версий на версию 0.9.3.1

8 Исправлены ошибки и внесены изменения.

9 В демо базу добавлены новые примеры с подписками на события

 

Давайте рассмотрим изменения подробнее:

Все подсистемы были переработаны и теперь больше похожи на модульность.

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

Я провел работу по распутыванию «ниток» и распределению всего по структурированным подсистемам.

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

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

 

Единая форма для настроек подсистем.

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

Новая форма так же, как и ранее, открывается через настройки.

 

 

Теперь форма выглядит вот так:

 

 

На данный момент вынесены основные настройки, но будут добавляться новые. План по добавлению настроек есть.

 

Регламент по очистке устаревших данных.

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

Добавлена константа «PAPI_НастройкаХраненияДанных», которая хранит настройки по времени хранения данных.

На форму «Настройки» выведены настройки из константы и настройки регламента:

 

 

И очередь документов

 

 

Данные для очистки:
• «Входящие сообщения» -> Регистры сведений.PAPI_ВходящиеСообщенияСервисаИнтеграции
• «Запросы данных» -> Регистры сведений.PAPI_ЗапросНедостающихДанных
• «Логи алгоритмов» -> Регистры сведений.PAPI_ЛогАлгоритмов
• «Логи методов» -> Регистры сведений.PAPI_ЛогМетодов
• «Очередь алгоритмов» -> Регистры сведений.PAPI_ОчередьАлгоритмовДляФоновогоВыполнения
• «Очередь документов» -> Регистры сведений.PAPI_ОчередьДействийСДокументами
• «Хранилище результатов» -> Регистры сведений.PAPI_ХранилищеРезультатов
• «Входящие запросы» -> Документы.PAPI_ВходящийЗапрос

 

Консоль кода.

На все объекты, где предполагается написание кода, прикручена консоль кода Monaco, она же Консоль кода для управляемых форм.

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

 

Параметры алгоритма:

 

 

Вычисления алгоритма:

 

 

Параметры методов:

 

 

Вычисления методов:

 

 

Тело методов:

 

 

Подписки:

 

 

Чтение сообщений:

 

 

Исполнители подписок.

У подписок были проблемы, поэтому я про данную подсистему не спешил рассказывать. В версии 0.9.3 основные проблемы устранены.

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

 

 

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

 

Добавлено обновление с предыдущих версий на версию 0.9.3.1

Первоначально в версии 0.9.3 было сделано обновление при запуске клиента, но в связи с ограничением по использованию алгоритмов с параметрами, такое обновление могло быть не завершённым и при следующем старте запускалось вновь.

В связи с чем было решено перевести обновление на ручной режим.

В 0.9.3.1 подсистема обновляется разово. Далее необходимо проверить в форме настроек, обновилась ли подсистема на версию 0.9.3.1.

 

 

Информация по обновлениям:

  • 0.9.2.7 Присваивается при первом запуске после перехода на 0.9.3 и 0.9.3.1
  • 0.9.2.8 В справочнике PAPI_ВнешняяОбработка заполняется новый реквизит «Событие» табличной части «Команды». В дальнейшем логика будет перестроена на данный реквизит.

 

 

  • 0.9.2.9 В справочнике PAPI_ПодпискиНаСобытия заполняется новый реквизит «РодительИсточника» в табличной части «Источники». Данный реквизит служит для создания универсальных обработчиков, например на все документы и/или все справочники.

 

 

  • 0.9.3.1 Создание или перезапись исполнителей подписки.

 

Вот тут может случиться ошибка и не все исполнители подписок обновятся:

 

 

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

 

Пример исправления ошибки.

У меня есть подписка «Подписка с алгоритмом», в которой есть алгоритм «Регистрация на узле»:

 

 

В алгоритме есть параметр:

 

 

В вычислениях мы видим использование параметра "УзелОбмена":

 

 

Код:

Если ПараметрыАлгоритма.Свойство("Источник") Тогда

       ПараметрыАлгоритма.Источник.ОбменДанными.ПолучателиДобавить(ПараметрыАлгоритма.УзелОбмена);

       Результат = Истина;

Иначе

       Результат = Ложь;

КонецЕсли;

 

Самый простой способ - получить навигационную ссылку у параметра и код переписать на использование данной ссылки. А сам параметр удалить.

 

Получаем навигационную ссылку:

 

 

Удаляем параметр:

 

 

Переписываем код на навигационную ссылку:

 

 

Код после изменений:

НавигационнаяСсылкаУзла = "e1cib/data/ПланОбмена.ПолныйОбмен?ref=afab645d86d74ccd11ef75f8b4198d41";

УзелОбмена = PAPI_ОбщегоНазначенияВызовСервера.ПолучитьСсылкуИзНавигационной(НавигационнаяСсылкаУзла);


Если ПараметрыАлгоритма.Свойство("Источник") Тогда

         ПараметрыАлгоритма.Источник.ОбменДанными.ПолучателиДобавить(УзелОбмена);

         Результат = Истина;

Иначе

         Результат = Ложь;

КонецЕсли;

 

После чего необходимо зайти в настройки и нажать кнопку «Обновить» и если обновление пройдет успешно, мы увидим вот такие данные:

 

 

Итоги:

Подсистема лежит на GitHub, найти ее там труда не составит. Если вы не используете GitHub, я создал отдельную статью на Infostart и выложил все исходники в нее.

Следить за обновлениями можно в моем телеграмм канале, найти который труда не составит.

На этом статью завершаю, спасибо за терпение.

Всем удачи и интересных проектов.

 
 Полезные статьи:

Скачать PAPI на Infostart

1 Информация по HTTP сервисам:

HTTP Сервисы: Путь к своему сервису. Часть 1

HTTP Сервисы: Путь к своему сервису. Часть 2

HTTP Сервисы: Путь к своему сервису. Часть 3

HTTP Сервисы: Путь к своему сервису. Часть 4

Проект, который прошел путь от провала до web-клиента. От web-клиента до мобильного приложения

HTTP сервис – друг или враг?

2 Информация по Истории данных:

Настройка состава "Истории данных"

Версионирование объектов VS История данных

История данных. Изменения в платформе 8.3.24

История данных. Изменения в платформе 8.3.26

Неочевидный баг Истории данных, убивающий rphost

Планы обмена VS История данных

3 Информация по Сервисам интеграции

Три инструмента для сервисов интеграции

Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?

Сервисы интеграции без Шины и интеграции

[Замер] Кто самый быстрый в конфигураторе?

4 Примеры PAPI

[Примеры] Подсистема PAPI. Часть 1

 

http-сервисы PAPI PAPI-tools PAPIL API История данных Сервисы интеграции сообщения сервисов интеграций каналы цель обещания подписки GitHub Локализация Обмены Шина

См. также

SALE! 15%

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

Набор инструментов программиста и специалиста 1С для всех конфигураций на управляемых формах. В состав входят инструменты: Консоль запросов, Консоль СКД, Консоль кода, Редактор объекта, Анализ прав доступа, Метаданные, Поиск ссылок, Сравнение объектов, Все функции, Подписки на события и др. Редактор запросов и кода с раскраской и контекстной подсказкой. Доработанный конструктор запросов тонкого клиента. Продукт хорошо оптимизирован и обладает самым широким функционалом среди всех инструментов, представленных на рынке.

10000 руб.

02.09.2020    159668    875    399    

862

SALE! 15%

Инструментарий разработчика Чистка данных Свертка базы Инструменты администратора БД Системный администратор Программист Руководитель проекта Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 10 1С:ERP Управление предприятием 2 1С:Бухгалтерия 3.0 1С:Управление торговлей 11 Россия Платные (руб)

Инструмент представляет собой обработку для проведения свёртки или обрезки баз данных. Работает на ЛЮБЫХ конфигурациях (УТ, БП, ERP и т.д.). Поддерживаются управляемые и обычные формы. Может выполнять свертку сразу нескольких баз данных и выполнять их автоматически без непосредственного участия пользователя.

8400 7140 руб.

20.08.2024    7874    58    23    

69

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

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

9360 руб.

17.05.2024    23498    68    45    

117

SALE! 15%

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

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

10000 8500 руб.

10.11.2023    10463    36    25    

61

SALE! 15%

Пакетная печать Печатные формы Инструментарий разработчика Программист Платформа 1С v8.3 Запросы 1С:Зарплата и кадры бюджетного учреждения 1С:Конвертация данных 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 Платные (руб)

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

22200 19980 руб.

06.10.2023    15433    35    7    

70

SALE! 35%

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

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

4800 3120 руб.

14.01.2013    188055    1140    0    

912

SALE! 15%

Инструментарий разработчика Программист 8.3.14 1С:Конвертация данных Россия Платные (руб)

Расширение для конфигурации “Конвертация данных 3”. Добавляет подсветку синтаксиса, детальную контекстную подсказку, глобальный поиск по коду.

15000 12750 руб.

07.10.2021    17319    6    32    

42

Инструментарий разработчика Программист Платные (руб)

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

1800 руб.

21.02.2023    7719    8    35    

23
Оставьте свое сообщение