Swagger для 1С.

Публикация № 1136245 21.10.19

Интеграция и обмен данными - WEB-интеграция

OneScript Swagger Swagger-UI

Решение для формирования Swagger спецификаций, описывающих HTTP сервисы конфигураций 1С.

Оглавление:

Введение
Простой пример
Инструменты
Настройка Simple-UI
Первый результат
Делаем красиво
Заключение
Благодарности

 

Введение

В данной статья я хотел бы показать решение для создания Swagger спецификаций на основании конфигураций 1С.

Что же такое Swagger спецификация? Небольшая выдержка с Wiki:

The OpenAPI Specification (изначально известная как Swagger Specification)— формализованная спецификация и экосистема множества инструментов, предоставляющая интерфейс между front-end системами, кодом библиотек низкого уровня и коммерческими решениями в виде API. Вместе с тем, спецификация построена таким образом, что не зависит от языков программирования, и удобна в использовании как человеком, так и машиной.

Относительно назначения, OpenAPI рассматривается как универсальный интерфейс для пользователей (клиентов) по взаимодействию с сервисами (серверами). Если спроектирована спецификация для некоторого сервиса, то на её основании можно генерировать исходный код для библиотек клиентских приложений, текстовую документацию для пользователей, варианты тестирования и др. Для этих действий имеется большой набор инструментов для различных языков программирования и платформ.

Все описание создаваемых нами HTTP сервисов на платформе 1С должно бы выглядеть так:

Это позволит публиковать документацию сервисов 1С в общепринятом, стандартизованном формате, общаясь с внешними командами общепринятом в среде профессионалов языке спецификаций API, не дополняя общение постыдными фразами вида "ой, у нас 1С, у нас нет Swagger, наш программист сейчас напишет все в Ворде". Swagger - это документация которая не врет и не отстает от основного кода, поскольку является его продолжением и создается автоматически. Никаких больше "документаций сервиса в Word!"

Что бы получить желаемый результат, мной была создана OneScript библиотека - swagger, которая реализует формирование второй редакции OpenAPI спецификации.

 

Простой пример

Более детальное описание возможностей библиотеки swagger я рассмотрю на примере создания нового HTTP сервиса в произвольной конфигурации. Нижеизложенный текст будет показывать сопоставление содержимого метаданных/модулей конфигурации с визуальным представлением генерируемой спецификации.

 

Постановка задачи

Возникла потребность создать API управления доступом в систему 1С. Необходимые возможности:

  • Получить список всех пользователей
  • Получить все свойства пользователя
  • Изменить все свойства пользователя
  • Изменить одно свойство пользователя
  • Создать нового пользователя
  • Удалить существующего пользователя

 

Подготовка метаданных

Добавим в дерево метаданных новый HTTP сервис:

  • Имя UserAPI (имя сервиса)
  • Синоним API управления доступом (описание сервиса)
  • Комментарий 1.0 (версия сервиса)

Общее описание сервиса

Создадим наборы шаблонов URL:

  1. Для получение списка пользователей:
  • Имя ПользователиСписок
  • Синоним user (tag)
  • Шаблон /user/list (path)
  • Методы:
    • HTTP метод GET
      • Комментарий Получить список пользователей (определение операции)

  1. Для работы с конкретным пользователем:
  • Имя Пользователь
  • Синоним user (tag)
  • Шаблон /user/{userID}
  • Методы:
    • HTTP метод GET
      • Комментарий Получить свойства пользователя (определение операции)
    • HTTP метод PATCH
      • Комментарий Изменить свойство пользователя (определение операции)
    • HTTP метод PUT
      • Комментарий Изменить все свойства пользователя (определение операции)
    • HTTP метод DELETE
      • Комментарий Удалить пользователя (определение операции)

  1. Для создания нового пользователя:
  • Имя ПользовательНовый
  • Синоним user (tag)
  • Шаблон /user
  • Методы:
    • HTTP метод POST
      • Комментарий Создать нового пользователя (определение операции)

Так же платформой были созданы обработчики в модуле HTTP сервиса:

 
 Модуль HTTP сервиса

Болванка нашего сервиса готова.  Выгрузим конфигурацию в файлы, используя каталог D:\ПримерКонфигурация\. Далее займемся установкой и настройкой необходимых инструментов.

 

Инструменты

Установим или обновим OneScript до актуальной версии (на момент написания статьи 1.1.1). Далее установим библиотеку swagger:

opm install swagger

Так же потребуется наличие IIS на своей машине или ином сервере. Но все примеры ниже будут в рамках localhost.

Скачаем содержимое папки dist из официального репозитория Swagger-UI.

Скачаем содержимое папки simple-ui из репозитория библиотеки swagger.

 

Настройка Simple-UI

Simple-UI представляет собой пример каталогизатора спецификаций, позволяющий хранить, актуализировать и отдавать спецификации по запросу. Выполнен в виде HTTP сервисов на OneScript. Так же приведен пример модификацию Swagger-UI для взаимодействия с нашим каталогизатором.

 

Развертывание spec-admin

Описание, создание и публикация HTTP сервисов на OneScript хорошо рассмотрены тут и тут.

В IIS добавим новое приложение:

 

Проверим готовность сервиса обычным GET запросом на:

http://localhost/onec-swagger-admin/list.os

В теле ответа от сервиса мы должны получить "[]".

 

Развертывание Swagger-UI

В IIS добавим новый виртуальный каталог:

