Вход | Регистрация
 
1С:Предприятие :: 1С:Предприятие 8 общая

WEB-Сервис - как можно организовать обмен данными без файлов?

WEB-Сервис - как можно организовать обмен данными без файлов?
Я
   slafor
 
06.08.21 - 17:00
Есть веб-сервер. Сама 1С может запускаться в веб-клиенте. Но этого не нужно, нужно организовать обмен с Битриксом, а именно загрузку оттуда данных по товарам, по счетам и пр. Стандартная обработка обмена наоборот, из 1С выгружает в CRM.
Можно ли это как-то организовать без файлов, а напрямую? Например, у меня есть веб-сервис, из приходят данные - ну, скажем, по товарам, загружаются в 1С, и отправляется ответ - мол, все загружено.
Где можно почитать на эту тему, желательно с примерами?
   slafor
 
1 - 06.08.21 - 17:02
+ (0) "из приходят данные" = "из CRM приходят данные"
   Kassern
 
2 - 06.08.21 - 17:03
(0) Post запросы вам в помощь
   Мигрень
 
3 - 06.08.21 - 19:45
(0) а битрикс-программист у вас есть? Тогда можно начинать разговор о rest сервисе, а пока рано.
   Курцвейл
 
4 - 06.08.21 - 19:52
(0) Используйте Json
   slafor
 
5 - 06.08.21 - 20:18
(4) JSON - это как-то файлы передавать надо?
   Мигрень
 
6 - 06.08.21 - 20:37
(5) json - это http сервис. Книжку про http сервисы ты почитаешь и когда-нибудь освоишь, а на том конце, на битриксе, кто клиента поднимет, Пушкин?
   Kassern
 
7 - 06.08.21 - 22:35
(6)  "json - это http" ну такое себе определение) json это всего лишь формат обмена данными, как xml и тому подобное. а вот как его передать это уже другой вопрос. Можно и файл записать и отправить, а можно и в теле запроса передать.
   slafor
 
8 - 07.08.21 - 14:41
(3) Битрикс-программист есть. Он пишет скрипты для Битрикса.

Но тут вот какая задача. Мне надо сделать обмен на стороне 1С. Как я уже понял, знание одних только WEB-сервисов тут недостаточно, придется познакомится и с HTTP-сервисами. В общем-то давно этого хотел, просто реальной задачи не было.

Но есть ряд вопросов, не ответив на которые, я не могу начинать.

1. Я работаю по RDP, на сервере Windows Server 2012, где похоже и SQL-сервер стоит. То есть база будет на этом же компьютере. Чтобы установить рабочий WEB-сервер для 1С, надо, чтобы он был на этом же компьютере, правильно? Иначе я не смогу опубликовать ни базу, ни веб-сервисы. Но этот компьютер находится в локальной сети, и доступа извне на него, естественно, нету и не должно быть. А CRM 1С-Битрикс находится на другом компьютере и в другой локальной сети. Скрипты тоже.  Как же они будут оттуда обращаться к моему веб-сервису?
2. Мне нужно организовать прием информации в формате JSON на стороне 1С, причем инициатором этих выгрузок будет именно Битрикс. Потом я должен буду прочитать эту информацию, загрузить ее в 1С - в справочники Номенклатуры, в документы Счетов и Реализаций, причем сравнивать эту информацию с той, что уже имеется в базе - вот это как раз самая простая часть для меня, с этим я точно справлюсь без всяких проблем. А потом я должен отправить ответ на сторону Битрикса о том, что все получено и успешно загружено.

Вот, в принципе, и все. Подскажите, пожалуйста, с чего начать, и где можно достать побольше информации на эту тему. Спасибо.
   Kassern
 
9 - 07.08.21 - 16:43
(8) зачем тебе что то опубликовывать??? сами по себе объекты конфигурации http/web сервисы тебе ни к чему, если только ты не хочешь, чтобы битрикс сам к тебе долбился
   Kassern
 
10 - 07.08.21 - 16:44
(8) все что тебе надо изучить так это Содениение=Новый HTTPСоединение
   mistеr
 
11 - 07.08.21 - 18:18
(8) >я должен буду прочитать эту информацию, загрузить ее в 1С - в справочники Номенклатуры, в документы Счетов и Реализаций

А кто решил, что первоисточником информации должен быть именно Битрикс и из каких соображений? Обычно все наоборот, и это не просто так.
   slafor
 
12 - 07.08.21 - 18:40
(11) Таки так решил заказчик, и это же в ТЗ ) .

Я знаю, что обычно наоборот. И что из 1С гораздо легче достучаться до CRM Битрикса, чем наоборот. Собственно, для этого и писать-то ничего не надо - все уже есть в типовых обработках обмена.
   mistеr
 
13 - 07.08.21 - 18:56
(12) Таки из каких соображений?

Надеюсь из веских, не ради банальной экономии на лицензиях для продажников?
   slafor
 
