Шаблон http-сервиса для вашего проекта

25.11.19

Интеграция - Внешние источники данных

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

Скачать файлы

Наименование Файл Версия Размер
Шаблон http-сервиса для вашего проекта:
.zip 9,54Kb
74
.zip 9,54Kb 74 Скачать
Пример мобильного приложения для http-сервиса:
.zip 344,65Kb
42
.zip 344,65Kb 42 Скачать

Введение

Доброго дня! Данный сервис получился действительно удобным и активно используется нашей командой в различных системах учета.
Основное его преимущество, как я считаю, это доработка без изменения конфигурации. Однажды добавив сервис в конфигурацию, вы больше его не изменяете, а дорабатываете внешнюю обработку, в которой и находятся обработчики http-запросов.
 
Кратко принцип работы

Итак, мы добавили наш сервис в конфигурацию и перед нами стоит задача получать в мобильном приложении (или в любом другом)
номенклатуру из нашей базы. Используемый формат запросов это JSON.

Приложение клиент должно отправлять JSON вида: 

{  
   "method":"GetGoods",
   "params":{  
      "code":"12345"
   }
}

То есть это структура со свойством "method" и свойством "params". Когда наш сервис получит этот запрос он запустит функцию во внешней обработке с именем "GetGoods" и передаст ей в качестве параметра структуру "params". 
В функции "GetGoods" у нас будет запрос, который получает номенклатуру. Таким образом, по большому счету, для получения требуемых данных мы реализуем только функцию (во внешней обработке) указанную в запросе и формируем в ней запрос во выборке данных.
 
К примеру функция GetGoods:

Функция GetGoods(Параметры)
	
	Запрос = Новый Запрос;
	Запрос.Текст = "ВЫБРАТЬ
	               |	Номенклатура.Ссылка КАК Ref,
	               |	Номенклатура.ЭтоГруппа КАК IsGroup,
	               |	Номенклатура.Наименование КАК Name,
	               |	Номенклатура.Код КАК Code
	               |ИЗ
	               |	Справочник.Номенклатура КАК Номенклатура
	               |ГДЕ
	               |	НЕ Номенклатура.ЭтоГруппа";
	
	
	Рез = Запрос.Выполнить().Выгрузить();
	
	МассивСтруктур = ТаблицаЗначенийВМассивСтруктур(Рез);
	
	Возврат МассивСтруктур;
		
КонецФункции


В такой реализации функции наш http-сервис вернет ответ со следующим JSON:

[  
   {  
      "Ref":"f93e112a-c83a-11e2-8026-0015e9b8c48d",
      "IsGroup":false,
      "Name":"Бутылка ",
      "Code":"ЦУ-00000053"
   },
   {  
      "Ref":"f93e112c-c83a-11e2-8026-0015e9b8c48d",
      "IsGroup":false,
      "Name":"Ящик ",
      "Code":"ЦУ-00000054"
   },
...

Т.е. это будет массив структур с полями запроса.

Еще один большой плюс данной разработки это отладка без участия приложения клиента.

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

Открываем нашу внешнюю обработку (в которой мы уже реализовали функцию),
вставляем наш запрос, и, вуаля, получаем данные ответа в JSON:



Ну вот. Все просто и доступно) Пользуйтесь)

Кстати, в загрузках есть пример мобильного приложения, которое получает номенклатуру и остатки из нашей базы (в примере используется УТ 11). 
 

Дополнительная информация

Внешняя обработка сервиса должна быть добавлена в базу ("Дополнительные отчеты и обработки") 

Сервис работает на конфигурациях с управляемыми формами. Использовался с УТ 11, Розница 2, Бухгалтерия 3.

Если есть потребность для конфигураций на обычных формах, пишите в комментариях - сделаем.

Последний раз тестировался на платформе (8.3.13.1513), но работает и на более ранних версиях.

В файлах поставки:

Конфигурация с http-сервисом, внешняя обработка.
Дополнительно для скачивания: пример мобильного приложения для работы с данным сервисом.