Проверим в браузере:

Далее заменим файл index.html в каталоге onec-swagger-ui на аналогичный файл из Simple-UI.

Завершающим этапом откроем в любом редакторе новый файл index.html и заменим в строчке:

var admin_url = 'http://localhost/onec-swagger-admin/'

"localhost" на адрес вашего IIS сервера:

var admin_url = 'http://ВашСерверIIS/onec-swagger-admin/'

 

Первый результат

Из репозитория библиотеки swagger скачаем скрипт upload.os. У нас уже есть выгруженная в файлы конфигурация D:\ПримерКонфигурация\.

Открываем терминал и выполним следующую команду:

oscript upload.os -name SimpleAPI -path D:\ПримерКонфигурация\ -type xml -adminurl localhost/onec-swagger-admin/

Если команда прошла без ошибок, любуемся результатом на http://localhost/onec-swagger-ui/

 

Делаем красиво

Рассмотрим более подробное описание метода PUT /user/{userID}:

Как мы видим, библиотекой swagger в сформированной спецификации явно описан параметр userID с пометкой входящий и расположением в пути запроса. Так же по умолчанию подставляется единственный код ответа сервиса - 200 (см. стандарт RFC7231) и тип данных в теле ответа считается обычным текстом (см. стандарт RFC6838).

На данный момент сформированная спецификация основана только на метаданных конфигурации. Но мы ее сделаем еще информативнее.

 

Комментарий по стандарту

В стандартах разработки на ИТС у нас есть такой замечательный документ. Он достаточно подробно показывает как нам правильно описывать свои процедуры и функции.

Воспользуемся данным стандартом, и добавим подробное описание функций в модуле сервиса:

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем что в каждый метод добавилось описание:

Следующим шагом опишем входящие параметры, которые явно заданы в пути (шаблон /user/{userID}):

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем описание параметра userID:

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

  • для методов PUT и POST добавим описание параметра body (ключ-слово библиотеки swagger)
  • для метода PATCH добавим описание параметров property и value (напомню, логика обработки данного метода подразумевает изменение конкретного свойства)
 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем описание параметра body:

а так же для метода PATCH:

 

Комментарий не по стандарту

Рассмотрим ситуацию, что по переданному userID пользователь в системе не был найден. Тогда наш сервис должен вернуть код ответа 404. А если в процессе изменения свойства пользователя в базе 1С произошла ошибка (все же пользуются транзакцией с попыткой) то вернем код ответа 500.

Поскольку потребность описать коды ответов HTTP сервиса не предусмотрена в стандарте ИТС, то в комментарии будем добавлять "нестандартный" блок:

// Коды ответов:
//   XXX - Описание
//

где XXX - код ответа по стандарту RFC7231.

Дописываем изменения в модуле:

 
 Модуль HTTP сервиса

Обновим спецификацию, проверяем блоки Responses:

 

Заключение

На данный момент, библиотека swagger выпущена как минимально жизнеспособный продукт (MVP). В планах стоят следующие задачи:

  1. Добавить поддержку формирования спецификации для конфигурации в формате проекта EDT.
  2. Найти приемлемый способ описания схемы объектов API в конфигурации 1С. Пока я вижу этот момент как описание в комментарии, примерно следующим образом:
// Параметры:
//   body - Объект(json):UserType - Пользователь
//    * Name - Строка - Имя
//    * ShowInList - Булево - Показывать в списке
//    * Roles - Массив из Строка - перечень ролей

что будет соответствовать объекту в json:

{
    "Name": "Name",
    "ShowInList": true,
    "Roles": [
        "Role"
    ]
}

и в спецификации будет описание в схеме:

{
    "definitions": {
        "User": {
            "type": "object",
            "discriminator": "UserType",
            "properties": {
                "Name": {
                    "type": "string"
                },
                "ShowInList": {
                    "type": "boolean"
                },
                "Roles": {
                    "type": "array",
                    "items": {
                        "type": "string"
                    }
                }
            },
            "required": [
                "Name",
                "ShowInList",
                "Roles"
            ]
        }
    }
}
  1. Научиться связывать спецификации с настройками публикации тестовых база и попробовать автотесты.

Буду рад любой конструктивной критике и предложениям.

 

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

Особую благодарность выражаю Овсянкину Андрею за помощь в подготовке данной статьи, а сообществу OneScript за отличный продукт и прекрасное комьюнити.

 

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

Специальные предложения

Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. пользователь 21.10.19 11:24
2. chg 21.10.19 11:30 Сейчас в теме
3. ZeratulAyuris 21.10.19 11:43 Сейчас в теме
Очень своевременно, спасибо!
4. Жолтокнижниг 254 21.10.19 13:53 Сейчас в теме
Качественно.
Даешь swagger в 1с массы.
5. tanat74 59 21.10.19 15:51 Сейчас в теме
Большое спасибо. Очень давно искал такой механизм.
6. CodeNull 23.10.19 17:41 Сейчас в теме
Здравствуйте. Весьма годный и нужный инструмент. Но как вы сами написали, не хватает описания body для post запросов. Например, в нашем проекте post запросы это самая объемная часть, body некоторых весьма сложный по структуре (много полей и вложимость).

