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. Жолтокнижниг 255 21.10.19 13:53 Сейчас в теме
Качественно.
Даешь swagger в 1с массы.
5. tanat74 63 21.10.19 15:51 Сейчас в теме
Большое спасибо. Очень давно искал такой механизм.
6. CodeNull 23.10.19 17:41 Сейчас в теме
Здравствуйте. Весьма годный и нужный инструмент. Но как вы сами написали, не хватает описания body для post запросов. Например, в нашем проекте post запросы это самая объемная часть, body некоторых весьма сложный по структуре (много полей и вложимость).

А что насчёт описания ответа (возвращаемое значение)?
7. botokash 374 24.10.19 05:32 Сейчас в теме
(6) Как я писал в заключении описание схемы данных, как в теле запроса, так и в теле ответа, обязательно будет в следующих релизах библиотеки. Сейчас вопрос стоит в том, как лучше сделать. Ну и конечно вопрос времени, пока занят другим проектом. Можете добавить репозиторий библиотеки на гитхабе в наблюдение, не пропустите обновление )
8. Evil Beaver 7830 10.12.19 15:19 Сейчас в теме
Столкнулся с обратной задачей - есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис. Для многих языков есть готовые генераторы классов под такую спецификацию. Может автор и для 1С сделает? Надо всего-то XML с описанием веб-сервиса сгенерировать и модуль с заглушками методов. А потом это можно в исходники 1С подложить и готово!
9. botokash 374 11.12.19 06:45 Сейчас в теме
(8) Автор с самого начала задумывался над кодогенерацией) Пока проблема с наличием свободного времени.
34. Nikola23 663 26.05.20 09:04 Сейчас в теме
(8) Дай погонять описание. Может что получится.
35. Evil Beaver 7830 26.05.20 12:46 Сейчас в теме
36. Nikola23 663 26.05.20 17:10 Сейчас в теме
(35) Вы пишите: "есть готовая спецификация API в виде OpenApi json и нужно сделать веб-сервис".
Вот ту самую спецификацию можете скинуть?
37. malikov_pro 1223 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 374 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 374 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 374 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 374 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 374 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 374 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 51 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 1282 07.09.21 15:53 Сейчас в теме
Круто. Думал уже писать, но нашёл эту крутатень!
Оставьте свое сообщение

См. также

Получаем статистику по git-репозиторию в разрезе разработчиков

DevOps и автоматизация разработки Групповая разработка (Git, хранилище) OneScript Бесплатно (free)

Итак! Представим, что наступил момент, когда разработка через исходный код реализована на предприятии в полном объеме. Мы разрабатываем в EDT или конфигураторе (но выгружаем конфигурацию в исходный код), версионируем внешние отчеты и обработки и расширения, собираем релизы, проверяем код статическим анализом, в разработке царит гармония и мир. Красота! Но менеджерам этого мало, всегда хочется чего-то еще, и вот мне прилетает задача - дай статистику по вкладу в код каждого разработчика.

13.03.2023    807    ardn    3    

23

Публикация сборки сайта через 1С

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

Демонстрация возможного сценария развертывания сайта через 1С HTTP сервис на примере сборки react-app.

03.03.2023    1929    van_za    7    

26

Пагинация в 1С

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

Те, кому приходилось делать REST API на базе HTTP-сервисов 1С, могли в какой-то момент столкнуться с необходимостью разработки методов, которые позволяли бы возвращать данные с пагинацией, т.е. последовательными порциями. В языках общего назначения пагинация реализуется простым использованием операторов OFFSET и LIMIT в SQL-запросе к базе данных. В языке запросов 1С оператора OFFSET нет, поэтому всем приходится решать эту задачу обходными способами. Один из таких обходных способов представлен в этой статье.

09.01.2023    1926    aleksei_adamov    36    

21

1С бакэнд (каталог товаров)

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

Серверная часть на 1с8 для веб каталога. Попробую поделиться опытом, как я использовал 1С в качестве веб сервера для веб витрины.

01.01.2023    1371    aldar    5    

20

Новый SimpleWEB – тот же Simple, теперь еще web

WEB-интеграция Мобильная разработка Мобильная платформа Бесплатно (free)

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

19.12.2022    2538    informa1555    9    