http сервис http-сервис шаблон json получение остатков по online мобильное приложение.

См. также

Перенос данных из Парус 10 в ЗГУ ред.3

Внешние источники данных Кадровый учет Файловый обмен (TXT, XML, DBF), FTP Обмен между базами 1C Платформа 1С v8.3 Сложные периодические расчеты 1С:Зарплата и кадры государственного учреждения 3 Государственные, бюджетные структуры Россия Бухгалтерский учет Бюджетный учет Платные (руб)

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 10 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

60000 руб.

05.10.2022    9159    9    8    

10

Перенос данных из Парус 8 в ЗГУ 3

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 8 учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

84000 руб.

19.08.2020    22356    18    1    

21

"Штрихкод-информер" - мобильный ТСД и прайс-чекер в смартфоне

Мобильная разработка Сканер штрих-кода Терминал сбора данных Управляемые формы Мобильная платформа 1С:Розница 2 1С:Управление нашей фирмой 1.6 1С:ERP Управление предприятием 2 1С:Управление торговлей 11 1С:Комплексная автоматизация 2.х Управленческий учет Платные (руб)

Сбор заказов, инвентаризация, проверка ценников, просмотр полной информации об остатках и ценах со смартфона Онлайн. Отправка данных со смартфона выполняется либо напрямую в открытую форму документа, отсканировав QR-код, либо в общую корзину учетной системы, не подходя к компьютеру. Кассир или оператор сможет просмотреть список присланных данных и загрузить в любую форму, поддерживающую работу с ТСД. Для работы с мобильным приложением требуется опубликовать HTTP-сервис из поставляемого расширения.

2880 руб.

03.12.2018    54439    135    102    

160

Автоматическая многопоточная выгрузка данных 1С 8.3 в БД Clickhouse и MS SQL (для работы с данными 1С в BI-системах)

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

Готовое решение для автоматизированной выгрузки данных из 1С 8.3, а также MS Excel в базу данных ClickHouse, а также в Microsoft SQL для работы с данными 1С в Yandex Datalens, Visiology, Apache Superset (и не только) - "Экстрактор данных 1С в BI". Решение отлично работает со всеми типовыми (и не только) конфигурациями 1С 8.3 для управляемых форм. Gозволяет автоматизировать работу бизнес-аналитика по ежедневной выгрузке данных из 1С в БД ClickHouse для последующей работы с этой БД в Yandex Datalens/ Система полностью автоматизирует работу с хранилищем данных в БД Clickhouse/MS SQL. Не надо быть программистом, чтобы одной кнопкой получать любые данные из 1С в Вашей BI-системе

230000 руб.

15.11.2022    12929    12    47    

28

Перенос данных из Парус 7.хх в ЗГУ ред.3

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

Обработка позволяет перенести кадровую информацию и данные по заработной плате, фактических удержаниях, НДФЛ, вычетах, страховых взносах из базы Парус 7.хх учреждений в конфигурацию 1С:Зарплата и кадры государственного учреждения ред. 3 (ЗГУ) и начать с ней работать с любого месяца года.

24000 руб.

24.04.2017    48632    96    159    

86

SALE! 25%

Что нам стоит бота построить? Нарисуем - будет жить! Графический конструктор телеграм-ботов/Telegram

Мобильная разработка Мессенджеры и боты Платформа 1С v8.3 Платные (руб)

Теперь создать telegram-бота - элементарно. Достаточно просто нарисовать блок-схему телеграм-бота, и он сразу заработает. Это возможно при использовании Графического конструктора телеграм-ботов. Это единственный конструктор ботов для telegram, чье качество и функционал подтверждены фирмой 1С, есть сертификат 1С:Совместимо. Расширение в интерактивном режиме, с помощью блок-схем, позволяет с минимальными трудозатратами создать телеграм-ботов в любой конфигурации, работающей на платформе «1С:Предприятие 8.3».