А что насчёт описания ответа (возвращаемое значение)?
7. botokash 360 24.10.19 05:32 Сейчас в теме
(6) Как я писал в заключении описание схемы данных, как в теле запроса, так и в теле ответа, обязательно будет в следующих релизах библиотеки. Сейчас вопрос стоит в том, как лучше сделать. Ну и конечно вопрос времени, пока занят другим проектом. Можете добавить репозиторий библиотеки на гитхабе в наблюдение, не пропустите обновление )
8. Evil Beaver 7736 10.12.19 15:19 Сейчас в теме
Столкнулся с обратной задачей - есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис. Для многих языков есть готовые генераторы классов под такую спецификацию. Может автор и для 1С сделает? Надо всего-то XML с описанием веб-сервиса сгенерировать и модуль с заглушками методов. А потом это можно в исходники 1С подложить и готово!
9. botokash 360 11.12.19 06:45 Сейчас в теме
(8) Автор с самого начала задумывался над кодогенерацией) Пока проблема с наличием свободного времени.
34. Nikola23 661 26.05.20 09:04 Сейчас в теме
(8) Дай погонять описание. Может что получится.
35. Evil Beaver 7736 26.05.20 12:46 Сейчас в теме
36. Nikola23 661 26.05.20 17:10 Сейчас в теме
(35) Вы пишите: "есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис".
Вот ту самую спецификацию можете скинуть?
37. malikov_pro 1193 15.06.20 13:00 Сейчас в теме
(8)
Надо всего-то XML с описанием веб-сервиса сгенерировать и модуль с заглушками методов.

Может лучше роуты кодом описать? У меня была попытка https://infostart.ru/public/1131305/, но народ не отреагировал.
Если чисто кодом то и в OneScript переложить не проблема.

Для начала нужны требования к результатам генератора.
10. 19077 14.01.20 18:13 Сейчас в теме
Очень нужная штука, больше нет новостей?
11. SLV66 28.01.20 13:31 Сейчас в теме
При установке столкнулись с ошибкой

