Вступление:
Подсистему задумал давно, и она уже была в рабочем состоянии примерно три раза, но по каким-то причинам до публикации дело не доходило. На данный момент она частично готова, но еще много чего в задумке и разработке. Решил выложить в том виде, в котором есть и постепенно выкладывать обновления, документацию и ролики. Также планирую выложить план задач (ToDo).
2016–2017 год.
Я очень часто работал с http-сервисами и пришел к выводу, что было бы замечательно сделать универсальный сервис без необходимости заходить в конфигуратор. Это было первое зерно, которое медленно прорастало.
2018 год.
Я должен был ложится на серьезную операцию на позвоночнике, в связи с чем решил как можно больше «оставить после себя». Благодаря чему написал ряд статей в том числе и по http-сервисам.
Самая популярная статья из написанных в то время HTTP Сервисы: Путь к своему сервису. Часть 1, в статье уже фигурировала аббревиатура PAPI. Я переписывал эту статью раза три, она мне не нравилась. Но настал момент когда нужно было принять решение о ее публикации. По большому счету, ночью я отправил статью на модерацию, а с утра поехал в больницу.
По выходу из больницы отложил разработку подсистемы на время восстановления.
2019 год.
Был нарисован первый набросок логотипа PAPI:
Появился заказ, под который я как раз и дописал первую версию PAPI.
Первая версия проходила обкатку в бою. На тот момент для регистрации изменений были использованы планы обмена, что, конечно, не позволяло «выйти из конфигуратора» на 100%.
2020 год.
Я впервые рассказывал про подсистему PAPI на Infostart Meetup Ekaterinburg Online в 2020 году.
Пообещал выложить данную подсистему. Иногда я себя за это ругаю 😉
Ссылка на данную статью осталась точно таже ;))
2021 год.
При подготовке к публикации подсистемы, я вдруг понял, что мне не нравится, как она реализована и PAPI была полностью переписана. Во второй версии была стыковка с GitLab и еще несколько новых особенностей которых ранее не было. Но были все те же планы обмена, порции и сама PAPI была подсистемой основной конфигурации. В таком виде подсистема меня тоже не устраивала.
Начался сложный период и выход подсистемы встал под большим вопросом.
В ноябре поехал на Инфостарт Ивент в Москву и оказался на докладе «Почему не достигаются цели?». После доклада навел порядок в голове и решил «взять паузу», а после все-таки возобновить работу над PAPI.
2023 год.
Расширения в платформе дали практически все возможности, которые мне нужны были для реализации подсистемы и PAPI была перенесена в расширение, попутно она была переписана на 90%. Эта была уже третья реинкарнация. Добавились новые возможности, планы обмена сменила «ИсторияДанных». Но были утеряны некоторые старые разработки, в том числе стыковка с Gitlab.
2024 год.
Мне пришла мысль, что PAPI должна быть расширением основным – Ядром. И должно быть вспомогательное расширение под конкретный случай – Локализация (PAPIL). Такой подход дает возможность более простой доработки и обновления.
В какой-то момент я понял, что так можно переписывать до бесконечности и это не совсем правильно с моей стороны. Если я обещал выложить подсистему, то я должен выложить ее.
Я сам себе назначил дату в свой день рождения и сказал, что выложу подсистему в каком бы виде она ни была на этот момент.
19.05.2024 Подсистема PAPI выложена в общий доступ в GitHub, в том виде в котором была на этот момент.
Ранее я обещал и давал QR код, поэтому появилась эта статья.
Так как первоначально затевался именно универсальный http-сервис, поэтому наименование подсистемы было решено образовывать от API (application programming interface). Дальше я решил сделать, что-то шуточное. Я играл с разными наименованиями, в том числе PAPIRUS. Придумывая название, обыгрывал и логотип. В итоге я пришел к тому, что именно PAPI проще всего обыграть.
Шуточная составляющая в том, что в переводе с испанского, получается довольно-таки забавное название. Если вы смотрели испанские фильмы, то наверняка слышали, как дети называют своих отцов.
PAPI – в переводе с испанского «папочка».
Я добавил к API еще одно слово и получилось Pretty API -> PAPI.
Правда в 2021 году мне приелась эта шутка… Я работал на стартапе с программистами, которые ничего не знали про 1С, и они реально считали, что PAPI — это функционал непосредственно платформы 1С.
Первое время было забавно слушать как взрослые парни спрашивают про «папочку», но спустя какое-то время шутка надоела ;))
Подсистемы:
PAPI – Основная подсистема, содержит базовый функционал.
PAPI_Алгоритмы – Подсистема по созданию алгоритмов.
PAPI_HTTP – Подсистема для реализации http-сервисов.
PAPI_Методы – Методы http-сервисов.
PAPI_ИсторияДанных – Работа с платформенным механизмом История данных.
PAPI_ОтложенныеОперации – Подсистема с объектами отложенного выполнения.
PAPI_ПодпискиНаСобытия – Подсистема по работе с подписками на события.
PAPI_Шина – Подсистема для взаимодействия с шиной. (В процессе разработки)
PAPI_ДополнительныеИнструменты – Дополнительный функционал, не вошедший ни в одну подсистему.
PAPI_СервисыИнтеграции – Работа с сервисами интеграции.
PAPI_Каналы – Пока только для описания каналов.
PAPI_СообщенияСервисовИнтеграции – Работа с сообщениями сервисов интеграции.
Общие модули:
PAPI - Процедуры и функции для упрощения работы с алгоритмами и методами.
PAPI_АсинхронныеОперации – Модуль предыдущего PAPI, служил для выполнения запросов в фоновом задании. Нужно переработать.
PAPI_ДанныеДляЗаполненияНастроек – Содержит функционал по первоначальному заполнению шаблонов сообщений и некоторые настройки.
PAPI_ИсторияДанных – Содержит процедура и функции по работе с функционалом «История данных»
PAPI_Логирование – Служит для работы с логированием событий в регистрах и журнале регистрации.
PAPI_ОбщегоНазначенияВызовСервера – Набор вспомогательных процедур и функций.
PAPI_ОбщегоНазначенияКлиентСервер – Набор вспомогательных процедур и функций.
PAPI_ПодпискиНаСобытия – Процедуры и функции по работе с универсальными подписками на события.
PAPI_ПодпискиНаСобытияКлиентСервер – Процедуры и функции по работе с универсальными подписками на события.
PAPI_РаботаСАлгоритмами – Процедуры и функции по работе с алгоритмами.
PAPI_РаботаСВнешнимиОбработками – Модуль для подключаемых внешних обработок.
PAPI_РаботаСВходящимиЗапросами – Модуль для работы с входящими http запросами.
PAPI_РаботаСВходящимиСообщениями – Модуль для обработки входящих сообщений сервисов интеграции.
PAPI_РаботаСМетодами – Процедуры и функции по работе с методами.
PAPI_РаботаСОтветом – процедуры и функции по работе с ответами алгоритмов, http-запросов, методов, сообщений сервисов интеграций.
PAPI_СервисыИнтеграции - Содержит процедура и функции по работе с функционалом «Сервисов интеграций».
PAPI_СлужебныеДляОбмена - Набор вспомогательных процедур и функций.
Роли:
PAPI_Администратор – Дает полный функционал управления PAPI.
PAPI_БазовыеПрава – Дает минимальные права. Обычным пользователям больше и не надо.
PAPI_ПодсистемаPAPI – Дает только видимость подсистемы PAPI.
PAPI_Оператор - Предоставления доступа к объектам задействованным в интеграционных механизмах для разрешения ошибок
Подписки на события:
Имя | Событие | Источник |
PAPI_ОбработкаПослеЗаписиВерсийИстории Данных |
ОбработкаПослеЗаписиВерсий ИсторииДанных |
|
PAPI_ОбработкаПроведения_Документы | ОбработкаПроведения |
|
PAPI_ОбработкаУдаленияПроведения _Документы |
ОбработкаУдаленияПроведения |
|
PAPI_ОбработкаФормированияПоВерсии ИсторииДанных_Объекты |
ОбработкаФормированияПоВерсии ИсторииДанных |
|
PAPI_ОбработкаФормированияПоВерсии ИсторииДанных_РегистрСведений |
ОбработкаФормированияПоВерсии ИсторииДанных |
|
PAPI_ПередЗаписью_Документы | ПередЗаписью |
|
PAPI_ПередЗаписью_ОбъектыБезДокументов | ПередЗаписью |
|
PAPI_ПередЗаписью_РегистрРасчетаНабор Записей |
ПередЗаписью |
|
PAPI_ПередЗаписью_Регистры | ПередЗаписью |
|
PAPI_ПередУдалением_Объекты | ПередУдалением |
|
PAPI_ПриЗаписи_Объекты | ПриЗаписи |
|
PAPI_ПриЗаписи_РегистрРасчетаНабор Записей |
ПриЗаписи |
|
PAPI_ПриЗаписи_Регистры | ПриЗаписи |
|
PAPI_ПриКопировании_Объекты | ПриКопировании |
|
PAPI_ОбработкаПроверкиЗаполнения | ОбработкаПроверкиЗаполнения |
|
Регламентные задания:
Имя | Процедура | Описание |
PAPI_ВыполнитьОбработкуОчередиДействий СДокументами |
ОбщийМодуль. PAPI_АсинхронныеОперации. ВыполнитьОбработкуОчередиДействийС Документами |
Выполняет отложенное действие по документам на основании регистра сведений «PAPI_ОчередьДействийС Документами». |
PAPI_ИсторияДанныхВыполнитьОбработку ПослеЗаписиВерсий |
ОбщийМодуль. PAPI_ИсторияДанных. ВыполнитьОбработкуПослеЗаписиВерсийНа Сервере |
Запускает выполнение обработчика ОбработкаПослеЗаписиВерсий ИсторииДанных для версий, при записи которых был установлен флаг ВыполнятьОбработкуПосле ЗаписиВерсии. |
PAPI_ИсторияДанныхОбновитьИсторию |
ОбщийМодуль. PAPI_ИсторияДанных. ОбновитьИсториюНаСервере |
Обновляет историю данных. |
PAPI_СервисыИнтеграцииВыполнитьОбработку |
ОбщийМодуль. PAPI_СервисыИнтеграции. ВыполнитьОбработкуНаСервере |
Выполняет запуск фоновых заданий обработки сервисов интеграции. Работают только если ПолучитьФункциональнуюОпцию ("PAPI_ОбменыСервисов ИнтеграцииВключены") |
Функциональные опции:
Имя | Константа | Описание |
PAPI_ОбменыСервисовИнтеграции Включены |
PAPI_ОбменыСервисовИнтеграции Включены |
Включает и выключает регламент «PAPI_СервисыИнтеграцииВыполнитьОбработку» |
PAPI_ЛогированиеВходящихСообщений СервисаИнтеграции |
PAPI_ЛогированиеВходящихСообщений СервисаИнтеграции |
Если включена тогда все входящие сообщения сервисов интеграции сохраняются в регистре сведений «PAPI_ВходящиеСообщенияСервисаИнтеграции» |
Общие команды:
PAPI_НастройкиШины – Команда открывает форму настроек.
Общие формы:
PAPI_Настройки – Форма настроек.
Общие картинки:
PAPI, PAPI_Команды, PAPI_Метаданные, PAPI_Подписки
HTTP-сервисы:
PAPI – универсальный http-сервис.
Шаблон: /{MethodVersion}/{MethodName}
Тип: ANY
PAPI_lower – универсальный http-сервис (Нижний регистр).
Шаблон: /{MethodVersion}/{MethodName}
Тип: ANY
Константы:
PAPI_ДатаЗапретаОбменаДокументов – Заглушка для обменов. Можно выставить дату, которую проверять, например в подписке перед записью документов и отшивать документы младше этой даты.
PAPI_Источник – Текстовое представление текущей базы, нужно для обменов через Шину, но не обязательно.
PAPI_КоличествоПопытокОчередиДокументов – Нужна для отложенных действия с документами в регистре сведений «PAPI_ОчередьДействийСДокументами».
PAPI_ЛогированиеВходящихСообщенийСервисаИнтеграции – Для функциональной опции «PAPI_ЛогированиеВходящихСообщенийСервисаИнтеграции».
PAPI_ОбменыСервисовИнтеграцииВключены – Для функциональной опции «PAPI_ОбменыСервисовИнтеграцииВключены».
Справочники:
PAPI_Алгоритмы – Служит для описания алгоритмов.
PAPI_ВнешняяОбработка – Первоначально создан для подключение внешних обработок с процедурами для подписок на события, но в будущем будут использоваться и для других вещей.
PAPI_КаналыИнтеграции – Для описания канала отправки или приемки. Используется для ответов.
PAPI_Методы – Служит для описания методов.
PAPI_ПодпискиНаСобытия – Служит для описания подписок на события.
PAPI_СозданиеСообщений – В процессе разработки.
PAPI_Участники – Отправители и получатели.
PAPI_ЧтениеСообщений – Обработка входящих сообщений сервисов интеграций. В процессе разработки.
PAPI_ШаблоныСообщений – Описание сообщений.
Документы:
PAPI_ВходящийЗапрос – Для логирования входящих http запросов.
Перечисления:
PAPI_ДействиеСДокументом, PAPI_ТелоЗапроса, PAPI_ТелоОтвета, PAPI_ТипВыполнения, PAPI_ТипЛога, PAPI_ТипПодпискиНаСобытие
Обработки:
PAPI_НастройкаСервисовИнтеграции – Инструмент повторяет типовой функционал, но имеет несколько особенностей.
PAPI_НастройкаСоставаИсторииДанных – Обработка позволяет настраивать состав платформенной "Истории данных".
PAPI_ОтправкаСообщенияСервисовИнтеграции – Инструмент позволяет создать сообщение сервиса интеграции на выбранном канале.
PAPI_СообщенияСервисовИнтеграции – Позволяет отслеживать какие и сколько сообщений находятся в канале. Проверяет есть ли связь с шиной. Может удалять ненужные сообщения.
PAPI_ОтладкаВходящегоЗапроса - Служит для повторного выполнения запроса из Документ.PAPI_ВходящийЗапрос.
Регистры сведений:
PAPI_ВходящиеСообщенияСервисаИнтеграции – Служит для фиксации входящих сообщений сервисов интеграций.
PAPI_ЗапросНедостающихДанных – Служебный регистр. Пока под вопросом. Может быть исчезнет в будущем.
PAPI_ЛогАлгоритмов – Логи при работе алгоритмов.
PAPI_ЛогМетодов – Логи при работе методов.
PAPI_ОтборыПолучателей – Промежуточный вариант, в будущем будут нарисованы фильтры.
PAPI_ОчередьАлгоритмовДляФоновогоВыполнения – Регистр предыдущего PAPI, служил для выполнения алгоритмов в фоновом задании. Нужно переработать.
PAPI_ОчередьДействийСДокументами – Служебный регистр, хранит навигационную ссылку на документ и действие которое необходимо с ним сделать.
PAPI_ХранилищеРезультатов – Регистр предыдущего PAPI, служил для хранения данных. Нужно переработать.
Что может PAPI?
Кратко расскажу базовый функционал, более полные примеры будут видимо в формате видео. Все примеры из статьи будут доступны в демо базе и приложенных обработках.
В первой части будут рассмотрены примеры Алгоритмов и Методов. Во второй части все остальное.
Алгоритмы
Справочник.PAPI_Алгоритмы - Позволяет решать алгоритмы (Кусочки кода). Алгоритм может содержать параметры. Параметр может быть предопределенным и вычисляемым. Выполнение алгоритма происходит с помощью модуля "PAPI_РаботаСАлгоритмами", функция РешитьАлгоритм.
Разрешен – Булево – Разрешает выполнение алгоритма. Если алгоритм запрещен значение реквизита ложь. При запрете выдаст ошибку с кодом "ALErr1", См. "Пример 3: Логирование Ошибок".
ИмяАлгоритма – Строка (200) – Ключ поиска алгоритма для программистов.
Комментарий – Строка – Информация по алгоритму.
Логировать – Булево – Указывает на необходимость записи в регистр сведений PAPI_ЛогАлгоритмов.
Привилегированный – Булево – Признак запуска алгоритма в привилегированном режиме.
Настройки – ХранилищеЗначенией – Содержит структуру алгоритма, состоящую из кода алгоритма и параметров алгоритма. Прочитать структуру можно в модуле "PAPI_РаботаСАлгоритмами", используя функцию СтруктураНастроекАлгоритма.
Создадим алгоритм "ВычислениеБезПараметров":
Обратите внимание на реквизит "Разрешен". Если его выключит, то мы получим ошибку. Проверим это позже.
Заполним закладку "Вычисления":
ПятьМинут = 60 * 5;
Результат = ТекущаяДатаСеанса() + ПятьМинут;
Выполняем следующий код:
Алгоритм = Справочники.PAPI_Алгоритмы.ПолучитьАлгоритмПоИмени("ВычислениеБезПараметров");
СтруктураВозврата = PAPI_РаботаСАлгоритмами.РешитьАлгоритм(Алгоритм);
Если СтруктураВозврата.Отработал Тогда
Сообщить(СтруктураВозврата.Результат);
Иначе
Сообщить(СтруктураВозврата.ТекстОшибки);
КонецЕсли;
Снимем галочку "Разрешен" и еще раз выполним.
А теперь еще раз выполним пример 1.
Мы видим сообщение, что алгоритм запрещен.
Оставим алгоритм запрещенным и включим логирование.
Еще раз выполним и откроем "Логирование алгоритмов"
Мы видим запись в регистре с информацией об ошибке.
Если мы хотим поменять сообщение "Алгоритм запрещен" на другое сообщение, например "Запрещенный алгоритм", нам нужно поправить шаблон сообщения.
Было:
Стало:
Выполняем еще раз:
Алгоритмы. Планы на будущее:
- Работа с обработками
- Выгрузка\загрузка алгоритмов в файлы
- Более дружественный интерфейс
- Библиотека одобренных алгоритмов
- Стыковка с Git
- Юзабилити
- Сделать обработку по тестированию алгоритмов
- Добавить справку
Универсальный http-сервис:
В PAPI есть справочник PAPI_Методы. Мы можем создавать методы, не заходя в конфигуратор, можем использовать алгоритмы.
http[s]://{host}/{base}/hs/papi/{MethodVersion}/{MethodName}
Выполнение методов происходит с помощью модуля "PAPI_РаботаСМетодами", функция ВыполнитьМетод.
Для того чтобы использовать http-сервис, нужно его опубликовать.
Про публикацию можно посмотреть в статье: HTTP Сервисы: Путь к своему сервису. Часть 1
Я при публикации демо базы использовал имя: papi_demo
Шаблон по умолчанию: /{MethodVersion}/{MethodName}
Публикую локально: localhost
Адрес у меня будет такой:
http://localhost/papi_demo/hs/papi/{MethodVersion}/{MethodName}
Создаю метод "ping". Ставим галку "Разрешен", Версию указываем "V1", Доступные методы указываем "GET" и "POST", имя "ping".
На закладке "Вычисления" код:
Результат = "Папочка с тобой";
На закладке "Ответ" добавим заголовок "Content-Type" и значение "text/html; charset=utf-8"
Проверяем (я буду проверять в Postman):
Наш URL: http://localhost/papi_demo/hs/papi/v1/ping/
GET:
POST:
В функции выполнения метода есть параметр СтруктураВходныхПараметров – это структура, которая создается на основании запроса и имеет свойство "МетодЗапроса".
Давайте изменим код на закладке "Вычисления":
Результат = "Метод вызова: "
+ СтруктураВходныхПараметров.МетодЗапроса
+ ". Папочка с тобой";
Проверим:
Так же PAPI умеет вставлять заголовки ответа программно, поэтому предлагаю сделать для "GET" заголовок текст, а для "POST" будет JSON.
Для этого мы используем модуль PAPI.
Наш код на закладке "Вычисления" будет такой:
Если СтруктураВходныхПараметров.МетодЗапроса = "GET"
Или СтруктураВходныхПараметров.МетодЗапроса = "TRACE" Тогда
PAPI.ДобавитьЗаголовокОтвета(ПроизвольныеЗаголовки, "Content-Type", "text/html; charset=utf-8");
Результат ="Папочка с тобой";
Иначе
PAPI.ДобавитьЗаголовокОтвета(ПроизвольныеЗаголовки, "Content-Type", "application/json");
СтруктураДляОтвета = Новый Структура("result", "Папочка с тобой");
Результат = PAPI.Записать_JSON(СтруктураДляОтвета);
КонецЕсли;
Проверяем:
Давайте для начала разберемся с входящим запросом.
Установим галочку "Входящий запрос":
И еще раз выполним метод:
Теперь зайдем во входящие запросы:
Мы видим всю информацию по запросу. Тут и метод, и версия, и заголовки. Все данные, которые могут понадобиться. Даже видно есть ли тело запроса.
По большому счету можно повторить запрос к методу используя этот входящий запрос чтобы произвести отладку.
Давайте выполним входящий запрос:
Как видите мы можем логировать запросы и повторно их выполнять.
Теперь давайте включим логирование, но снимем разрешение на выполнения метода:
Повторно выполним запрос:
Текст ошибки можно так же, как и для алгоритмов поменять в справочнике PAPI_ШаблоныСообщений.
В URL можно передавать Query-параметры, они передаются после знака "?" в URL и чаще всего используются в запросах get. PAPI умеет с ними работать по разному.
Создадим новый метод:
Наш код на закладке "Вычисления" будет такой:
QueryПараметры = "";
Для Каждого Параметр Из СтруктураВходныхПараметров.ПараметрыЗапроса Цикл
QueryПараметры = QueryПараметры + Символы.ПС
+ "Ключ: " + СокрЛП(Параметр.Ключ)
+", Значение: " + СокрЛП(Параметр.Значение);
КонецЦикла;
Результат = "Переданы параметры: " + QueryПараметры;
Проверяем:
URL: http://localhost/papi_demo/hs/papi/v1/QueryParamsGet?Dog=Барбос&Cat=Васька
У PAPI есть возможность обработать параметры до того, как начнет выполнятся код с закладки "Вычисления" и поместить параметры в специально подготовленную структуру.
Давайте создадим вторую версию метода, для этого скопируем его и укажем версию "V2"
Теперь на закладке "Запрос" заполним вычисления параметров:
Мы просто переложили имя собаки из параметра "Dog" в параметр "Собака", а имя из "Cat" в "Кот". Как к ним теперь обратится?
Для этого созданы "ПараметрыМетода".
Поменяем код на закладке "Вычисления":
QueryПараметры = "";
Для Каждого Параметр Из СтруктураВходныхПараметров.ПараметрыМетода Цикл
QueryПараметры = QueryПараметры + Символы.ПС
+ "Ключ: " + СокрЛП(Параметр.Ключ)
+", Значение: " + СокрЛП(Параметр.Значение);
КонецЦикла;
Результат = "Переданы параметры: " + QueryПараметры;
Пробуем:
URL: http://localhost/papi_demo/hs/papi/v2/QueryParamsGet?Dog=Барбос&Cat=Васька
В расчете параметра можно использовать алгоритм.
Давайте сделаем это для параметра "Собака".
Создаем алгоритм:
На закладке "Вычисления" вставляем код:
Результат = ?(ПараметрыАлгоритма.Свойство("Dog"),ПараметрыАлгоритма.Dog,"");
Создаем копированием третью версию метода "QueryParamsGet":
На закладке "Запрос" у параметра "Собака" выбираем созданный нами алгоритм:
Проверяем:
URL: http://localhost/papi_demo/hs/papi/v3/QueryParamsGet?Dog=Барбос&Cat=Васька
В расширение "ЛокализацияPAPI" добавим обработку " ДемоПримерыМетодовPAPI.epf"
В ней код из Примера 8: Метод post во внешней обработке.
Создадим копированием метод из Примера 8: Метод post во внешней обработке:
На закладке "Вычисления" добавим код:
текОбработка = Обработки.ДемоПримерыМетодовPAPI.Создать();
Результат = текОбработка.ПреобразоватьФИОВЛатиницу(ПараметрыМетода, СтруктураВозврата);
Проверяем:
Методы. Планы на будущее:
- Работа с обработками
- Выгрузка\загрузка методов в форме
- Выгрузка\загрузка методов в файлы
- Более дружественный интерфейс
- Библиотека одобренных методов
- Стыковка с Git
- Юзабилити
- Протестировать и снять заглушку по потоку
- Протестировать и снять заглушку по двоичным данным
- Добавить во входящие запросы возможность повторного запуска запроса
- Добавить справку
Итоги:
В статье мы рассмотрели методы и алгоритмы. Также была выложена история создания подсистемы. В следующей части рассмотрим остальные части подсистемы, а быть может в PAPI появится что-то еще.
На самом деле я уже писал статьи используя некоторые инструменты PAPI, ниже я приведу перечень полезных статей.
Подсистема лежит на GitHub, найти ее там труда не составит, но на случай, если вы не используете GitHub, я создал отдельную статью на Infostart и выложил все исходники в нее.
Следить за обновлениями можно в моем телеграмм канале, найти который труда не составит.
На этом статью завершаю, спасибо за терпение.
Всем удачи и интересных проектов.
1 Информация по HTTP сервисам:
HTTP Сервисы: Путь к своему сервису. Часть 1
HTTP Сервисы: Путь к своему сервису. Часть 2
HTTP Сервисы: Путь к своему сервису. Часть 3
HTTP Сервисы: Путь к своему сервису. Часть 4
Проект, который прошел путь от провала до web-клиента. От web-клиента до мобильного приложения
2 Информация по Истории данных:
Настройка состава "Истории данных"
Версионирование объектов VS История данных
История данных. Изменения в платформе 8.3.24
Неочевидный баг Истории данных, убивающий rphost
Планы обмена VS История данных
3 Информация по Сервисам интеграции
Три инструмента для сервисов интеграции
Поинтегрируем: сервисы интеграции – новый стандарт или просто коннектор?