13200 9900 руб.

27.12.2021    33033    80    157    

173
Комментарии
В избранное Подписаться на ответы Сортировка: Древо развёрнутое
Свернуть все
1. dsdred 3231 04.05.19 23:08 Сейчас в теме
Опять пример с которым можно справится по OData без всяких доп обработок...
2. MarkoSokolov 134 05.05.19 07:05 Сейчас в теме
(1) Возможно) но поможет ли odata если нужно получить результаты сложного запроса с вложенными запросами и с соедиениями?
4. dsdred 3231 05.05.19 10:26 Сейчас в теме
(2)
Возможно) но поможет ли odata если нужно получить результаты сложного запроса с вложенными запросами и с соедиениями?

Не поможет. Я к тому и говорю...

Вы демострируете пример который не требует вашего решения! Простым языком "Вы не продали мне ручку"!

(3)
это не очередной велосипед типа «odata»

Я правильно понимаю что вы классифицируете odata - велосипедом?

как вернуть номенклатуру с остатками и несколькими видами цен с помощью odata

А вот такую задачу полтора года назад я кстати делал по odata.

Еще раз повторю. Демонстрация обработки это как продажа. Нужно показать ее сильные стороны, показать сложный пример который она решает. А не стрелять из базуки по мухам.

Вот и все что я хотел вам донести в первом сообщении.
oleg-m; acanta; +2 Ответить
5. WKBAPKA 214 05.05.19 11:09 Сейчас в теме
(4) oData это конечно круто, но если работать из под андроид, retrofit, как пример, ничего не знает об этом протоколе. А довольно таки удобная библиотека.
+ сервисов еще в том, что логика обработки данных на стороне сервиса скрыта и может быть любой формы сложности, а не быть ограниченной рамками спецификации конкретного протокола.
Поэтому не надо смешивать людей и коней в кучу :)
svilsa; 7OH; pbabincev; +3 Ответить
8. dsdred 3231 05.05.19 11:22 Сейчас в теме
(5)
+ сервисов еще в том, что логика обработки данных на стороне сервиса скрыта и может быть любой формы сложности, а не быть ограниченной рамками спецификации конкретного протокола.

А ограничение в объеме данных на стороне Веб-сервера не действует?

Вы суть того, что я написал не уловили.

Давайте так... Чтобы продавать мерседесы, нужно продавать мерседесы, а не демонстрировать Автоваз и говорить что мерседес это круто.
тоже самое я вот тут написал
Вы демострируете пример который не требует вашего решения! Простым языком "Вы не продали мне ручку"!

и вот тут
Демонстрация обработки это как продажа. Нужно показать ее сильные стороны, показать сложный пример который она решает. А не стрелять из базуки по мухам.


П.С. Я не против данного решения, я против такой демонстрации.
В своей работе сам использую http-сервисы, люблю их и продвигаю! Можете по моим публикациям увидеть мою к ним любовь ;))
В данный момент сам пишу универсальное решение(поспособствовала хорошая халтурка), только оно будет не через доп обработки(хотя и эту подсистему я очень люблю).
Доп обработки привязаны к БСП, а это с одной стороны плюс, а с другой минус.
10. WKBAPKA 214 05.05.19 11:27 Сейчас в теме
(8) что то я вашей логики не улавливаю про объемы данных.
Что то, что то, работает только при наличии WEB-сервера. Как раз HTTP сервис и позволит вам сделать данные более компактными, в отличии от odata.
Предложенное решение довольно таки интересное. И суть не во внешней обработке, а в том, что на вход подаешь метод, а на выходе результат. Причем, результат можно получить используя всю мощь 1С.
odata - это вообще отдельная тема
pbabincev; +1 Ответить
13. WKBAPKA 214 05.05.19 11:32 Сейчас в теме
(11) ну и что? если есть технического ограничение на объемы передаваемых данных, кто мне запрещает выполнить 10 последовательных запросов, а не 1?
Мы говорим с вами о разных вещах. У Apache немного другие настройки.
17. dsdred 3231 05.05.19 11:38 Сейчас в теме
(13)
Мы говорим с вами о разных вещах