14 - 07.08.21 - 19:04
То, что для того, чтобы реализовать обмен "без передачи файлов", придется использовать http-сервисы, я уже понял. Вопрос в другом.
Получается так, что: скрипт на Битриксе должен иметь возможность "достучаться" до 1С. 1С недоступна из внешней сети, значит, просто так он этого сделать не сможет.
Можно, конечно, создать в 1С фоновое задание, прописать его в общем модуле и периодически обращаться к Битриксу с одним и тем же вопросом: "не готова ли новая порция данных для меня? если готова, то скиньте, пожалуйста" и в ответе принимать новую порцию данных, если таковая имеется.
Да, и здесь еще один вопрос - я-то до CRM "достучаться" смогу, а вот как я ответ принимать буду, если я нахожусь в локальной сети? Хотя тут я, честно говоря, просто не знаток, но прекрасно понимаю, что это возможно - браузеры-то работают, и данные получают )
В общем, наверное показал свое полное незнание http-сервисов. Сегодня займусь изучением, благо время и курс есть...
   slafor
 
15 - 07.08.21 - 19:11
(13) А при чем тут лицензии? Ну будет у продажников стоять своя 1С, а как они достучатся до SQL-базы, которая находится в другой, закрытой сети?
   DES
 
16 - 07.08.21 - 21:28
(15) откроешь и пробросить порты 1с. так и достучатся
   slafor
 
17 - 07.08.21 - 21:32
(16) То есть придется дать этому компьютеру внешний IP и просто настроить порты?
   DES
 
18 - 07.08.21 - 21:34
(17) а можешь прямо в sql сервер гадить.
   DES
 
19 - 07.08.21 - 21:35
(17) заведи там свои таблицы, а потом уже 1с разбирай. это и безопасность повысит
   NetFix
 
20 - 08.08.21 - 08:28
Есть такая штука, называется VPN, на сервере должен быть белый айпи и проброшен в инет один порт, собственно VPN сервера, а потом какой хочешь обмен настраивай, хочешь - с файлами, хочешь - без.
   mistеr
 
21 - 08.08.21 - 09:19
(15) Ты не понял. "Обычно наоборот" выглядит так. Продажники регистрируют номенклатуру, заказы и прочее в 1С, а потом они выгружаются в Битрикс. Первоисточник данных - 1С.
   Сергиус
 
22 - 08.08.21 - 14:23
(0)Если нужно в таком виде(чтобы запрос шел от Битрикс к 1с), то придется на вашем внешнем роутере делать переадресацию на внутренний порт настроенного веб-сервера(на котором опубликован http-сервис 1с). Ну еще возможно придется разрешить на самом компе, где стоит веб-сервер, запросы к 80-му порту. А дальше уже дело техники, написать нужный код самого сервиса, чтобы отдавал вам данные(или даже получал что то)
   slafor
 
23 - 08.08.21 - 16:28
(22) Спасибо, вот это, похоже, самый дельный совет. Правда, учитывая их строжайшую "политику безопасности", они еще триста раз подумают, прежде чем это сделать...

А если делать http-сервис с запросом от 1С к Битриксу, а в качестве ответа получать поток JSON-данных (ну или ответ что "не было изменений"), надо будет что-то менять в настройках, или и так прокатит?
Запрос к Битриксу можно делать хоть каждые пять минут, фоновым заданием.
   Kassern
 
24 - 09.08.21 - 09:07
(23) у вас походу нет понимания http/web сервисов... Вот скажите, зачем вам http сервис, чтобы делать запрос из 1с к битриксу? Создавая Http сервис, вы наоборот делаете доступ к своей базе. Поймите уже, если у вас весь учет ведется в 1с, а сайт нужен лишь для оформления заказов, то источником должна являться 1с! Посмотрите как модуль битрикс для 1с организован и как происходит выгрузка, никаких http/web сервисов, есть регламенты по которым собираются данные в нужном формате и пакетами шлются на сайт. Не хотите файлы, ок суйте все в тело запроса. Только у вас в случае чего не будет бекапа того, что вы отправляли. Файлы удобны тем, что можно без помощи 1с, просто скинуть повторно файл для загрузки, или посмотреть логи по ним что и как грузилось. А теперь можете мне объяснить зачем вы делаете обмен наоборот?
   Antony8x
 
25 - 09.08.21 - 09:30
(0) Если не нужна валидация входящих данных, HTTP сервис используйте, ресурс битрикса будет отсылать POST запросы. Так в разы быстрее будет.
   Kassern
 
26 - 09.08.21 - 09:36
(25) быстрее по сравнению с чем? А нагрузку на 1с думаете ТС расчитал?) Мы же не знаем какой у него сайт и сколько таких запросов с какой периодичностью будет.
   Сергиус
 
27 - 09.08.21 - 15:07
(23)Если все-таки делать запросы из 1с к сайту, то для этого http-сервис и не нужен, как было сказано в (24). Поэтому тут нужно сначала самим решить какую схему работы применять.
   Мультук
 
28 - 09.08.21 - 15:28
(0) Сама 1С  - это некая 1С в вакууме или конкретная конфа ?

P.S.
Готовые интеграции Битрикс (о качестве/количестве/стоит/не стоит - другой вопрос)

https://1c.1c-bitrix.ru/intranet/download.php

P.P.S.

Битрикс или Битрикс24
   slafor
 
29 - 10.08.21 - 09:30
(28) Битрикс 24. На xxx.binrix24.ru


Список тем форума
 
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.