38

Работа с 1С:Аналитика Промо

Онлайн-курс предусматривает изучение возможностей системы “1С:Аналитика”, которая работает как составная часть платформы “1С:Предприятие” и обеспечивает оперативный просмотр и анализ необходимых данных.

4500 рублей

Прокси хранилища 1С (IIS, OneScript)

Групповая разработка (Git, хранилище) OneScript DevOps и автоматизация разработки Платформа 1С v8.3 Россия Бесплатно (free)

Избавляемся от версионной зависимости, проверяем комментарии, вызываем веб-хуки, делаем красивые пути. И все это на привычном IIS и понятном OneScript.

08.12.2022    4870    kamisov    24    

81

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

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

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

21.10.2022    6507    comol    15    

69

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

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

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

08.09.2022    2948    John_d    21    

29

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

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

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

28.07.2022    1457    Power_0N    0    

0

1СПАРК РИСКИ. Сервис оценки благонадежности контрагентов. Промо

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

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

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

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

08.07.2022    3698    user1802663    13    

23

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

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

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

14.06.2022    2193    ardn    23    

33

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

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

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

18.04.2022    1208    malikov_pro    0    

14

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

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

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

10.03.2022    1087    malikov_pro    0    

2

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

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

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

10.03.2022    3508    malikov_pro    2    

10

Распознавание и загрузка документов в 1С Промо

Универсальная программа-обработка для распознавания любых сканов или фото первичных документов в 1С (счета-фактуры, УПД, ТТН, акты и тд). Точность распознания до 98%.

от 11 рублей

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

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

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

10.03.2022    774    malikov_pro    0    

2

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

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

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

10.03.2022    966    malikov_pro    11    

3

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

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

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

08.03.2022    2895    ahyahy    4    

56

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

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

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

14.02.2022    5084    Fudj1k    11    

22

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

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

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

09.02.2022    2170    Alex_YAM    4    

24

Готовые переносы данных из различных конфигураций 1C Промо

Рекомендуем готовые решения для переноса данных из различных конфигураций 1C. C техподдержкой от разработчиков и гарантией от Инфостарт.

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

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

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

17.12.2021    30091    ProgrammingStore    26    

86

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

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

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

07.12.2021    10467    kholkin    12    

105

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

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

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

27.11.2021    8069    freegman74    16    

18

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

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

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

26.11.2021    3078    4ernuy    16    

28

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

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

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

10.11.2021    1580    malikov_pro    9    

6

Программы для исполнения 54-ФЗ Промо

С 01.02.2017 контрольно-кассовая техника должна отправлять электронные версии чеков оператору фискальных данных - правила установлены в 54-ФЗ ст.2 п.2. Инфостарт предлагает подборку программ, связанных с применением 54-ФЗ, ККТ и электронных чеков.

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

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

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

09.11.2021    6447    malikov_pro    0    

22

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

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

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

08.11.2021    31677    malikov_pro    0    

37

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

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

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

07.11.2021    11403    freegman74    13    

35

Окей, Google

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

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

28.10.2021    2102    Soloist    6    

29

Программы для исполнения 488-ФЗ: Маркировка товаров Промо

1 января 2019 года вступил в силу ФЗ от 25.12.2018 № 488-ФЗ о единой информационной системе маркировки товаров с использованием контрольных (идентификационных) знаков, который позволяет проследить движение товара от производителя до конечного потребителя. Инфостарт предлагает подборку программ, связанных с применением 488-ФЗ и маркировкой товаров.

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

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

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

28.10.2021    5780    malikov_pro    4    

17

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

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

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

20.10.2021    4591    sorter1    3    

47

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

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

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

15.10.2021    5397    Akcium    11    

63

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

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

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

04.10.2021    27109    Neti    23    

112

Видеокурс-практикум: как подготовить и написать ТЗ, ЗНР, ЧТЗ. Промо

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

3 500 рублей

Интеграция 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    36152    1СERP    159    

30

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

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

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

26.09.2021    2984    cherkasovvitalik    4    

56

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

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

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

15.09.2021    8926    TyurinArt    11    

31

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

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

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

13.09.2021    1867    routing    0    

13

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

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

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

10.09.2021    2144    wtlz    0    

9