Мы начиная с вашего (5) комментария говорим о разных вещах...

Я пытаюсь донести, что ДЕМОНСТРАЦИЯ плохая.
И поверьте я прекрасно понимаю какие плюсы и минусы в данном решении.
Для небольших проектиков оно очень даже сгодится, для серьезных вещей сыровато.
18. WKBAPKA 214 05.05.19 11:40 Сейчас в теме
(17) что там сырого?
работает да и работает. А надо будет допилить, так напильник всегда под рукой. Это же для программиста решение, а не для конечного пользователя.
20. dsdred 3231 05.05.19 11:44 Сейчас в теме
(18)Исходя из своего опыта могу сказать, что там пилить и пилить... Но для небольших задачек сгодится.
Не вижу смысла все описывать...
21. WKBAPKA 214 05.05.19 11:46 Сейчас в теме
(20) ну так автор же и не предлагает это использовать в промышленных маштабах :)
24. dsdred 3231 05.05.19 11:53 Сейчас в теме
(21)Вы издеваетесь?

Я еще раз говорю, что пример с выборкой номенклатуры - это ОЧЕНЬ ПЛОХОЙ ПРИМЕР, так как такую вещь можно сделать более простым способом нежели предложенная обработка.
И только - это мне не нравится в таких решениях, коих на инфостарт выкладывают регулярно.

П.С. ВОПРОС ИСЧЕРПАН!!!
25. WKBAPKA 214 05.05.19 11:56 Сейчас в теме
(24) а что он должен был вам предложить? :)
ну блин, это же ресурс для программистов.
А вы что, в своих фантазиях дальше выборки номенклатуры ограничены? Если вы понимаете разницу между одата и хтпп сервисом и принципами обработки информации, то сами можете догадаться, что засунуть во внешнюю обработку можно любой алгоритм, даже самый извращенный, который не снился разработчикам одаты )

и не надо так нервничать )
26. WKBAPKA 214 05.05.19 11:57 Сейчас в теме
+ человек оформил публикацию согласно правилам инфостарта :)
27. dsdred 3231 05.05.19 12:04 Сейчас в теме
(25)
а что он должен был вам предложить? :)

Мне лично ничего. Но если в аргументах идет сложная выборка, дак ее и надо было показывать в демонстрации. Логично?

это же ресурс для программистов.

В том то и дело что не только для программистов...

и не надо так нервничать )

Я не люблю переливать из пустого в порожнее
28. WKBAPKA 214 05.05.19 12:07 Сейчас в теме
(27) ну конечно, когда мы с вам о разных вещах говорим.
Мне достаточно простого примера, что бы понять основную идею - вынести во внешние обработки логику, вам же надо показать пример с 1000 строк кода.
Вы, конкретно, придираетесь к демонстрации, а не к сути решения.
И это решение сугубо для программиста, т.к. конечный пользователь с ним ничего не сможет сделать.
Designer1C; +1 Ответить
29. dsdred 3231 05.05.19 12:11 Сейчас в теме
(28)Вы допускаете, что программист освоил OData, но не освоил http-сервисы?
Или он вообще не освоил не то не другое...

Я лично допускаю такие вещи, так как провожу собеседования.
30. WKBAPKA 214 05.05.19 12:14 Сейчас в теме
(29)я допускаю, когда программист может вообще не знать, что такое OData и http-сервисы :)
если он с ними никогда не работал.

но суть вопроса я не полностью уловил.
Если мне дают что то в руки, то что я не знаю, я сначала изучаю предмет, а потом начинаю с ним работать.
Не понимаю, как можно работать с черным ящиком
31. dsdred 3231 05.05.19 12:17 Сейчас в теме
(30)
но суть вопроса я не полностью уловил.
Если мне дают что то в руки, то что я не знаю, я сначала изучаю предмет, а потом начинаю с ним работать.
Не понимаю, как можно работать с черным ящиком


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

