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

25.11.19

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

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

Скачать файл

ВНИМАНИЕ: Файлы из Базы знаний - это исходный код разработки. Это примеры решения задач, шаблоны, заготовки, "строительные материалы" для учетной системы. Файлы ориентированы на специалистов 1С, которые могут разобраться в коде и оптимизировать программу для запуска в базе данных. Гарантии работоспособности нет. Возврата нет. Технической поддержки нет.

Наименование По подписке [?] Купить один файл
Шаблон http-сервиса для вашего проекта:
.zip 9,54Kb
76
76 Скачать (3 SM) Купить за 2 450 руб.
Пример мобильного приложения для http-сервиса:
.zip 344,65Kb
43
43 Скачать (1 SM) Купить за 1 850 руб.

Введение

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

См. также

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

Готовое решение для автоматической выгрузки данных из 1С 8.3 в базу данных ClickHouse, PostgreSQL или Microsoft SQL для работы с данными 1С в BI-системах. «Экстрактор данных 1С в BI» работает со всеми типовыми и нестандартными конфигурациями 1С 8.3 и упрощает работу бизнес-аналитиков. Благодаря этому решению, специалистам не требуется быть программистами, чтобы легко получать данные из 1С в вашей BI-системе.

28500 руб.

15.11.2022    20754    21    49    

38

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

Если вам нужно автоматически генерировать представления (view) к вашей базе данных 1С (есть две версии - для СУБД MS SQL Server и для PostgreSQL) по структуре метаданных 1С, то вам необходима данная обработка. Наш "Генератор View", другими словами - это коннектор к данным 1С для Power BI - незаменимый помощник для бизнес-аналитиков, работающих с базами 1С из Yandex Datalens/Power BI и т.д. Работает для обычных и управляемых форм под 1С 8.3

230000 руб.

31.07.2020    13765    13    48    

25

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

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

48000 руб.

24.04.2017    51099    101    165    

89

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

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

60000 руб.

05.10.2022    10811    13    8    

15

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

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

84000 руб.

19.08.2020    25080    23    1    

25

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

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

13200 руб.

27.12.2021    38275    108    161    

202

Сайты и интернет-магазины WEB-интеграция Системный администратор Программист Пользователь Платформа 1С v8.3 Конфигурации 1cv8 1С:Управление торговлей 11 Автомобили, автосервисы Россия Управленческий учет Платные (руб)

Интеграционный модуль обмена между конфигурацией Альфа Авто 5 и Альфа Авто 6 и порталом AUTOCRM. Данный модуль универсален. Позволяет работать с несколькими обменами AUTOCRM разных брендов в одной информационной базе в ручном и автоматическом режиме.

36000 руб.

03.08.2020    17815    19    22    

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

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

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

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

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

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

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

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

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

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

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

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

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


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


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

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

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

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

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

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

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

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

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

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

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

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


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

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

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

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

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

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

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

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

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

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

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

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

Http-сервис для обмена данными в формате JSON. Обработчики этого сервиса находятся во внешней обработке, что позволяет дорабатывать его без изменения конфигурации.
44. androgin 08.05.19 22:26 Сейчас в теме
(41) я не вырвал. я конкретно процитировал противоречие
42. WKBAPKA 215 06.05.19 08:59 Сейчас в теме
(40) если сделать расширение, то все будет гуд... я кстати, сначала подумал, что это расширение, ан нет :)
но это же не беда сделать самому ,правда? )
45. androgin 08.05.19 22:27 Сейчас в теме
(42) а потом вы еще постарайтесь его опубликовать))))
46. WKBAPKA 215 08.05.19 23:01 Сейчас в теме
(45) не пробывал, поэтому не знаю :)
кстати спасибо, как то думал с расширением. но если есть такие проблемы...
47. dsdred 3633 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 Сейчас в теме
даешь разработку на гитхаб!!?!!
Оставьте свое сообщение