C:\Program Files\OneScript\bin>opm install swagger
ПРЕДУПРЕЖДЕНИЕ - Ошибка получения списка пакетов с хаба ОсновнойСерверПакетов по причине {Модуль C:\
Program Files\OneScript\lib\opm\src\core\Классы\СерверПакетов.os / Ошибка в строке: 94 / Ошибка подк
лючения к зеркалу }
ПРЕДУПРЕЖДЕНИЕ - Ошибка получения списка пакетов с хаба ЗапаснойСерверПакетов по причине {Модуль C:\
Program Files\OneScript\lib\opm\src\core\Классы\СерверПакетов.os / Ошибка в строке: 94 / Ошибка подк
лючения к зеркалу }
КРИТИЧНАЯОШИБКА - {Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\МенеджерПолученияПак­ето
в.os / Ошибка в строке: 18 / Ошибка установки пакета swagger: Пакет не найден}
12. botokash 360 28.01.20 13:35 Сейчас в теме
(11) Добрый день. Могу предположить, что не работают хабы пакетов. Можете скачать packagedef тут.
13. CodeNull 30.01.20 05:14 Сейчас в теме
(11) Проверьте настройки прокси. У меня были с этим проблемы когда пытался использовать opm на работе. Решается конфигурирование менеджера пакетов либо хардкодингом: https://github.com/oscript-library/opm/issues/152#issuecomment-487804579
21. SLV66 30.01.20 12:01 Сейчас в теме
14. SLV66 30.01.20 08:09 Сейчас в теме
после подмены указанного файла ошибки не уходят (

C:\Program Files\OneScript\bin>opm install swagger
{Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\metadataparser.os / Ошибка в строке: 4,4
/ Библиотека не найдена xml-parser}
15. botokash 360 30.01.20 08:16 Сейчас в теме
(14) проверил, пакет доступен для установки с хаба:
PS C:\WINDOWS\system32> opm install swagger
ИНФОРМАЦИЯ - Скачиваю файл: swagger.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет swagger
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: fs
ИНФОРМАЦИЯ - Скачиваю файл: fs-1.0.0.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет fs
ИНФОРМАЦИЯ - Установка завершена
ИНФОРМАЦИЯ - Устанавливаю зависимость: xml-parser
ИНФОРМАЦИЯ - xml-parser уже установлен. Пропускаем.
ИНФОРМАЦИЯ - Устанавливаю зависимость: json
ИНФОРМАЦИЯ - Скачиваю файл: json-1.1.1.ospx
ИНФОРМАЦИЯ - Устанавливаю пакет json
ИНФОРМАЦИЯ - Установка завершена
Показать


Все зависимости явно видны.
16. CodeNull 30.01.20 08:19 Сейчас в теме
(15) Тоже проверил, установка прошла успешно.

(14) Какая версия oscript и opm?

# opm -v
0.15.3
# oscript -v
1.1.1.44
17. пользователь 30.01.20 11:48
Сообщение было скрыто модератором.
...
18. SLV66 30.01.20 11:51 Сейчас в теме
C:\Program Files\OneScript\bin>opm -v
{Модуль C:\Program Files\OneScript\lib\opm\src\core\Классы\metadataparser.os / Ошибка в строке: 4,4
/ Библиотека не найдена xml-parser}
20. botokash 360 30.01.20 11:59 Сейчас в теме
(18) ну тут очевидно, нужно установить пакет xml-parser
19. SLV66 30.01.20 11:52 Сейчас в теме
C:\Program Files\OneScript\bin>oscript -v
1.2.0.92
22. SLV66 30.01.20 12:02 Сейчас в теме
а нельзя ли скопировать этот проект и вставить ?
23. botokash 360 30.01.20 12:14 Сейчас в теме
(22) попробуйте этот архив распаковать в "C:\Program Files (x86)\OneScript\lib"
Прикрепленные файлы:
swagger.rar
24. SLV66 30.01.20 12:22 Сейчас в теме
скопировал

opm install swagger Это делать получается не нужно?
25. SLV66 30.01.20 12:23 Сейчас в теме
C:\Windows\system32>oscript C:\inetpub\wwwroot\Onescript\upload.os -name SimpleAPI -path C:\MP_1C\Co
nf\Conf_file\ -type xml -adminurl http://localhost/oosw/
{Модуль C:\inetpub\wwwroot\Onescript\upload.os / Ошибка в строке: 5,5 / Библиотека не найдена swagge
r}
26. botokash 360 30.01.20 13:45 Сейчас в теме
(25) Как мне кажется, у вас проблема не с моей библиотекой. В телеграмме есть группа oscript_library, обратитесь лучше туда. В комментариях под статьей не место для поиска ответов на ваши проблемы.
27. tdr 11.02.20 12:43 Сейчас в теме
Установил сие на хттп сервис генерации актов сверки у заказчика.
Хороший инструмент для описания api у сервиса
Но заметно уступающий тому же Fiddler для отладки и мониторинга работы сервиса

пришел к выводу, что удобнее непосредственно тут править описание сервиса сразу на YAML, нежели на JSON, и итоговый результат вставлять в файл сервиса с расширением json

https://prnt.sc/r0m9l5

чем оформлять в 1С потом небыстро выгружать и обрабатывать парсером.
28. tdr 11.02.20 12:52 Сейчас в теме
Swagger не умеет отображать ответы сервисов, в теле которых есть JSON (у меня массив строк)
вот пример:
https://prnt.sc/r0mf2v
29. qwed557 30 11.03.20 15:54 Сейчас в теме
Здравствуйте, не подскажете куда копать?
Выходит такая ошибка
Ошибка HTTP 500.19 — Internal Server Error

Ошибка конфигурации Данный раздел конфигурации не может использоваться на этом пути. Это происходит, когда раздел блокирован на родительском уровне. Блокировка происходит либо по умолчанию (overrideModeDefault="Deny"), либо устанавливается непосредственно при помощи тега расположения с overrideMode="Deny" или наследуемым свойством allowOverride="false".
Файл конфигурации \\?\C:\swagger\simple-ui\spec-admin\web.config

права на папку для пользователя IIS есть, что еще нужно настроить?
30. qwed557 30 12.03.20 08:48 Сейчас в теме
Вот полный скрин с ошибкой, кто подскажет что поправить надо? На двух разных компах одна и та же ошибка.
Прикрепленные файлы:
31. botokash 360 12.03.20 09:19 Сейчас в теме
(30) Честно говоря не силен в данном вопросе.
32. qwed557 30 12.03.20 09:21 Сейчас в теме
Доустановил компоненты .Net Framework 4.7
теперь выходит следующая ошибка:
Прикрепленные файлы:
33. qwed557 30 12.03.20 11:08 Сейчас в теме
все, разобрался, надо было папаку bin скопировать в каталог spec-admin
38. koln 05.07.20 14:30 Сейчас в теме
(33)Возникла такая же проблема. Ваше решение помогло. Уточню только, что папка bin из каталога OneScript, в моем случае C:\Program Files\OneScript
39. koln 06.07.20 09:27 Сейчас в теме
При запуске скрипта
oscript upload.os -name SimpleAPI -path D:\ПримерКонфигурация\ -type xml -adminurl localhost/onec-swagger-admin/
возникла ошибка
Не найден тип вызова в блоке! {C:\Program Files (x86)\OneScript\lib\swagger\src\Классы\codeparser.os /Ошибка в строке 127 / Внешнее исключение (System.ArgumentOutOfRangeException):Заданный аргумент находится вне диапазона допустимых значений. Имя параметра: i}
С чем это может быть связано и как исправить?
Прикрепленные файлы:
40. koln 07.07.20 12:15 Сейчас в теме
(39)Проблема решена. Как оказалось, для одного шаблона метод обработчика был полностью закомментирован (не использовался). Именно поэтому и не удавалось найти и сопоставить обработчик по указанному в шаблоне имени.
41. nicolya 4 13.07.20 13:01 Сейчас в теме
Добрый день! Добавил в IIS приложение и при проверке запросом http://localhost/onec-swagger-admin/list.os получаю следующую ошибку:
Ошибка HTTP 404.17 — Not Found
Содержимое запроса является сценарием и не будет обрабатываться обработчиком файла статистики.

Может, сталкивался кто-нибудь, подскажите куда копать? Спасибо
Прикрепленные файлы:
43. Jeka44 30.09.20 17:28 Сейчас в теме
(41) столкнулся с этой же проблемой. Вы смогли ее победить?
44. Jeka44 30.09.20 17:36 Сейчас в теме
(43)отвечу сам себе: чтобы исправить эту ошибку надо доустановить компоненты Windows Службы WCF
52. AlexZm 02.02.22 00:17 Сейчас в теме
(44) А можно подробнее? На windows server 2008 R2 словил ошибку и не могу побороть.
56. Jeka44 10.02.22 10:02 Сейчас в теме
(52)По моему это
Прикрепленные файлы:
53. AlexZm 02.02.22 00:20 Сейчас в теме
(41) Удалось ли победить проблему?
54. ManOfAsgard 07.02.22 09:16 Сейчас в теме
(53) Я не знаю, насколько это актуально, но решение следующее, нашёл здесь - https://infostart.ru/1c/articles/727311/.
Вкратце - нужно приложению onec-swagger-admin указать пул .NET v4.5 Classic, а в каталог приложения положить каталог bin с либами из скачанного архива OneScript.
Прикрепленные файлы:
55. AlexZm 08.02.22 01:57 Сейчас в теме
(54) Спасибо большое! Получилось.
42. VVi3ard 50 17.08.20 10:15 Сейчас в теме
(0) Полезная статья.
На мой взгляд было бы лучше разбить её на 2 части:
1. Получение описания OpenApi;
2. Отображение этого описания;

Не всем нужно локально поднимать swagger и отображать описание, для начала достаточно было бы просто получить спецификацию и работать с ней на https://swagger.io.

Подскажите если мне не нужно локально хостить swagger, как просто получить сгенерированное описание?
bubnov; artesk; user1284675; +3 Ответить
45. Jeka44 30.09.20 17:44 Сейчас в теме
Столкнулся с ошибкой "Ошибка HTTP 500.23 — Internal Server Error
Обнаружены значения параметров ASP.NET, которые неприменимы в интегрированном режиме управляемого конвейера."
Может кто подскажет как ее победить?
46. Jeka44 30.09.20 17:47 Сейчас в теме
(45)Опять, как только спросил, так сразу разобрался. Не тот пул приложений выбрал
47. amyd 93 18.02.21 12:59 Сейчас в теме
Крутышка по всем статьям!
за задрался в NotePad делать описание.!
однозначно плюс
48. eugeniezheludkov 41 22.02.21 17:42 Сейчас в теме
судя по закоментированному коду //Результат.Вставить("definitions");
сложных типов данных нет , т.е входные выходные данные могут быть лишь строки числа массивы (строк , чисел) и больше ничего (((( а еще булево .
49. пользователь 25.03.21 10:24
Сообщение было скрыто модератором.
...
50. eugeniezheludkov 41 20.04.21 04:32 Сейчас в теме
с кодировкой utf-8 эти скрипты из статьи не дружат от слова совсем.
учитывая, что эта разработка не понимает/не распарсивает xdto, сложные типы не понимает. как на входе так и на выходе лишь простые типы , на выходе так вообще plain\text вместо нормального описания пакета.
возникает вопрос: кто нибудь вообще воспользовался тем что описано в статье ?
как по мне описать методы у котрых на входе string и на выходе string можно было бы и в блокнотике
51. Ibrogim 1261 07.09.21 15:53 Сейчас в теме
Круто. Думал уже писать, но нашёл эту крутатень!
Оставьте свое сообщение

См. также

Serverless (Faas) в 1С. Создание и вызов Yandex Cloud Functions Промо

WEB-интеграция Облачные сервисы, хостинг Платформа 1С v8.3 Бесплатно (free)

"Я не могу просто взять и скопировать код с гитхаба", "у нас 1С микросервисами окружена", "возможностей мало" - частые фразы 1С разработчиков. которым не хватает возможностей платформы в современном мире. Faas, конечно, история не новая, но нас сдерживало 152ФЗ и задержки по пингам. Для того, чтобы действительно использовать в 1С код, к примеру, на Python, надо было приложить усилия. Теперь всё намного проще - берём и используем.

28.12.2020    11860    comol    31    

Как убрать /hs/ и имя виртуального каталога из URL для http-сервиса (IIS)

WEB-интеграция Администрирование веб-серверов Бесплатно (free)

Переписывание входящего user-friendly URL (без hs) для понимания его http-сервисом 1С.

05.12.2022    226    kludgedCHPMK    1    

Реализация нестандартных (для 1С) интерфейсных решений в Web-клиенте

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

Онлайн-сервисы, построенные на 1С, могут использовать все многообразие веб-технологий. О том, как спроектировать, реализовать и красиво оформить интерфейс продукта 1С, в докладе на конференции Infostart Event 2021 Post-Apocalypse рассказал CTO компании WiseAdvice Олег Филиппов.

21.10.2022    4963    comol    14    

Верстка главной страницы Infostart на tailwind

WEB-интеграция Работа с интерфейсом Бесплатно (free)

Сверстал главную страницу infostart на framework tailwind css.

08.09.2022    2416    John_d    21    

.Net в 1С. На примере использования HTTPClient, AngleSharp. Удобный парсинг сайтов с помощью библиотеки AngleSharp, в том числе с авторизацией аля JQuery с использованием CSS селекторов. Динамическая компиляция Промо

WEB-интеграция Платформа 1С v7.7 Платформа 1С v8.3 Бесплатно (free)

Часто приходится парсить сайты, в том числе с авторизацией, перескакивая со страницы на страницу по ссылкам. Тот, кто занимался вэб программированием, знает, как удобно использовать JQuery и CSS селекторы. На .Net написана очень удобная библиотека AngleSharp. Я покажу, как с её помощью можно значительно облегчить себе труд.

10.03.2016    69685    Serginio    33    

Исправление ошибки подписания документов ЭЦП, выпущенной УЦ Taxcom

WEB-интеграция Адаптация типовых решений Бесплатно (free)

Исправление ошибок КриптоПро. Ошибка. Не удалось создать подпись из-за ошибки: Время ожидания операции истекло(0x80072EE2) HTTP error occurred during sending request (0xC2110100).

28.07.2022    914    Power_0N    0    

Код универсального HTTP-запроса

WEB-интеграция 8.3.14 Россия Бесплатно (free)

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

08.07.2022    2483    user1802663    13    

OneScript на страже порядка на сервере тестовых баз данных

Администрирование СУБД OneScript Бесплатно (free)

Наводим порядок на сервере тестовых баз с помощью любимого инструмента - OneScript. Находим заброшенные базы на сервере MS SQL, определяем кандидатов на удаление.

14.06.2022    1869    ardn    23    

Online телефонный справочник из 1С: Зарплата и управление персоналом Промо

WEB-интеграция Платформа 1С v8.3 1С:Зарплата и Управление Персоналом 3.x Россия Бесплатно (free)

В интернете представлено много реализаций online телефонных справочников организаций. Есть справочники, которые использует для хранения информации базу Active Directory (LDAP), есть справочники, которые реализованы с использованием СУБД (например, MySQL). Но я не нашел справочника, который использует информацию из базы 1С. Далее я рассмотрю данную разработку.

10.03.2017    28490    ruha    21    

Спецификация OpenRPC

WEB-интеграция Бесплатно (free)

Спецификация OpenRPC определяет стандартное, независимое от языка программирования описание интерфейса для API-интерфейсов JSON-RPC 2.0. Перевод общей информации и спецификации с официального сайта https://open-rpc.org/

18.04.2022    889    malikov_pro    0    

От реляционной базы данных к единой таблице DynamoDB: пошаговое исследование

WEB-интеграция Бесплатно (free)

Просто потому, что это NoSQL, это не значит, что он нереляционный. Перевод статьи по DynamoDB, которую можно применить для Yandex Database.

10.03.2022    878    malikov_pro    0    

Запуск FastAPI (Python) на Yandex Cloud Functions и Yandex Database

WEB-интеграция Бесплатно (free)

Описание прототипа для запуска HTTP API сервиса на serverless технологии с применением фреймворка.

10.03.2022    2563    malikov_pro    2    

Кэширование COM-соединения. Три способа Промо

Внешние источники данных WEB-интеграция Обмен между базами 1C Платформа 1С v8.3 Россия Бесплатно (free)

Статья о трех способах кэширования COM-соединения в 1С:Предприятии 8.x.

11.04.2013    44385    Infostart    42    

Что, Почему и Когда в дизайне с одной таблицей с помощью DynamoDB

WEB-интеграция Бесплатно (free)

Перевод статьи по DynamoDB, которую можно применить для Yandex Database.

10.03.2022    648    malikov_pro    0    

Как моделировать отношения "один ко многим" в DynamoDB

WEB-интеграция Бесплатно (free)

Перевод статьи по DynamoDB, которую можно применить для Yandex Database.

10.03.2022    787    malikov_pro    11    

Графический интерфейс для сценарного языка OneScript и дизайнер форм в придачу

Работа с интерфейсом OneScript Бесплатно (free)

Графический интерфейс расширяет возможности и область применения скриптового языка. Перед вами ещё один вариант GUI для уже широко используемого и отлично зарекомендовавшего себя инструмента автоматизации OneScript. С доступным комплектом контролов можно написать полноценное приложение, со множеством форм и диалогов. Большое внимание уделено документации, есть примеры на каждое свойство/метод. И в придачу к формам написан дизайнер форм. Без него работу над GUI считал не законченной. Всё это для того, чтобы тратить минимум усилий для получения максимального результата.

08.03.2022    2483    ahyahy    4    

Как из 1С отдать миллионы строк в BI и успеть это сделать быстро

Консолидация данных Анализ и проектирование ИТ-систем WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

На онлайн-митапе «Бизнес-анализ по данным базы 1С. Интеграция c платформами BI» выступил ведущий разработчик WiseAdvice.tech Дмитрий Фурцев. Дмитрий рассказал о том, как отдать миллионы строк из 1С в платформу бизнес-аналитики и не потратить на это сутки.

14.02.2022    4407    Fudj1k    11    

Передача сообщений из 1С в MS Teams

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Пример организации уведомлений в канал MS Teams.

09.02.2022    1885    Alex_YAM    3    

Работа с 1С через протокол OData

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

В данной статье мы будем рассматривать работу с данными информационной базы через протокол OData (далее OData).

17.12.2021    21247    ProgrammingStore    21    

Бесплатный GPS-трекинг Промо

WEB-интеграция Бесплатно (free)

Современные технологии и возможности становятся все более доступными для широких масс и повсеместно используемыми, как для частного лица, так и для мелкого и среднего бизнеса. Так и GPS-трекинг (отслеживание в реальном времени на карте местоположения водителей, курьеров, монтажных бригад, торговых представителей, детей, собак и т.п., а также просмотр статистики по их передвижениям и остановкам), становится сейчас все более востребованным сервисом, как для домашних условий, так и для предприятия. И, если крупные фирмы (например, транспортные предприятия) подписав договора с коммерческими сервисами, оплачивая своевременно счета за устройства и абонплату, эту проблему для себя решили, то это скорее подходит для крупных корпоративных клиентов. Что делать нам, простым смертным или небольшой фирме с несколькими водителями, например? Какие есть простые, надежные и недорогие решения?

05.01.2013    52884    venger    19    

Подключение к HTTP-сервису с авторизацией посредством передачи клиентского SSL-сертификата

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

В статье хочу поделиться опытом настройки подключения 1С к стороннему HTTP-сервису, использующему авторизацию посредством передачи клиентского SSL-сертификата.

07.12.2021    8395    kholkin    12    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С (Часть 2)

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Это вторая часть цикла статей, посвящённых типовому модулю интеграции 1С Предприятия и Битрикс24. Цель данной части: рассмотреть тонкости, связанные с обменом товарами и сопутствующими сущностями (спойлер - единицы измерения и свойства товаров). Также затронем некоторые нюансы связи сущностей 1С и Б24 (относящиеся не только к товарам) и их побочное влияние при переносе данных из модуля в модуль (при смене конфигурации, переустановки или обновлении модуля).

27.11.2021    5856    freegman74    15    

Web консоль управления сеансами 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

Мы дали ему название adm1c, он позволяет посредством веб доступа удалять или смотреть на сеансы в 1С базах и при необходимости удалять их. Да и что тут такого, сказали бы, есть же консоль на win, с нее же это можно делать, и все верно, но есть пара но.

26.11.2021    2930    4ernuy    16    

Организация удаленного доступа к корпоративной информационной системе — это просто ! Промо

Внешние источники данных Монитор заказов WEB-интеграция Бесплатно (free)

Хочу поделиться своим опытом создания web морды к корпоративной информационной системе на базе 1С. Необходимо организовать сбор заказов от удаленных пользователей. - Каждый пользователь видит свой набор данных, и работает со своими документами. - Доступ по логину/паролю, работа в основном с планшетов (iPad) или с десктопа. - Сервер должен находиться за пределами организации. - Себестоимость 1 пользователя не более 10$ за месяц. - Использование в основном мобильного канала связи GPRS (~100 КБ/с).

31.08.2012    29347    avhrst    13    

Безголовая (Headless) архитектура построения eCommerce

WEB-интеграция Бесплатно (free)

Обобщение материалов по безголовой архитектуре построения eCommerce.

10.11.2021    1328    malikov_pro    9    

Понимание схемы JSON (JSON Schema), часть 2

WEB-интеграция Бесплатно (free)

Перевод книги https://json-schema.org/understanding-json-schema/

09.11.2021    4683    malikov_pro    0    

Примеры тестовых сценариев Postman

WEB-интеграция Бесплатно (free)

Перевод статьи https://learning.postman.com/docs/writing-scripts/script-references/test-examples/

08.11.2021    20722    malikov_pro    0    

Необычно-экономное использование 1С:Предприятие 8 на Asp.Net-хостинге для реализации Интернет-магазина Промо

WEB-интеграция Анализ и проектирование ИТ-систем Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Статья описывает, как можно сэкономить на реализации Интернет-магазина предприятия, в который данные поступают из 1С:Предприятие 8. Данные размещаются в базе данных MSSql удаленно у хостинг-провайдера. Предлагается практический опыт гармоничной интеграции 1С:Предприятие и Asp.Net через LINQ и прямой доступ к информационной базе 1С. Строится простейшее решение, с одной стороны имеющее веб-интерфейс, а с другой стороны построенное как desktop-приложение. Тем самым достигается эффективность в наполнении веб-сайта контентом. Максимальный эффект достигается, когда Интернет-магазин проектируется «с нуля» с уникальной для предприятия структурой.

12.11.2010    43734    Elisy    13    

Тонкости и подводные камни работы типового модуля интеграции Битрикс24 и 1С

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Цель статьи - указать на подводные камни и нюансы, о которых “не пишут на заборах” и которые встретились мне за время внедрения типового модуля интеграции 1С и Битрикс24. Будет интересна для людей, кто подумывает о том, чтобы настроить интеграцию, и хотят понять, с чем столкнутся. А также для тех, кто уже работает с подобным обменом, столкнулся с какими-то из описанных ситуаций и хочет понять, что пошло не так и “как жить дальше”. Постараюсь все описать “человеческим” языком с минимальной долей терминов, так как статья, надеюсь, будет полезна не только программистам.

07.11.2021    8439    freegman74    13    

Окей, Google

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Пример интеграции Google Ассистента с 1С. В основе которого лежит платформа Dialogflow CX для понимания естественного языка.

28.10.2021    1907    Soloist    6    

Спецификация JSON:API 1.0

WEB-интеграция Бесплатно (free)

Перевод спецификации https://jsonapi.org/format/

28.10.2021    4432    malikov_pro    4    

Повышение производительности веб-сервисов. Переиспользование сеансов

WEB-интеграция HighLoad оптимизация Платформа 1С v8.3 Бесплатно (free)

Повышение производительности веб-сервисов. Переиспользование сеансов. Практическая реализация.

20.10.2021    3998    sorter1    2    

Когда интерфейсам 1С нужны веб-технологии

WEB-интеграция Работа с интерфейсом Анализ и проектирование ИТ-систем Бесплатно (free)

Есть несколько способов сделать интерфейс в 1С богаче и оптимальнее с помощью веб-технологий. О том, какие практические приемы помогут в этой задаче, на митапе «Интерфейс в 1С» рассказали руководители разработки в компании «Арбис» Матвей Серегин и Анна Гнатюк.

15.10.2021    4831    Akcium    11    

WEB/HTTP сервисы. Базовые отличия и применение на практике

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Рассказываем о WEB и HTTP сервисах, их практическом применении, о шишках, которые мы набили, и о выводах, которые сделали. Спойлер: тех, кто дочитает статью до конца, ждет бонус от автора.

04.10.2021    21071    Neti    18    

Swagger для 1С. Описание сложной структуры входящих и исходящих данных

WEB-интеграция OneScript Россия Бесплатно (free)

Анонс нового функционала 1Script пакета swagger версии 0.5.0.

04.10.2021    3744    kuleshov.x    8    

Интеграция 1С с ГИИС ДМДК

WEB-интеграция Файловый обмен (TXT, XML, DBF), FTP Платформа 1С v8.3 1С:ERP Управление предприятием 2 Ювелирная промышленность и торговля Россия Бесплатно (free)

ГИИС ДМДК - единая информационная платформа для взаимодействия участников рынка драгоценных металлов и драгоценных камней. с 01.09.21 стартовал обязательный обмен данными с Федеральной пробирной палатой (ФПП) исключительно через ГИИС. А постепенно - с 01.01.2022 и с 01.03.2022 - все данные о продаже драгоценных металлов и камней должны быть интегрированы с ГИИС. У многих пользователей возникает вопрос как автоматизировать обмен между программой 1С и ГИИС ДМДК. В настоящей статье ВЦ Раздолье поделится своим опытом о реализации такого обмена. Автор статьи - Мордовин Антон - архитектор систем на базе 1С Внедренческого центра "Раздолье".

30.09.2021    32944    1СERP    158    

Быстрое чтение составных http сообщений multipart/form-data

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Алгоритм быстрого разбора составного http сообщения multipart/form-data.

26.09.2021    2656    cherkasovvitalik    3    

Интеграция 1С с Битрикс24 через вебхуки

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Пример получения токена и http запрос к API битрикса.

15.09.2021    7218    TyurinArt    11    

Бесплатный сертификационный курс Интеграция API Яндекс.Маршрутизации и программных продуктов на базе 1С (22 сентября - 5 октября 2021 года)

WEB-интеграция Бесплатно (free)

Курс позволит получить востребованную квалификацию по работе с API Яндекс.Маршрутизации, поможет разобраться с особенностями настройки сервиса и научит реализовывать сложные операционные бизнес-схемы, чтобы быстрее интегрировать его в своей компании или на стороне клиента, снижая затраты на логистику на 10-20% и повышая маржинальность организации до 2х раз. Сертифицированные специалисты также смогут присоединиться к агентской программе Яндекс.Маршрутизации и получать дополнительный доход от продажи лицензий и проведения работ по интеграции сервиса.

13.09.2021    1775    routing    0    

Внедрение веб-клиента – взгляд изнутри программиста 1С со стороны заказчика

WEB-интеграция Бесплатно (free)

Программист 1С в компании TELS Виталий Ильинчик выступил на онлайн-митапе «Web-клиент для 1С». Он рассказал о том, с какими проблемами столкнется ИТ-отдел заказчика и как их можно предупредить. За основу взят опыт внедрения веб-кабинета поставщика на платформе vCan-Site.

10.09.2021    1892    wtlz    0    

Обмен с HTTP сервисом файлами по формату multipart/form-data

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Россия Бесплатно (free)

Потребовалось отправить картинку в теле запроса в HTTP сервис методом POST, куча реализаций, но есть маленькие нюансы, если хотя бы кому-то поможет, то уже это было не напрасно.

07.09.2021    8577    ix5s    25    

Разработка гибридного web-приложения на 1С, возможности и ограничения

WEB-интеграция Платформа 1С v8.3 Бесплатно (free)

Все чаще разработчики склоняются к использованию 1C в качестве бэкенда при разработке веб-приложений. Но благодаря встраиванию веб-клиента 1С в сайт можно получить еще больше готовой функциональности. О том, как реализовать гибридное приложение за счет связки 1С с другими веб-технологиями, рассказал разработчик компании Neti Эльдар Мингалиев.

06.09.2021    4615    Бэнни    11    

Работа с WEB-сервисами под HTTPS на примере прямого обмена между базами (1С – 1С) 

WEB-интеграция Платформа 1С v8.3 Россия Бесплатно (free)

Использование веб-сервисов 1С при обмене 1С – 1С позволяет быстро передавать достаточно большие объемы данных из базы-источника в базу-приемник в объектах языка 1С. Данный метод обмена может применяться при бесшовной интеграции между двумя базами 1С, но требует определенной серверной инфраструктуры (установленного и настроенного WEB-сервера).

03.09.2021    10355    UltraUnion2005    9    

Взаимодействие с api Честный знак (Молочная продукция)

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

Обзор основных примеров взаимодействия с Честным знаком по api для нетиповых конфигураций.

30.08.2021    10755    user5300    64    

Умная маршрутизация: о сложностях интеграции с 1С (часть 2)

WEB-интеграция Платформа 1С v8.3 1С:Управление торговлей 11 Бесплатно (free)

В статье будет много примеров кода с комментариями работы расширения для обмена данными УТ11.4 с Яндекс.Маршрутизацией через выгрузку/загрузку EXCEL файла.

27.08.2021    2595    greencactus    7    

Встраивание форм 1С на страницы сайта

WEB-интеграция Платформа 1С v8.3 Конфигурации 1cv8 Бесплатно (free)

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

27.08.2021    6762    mikepin    9