Будут они возиться с этим черным ящиком?
32. WKBAPKA 214 05.05.19 12:21 Сейчас в теме
(31) я бы таких лодырей на работу не брал бы

я скачал конфигурацию, за 5 минут разобрался как работает.
Кстати, код очень аккуратный
33. WKBAPKA 214 05.05.19 12:23 Сейчас в теме
причем, достаточно все просто написано, без пафоса, с использованием Вычислить () :)
Если взять напильничек, то в принципе идея не плохая
34. dsdred 3231 05.05.19 12:27 Сейчас в теме
(32)
я бы таких лодырей на работу не брал бы

А кто сказал, что они лодыри?
Просто работали там где это было не нужно, ну и прокачивали что то другое.

я скачал конфигурацию, за 5 минут разобрался как работает.
Кстати, код очень аккуратный

Как они поймут, что им нужна эта разработка?
35. WKBAPKA 214 05.05.19 12:31 Сейчас в теме
(34) вы такие вопросы задаете. это вообще то их проблемы. Для меня такие вопросы дикость. Я когда ищу инструмент для решения вопроса, пишу его или сам или, если не хватает квалификации (например, в Android) ищу нужную библиотеку.
А потом читаю и эксперементирую. Тем более, если это бесплатная библиотека. А тут вам бесплатно, да еще и руководство по использованию предоставь :)
странные у вас программисты работают
36. dsdred 3231 05.05.19 12:38 Сейчас в теме
(35)Вот этим отличается программист от продавана.

Но лучше когда программист умеет себя продать!
Продажа ручки, просто и наглядно
37. WKBAPKA 214 05.05.19 12:42 Сейчас в теме
(36) согласен.
Но я все же исповедую из опыта другую концепцию - разделение труда.
Программист должен хорошо программировать, а продаван должен продавать.
В мире отличном от 1С все так и организовано. Есть тупо кодеры, есть менеджеры проектов, есть дизайнеры. А в 1С все в куче, поэтому многие решения кривые :)
Dempingator; acanta; +2 Ответить
38. acanta 05.05.19 13:39 Сейчас в теме
(35) в этом то и проблема. Вопрос это уже половина ответа. Не продать решение имеющегося вопроса это значит не выполнить свою половину работы.
39. WKBAPKA 214 05.05.19 13:42 Сейчас в теме
(38) автор публикации ничего не продает, а дает возможность пользоваться своим решением.
А вы для себя сами принимаете решение, использовать его в своих задачах или нет.
Я смотрю такие решения в поисках не стандартных подходов.
19. WKBAPKA 214 05.05.19 11:42 Сейчас в теме
(17) взяли затулили один веб сервис, а реализацию сам себе пиши во внешних обработках такую какую хочешь. Как по мне так не плохо. Мне из скринов, все устроило, все понравилось и я лично понял зачем мне это надо.
22. dsdred 3231 05.05.19 11:48 Сейчас в теме
(19)
Я о том и говорю Вы поняли, я понял. А почему?
Потому, что опыт есть.
Вас это решение устраивает полностью. Качайте и пользуйтесь.
Меня не устраивает, у меня задачи серьезнее и на данный момент более серьезный инструмент уже наработал.

Минусы перечислять не буду, но плюсы есть не спорю.
23. WKBAPKA 214 05.05.19 11:50 Сейчас в теме
(22) так я ж не спорю :) под каждую задачу свое решение
3. ltfriend 951 05.05.19 08:29 Сейчас в теме
(1) вот именно, что это пример. Только это не очередной велосипед типа «odata», а реализация удаленного вызова процедур RPC, если более конкретно, то JSON-RPC. И реализовать можно что угодно, хоть получение данных (как вернуть номенклатуру с остатками и несколькими видами цен с помощью odata, особенно если сторонняя система требует формат json с определенной структурой?), так и запись данных и/или их доп обработку.
MarkoSokolov; +1 Ответить
6. WKBAPKA 214 05.05.19 11:14 Сейчас в теме
(3) да сравнивать протокол odata с мощью платформы 1С как то странно :)
odata решает вопросы интеграции сторонних систем, которые ничего не знают об 1С. Это ее преимущество. Возможность удаленно не только получать данные, но еще и удаленно их менять. А для решения обмена данными между мобильными устройствами и сервером, HTTP-сервис имеет значительные преимущества, т.к. позволяет подготовить данные в нужном виде и нужного объема.
7. acanta 05.05.19 11:17 Сейчас в теме
(6) о каких сторонних системах идёт речь? Может ли программист 1с посмотреть как происходит процесс на их стороне?
Или что он должен знать и чего не должен знать?
9. WKBAPKA 214 05.05.19 11:23 Сейчас в теме
(7) например, Power BI
да в принципе, о любой системе, будь то какой нибудь интернет-магазин или учетная система.
Программисту 1С вообще ничего не надо знать, он дает лишь описание объектов и как с ними работать.
14. acanta 05.05.19 11:32 Сейчас в теме
(9) т.е. в этом случае вопрос зачем вообще они нужны не обсуждается?
15. WKBAPKA 214 05.05.19 11:35 Сейчас в теме
(14) кто они и что значит нужны?

я уже объяснил, ODATA и HTTP-сервис используют разную парадигму. Это как палец с пятой точкой сравнивать.
12. WKBAPKA 214 05.05.19 11:30 Сейчас в теме
а сильная сторона, то что я могу, как программист 1С, получить все.
А вот через odata далеко не все и в том виде, в котором мне надо.

а у odata одна сильная сторона, там не нужен программист 1С :) и сам протокол позволяет манипулировать данными на стороне самой 1С.
Что автор должен вам показать из примера, что бы вас впечатлило? Сама возможность управлять процессом, это уже одна из сильных сторон )
16. WKBAPKA 214 05.05.19 11:38 Сейчас в теме
например, я из Power BI могу получить данные из любого справочника или регистра. Мне ничего не надо знать про 1С, кроме как называется объект в системе к которому я обращаюсь и как составить правильный запрос ODATA
40. androgin 05.05.19 20:20 Сейчас в теме
...без изменения конфигурации...

Итак, мы добавили наш сервис в конфигурацию...

противоречия одни )))
41. MarkoSokolov 134 06.05.19 05:53 Сейчас в теме
(40) Вы вырвали слова из контекста.

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации.
44. androgin 08.05.19 22:26 Сейчас в теме
(41) я не вырвал. я конкретно процитировал противоречие
42. WKBAPKA 214 06.05.19 08:59 Сейчас в теме
(40) если сделать расширение, то все будет гуд... я кстати, сначала подумал, что это расширение, ан нет :)
но это же не беда сделать самому ,правда? )
45. androgin 08.05.19 22:27 Сейчас в теме
(42) а потом вы еще постарайтесь его опубликовать))))
46. WKBAPKA 214 08.05.19 23:01 Сейчас в теме
(45) не пробывал, поэтому не знаю :)
кстати спасибо, как то думал с расширением. но если есть такие проблемы...
47. dsdred 3231 26.05.19 20:28 Сейчас в теме
(45)В чем проблемы с публикацией http-сервиса в расширении?

Вот один из примеров, проблем не наблюдал -> Мобильный клиент + HTTP Сервис + Расширение конфигурации
43. it@contlog.ru 08.05.19 12:41 Сейчас в теме
в примере не хватает планов обмена и процедуры фонового обмена. Для масштабирования это было-бы полезно.
eeeio; dsdred; WKBAPKA; +3 Ответить
48. arti4k 28.11.20 23:38 Сейчас в теме
даешь разработку на гитхаб!!?!!
Оставьте свое сообщение