Имя: Пароль:
1C
 
Как забирать по api из 1с данные на сайт?
,
0 Tarzan_Pasha
 
28.12.21
14:11
Одной из моих должностных обязанностей является настройки обменов нашего самописного сайта и различными системами, включая 1с. ранее я обходился штатными функциями выгрузки 1с через файл обмена отправляемый по http,
но сейчас возникла необходимость получать остатки в реальном времени в связи с чем прошу помощи - подскажите где есть материал по данному вопросу.

Наспамьте ссылок на статейки про работу с 1c Api и с примерами. Чтоб вытаскивать остатки, цены, товары и т.д и т.п. оттуда.
21 Kassern
 
28.12.21
15:12
(19) смысл кролика при небольшой нагрузке и объеме данных я не вижу. Это как пушкой по воробьям
22 PLUT
 
28.12.21
15:14
(17) > остальное сделают web-программисты - сам заберут данные из 1С, остальное уже не твоя проблема :-)

смешно.

в (0) это его проблема :) он и есть web-программисты, который "остальное сделают"
23 ManyakRus
 
28.12.21
15:14
(19) кролика на мясо
надо "в реальном времени", а не очередь за колбасой
24 fisher
 
28.12.21
15:15
(19) Если бы он хотя бы репликацию транзакций поднимал, то может быть. Но я зуб даю что его "в реальном времени" закончится тупой отправкой моментальных снимков по расписанию. Поэтому кролики там будут как пятое колесо в телеге.
25 ManyakRus
 
28.12.21
15:17
(22) точно, не угадал :-( кто из них кто
тогда REST api итак знают все веб-программисты(он же OData)
в 1С вообще ничё делать не надо, только 1 галочку поставить :-)
26 Tarzan_Pasha
 
28.12.21
15:18
(17)то есть никаких api на стороне 1с писать не надо? достаточно будет знания языка веб-разработки и можно вытаскивать любые данные без вмешательства в конфигурацию?
27 Kassern
 
28.12.21
15:19
(17) а что насчет безопасности? Вот будет весело, если сервис будет на внешке и логин с паролем ломанут)
28 Tarzan_Pasha
 
28.12.21
15:19
(19)кролик это хорошая тема. а по какому принципу получаем остаток товара? должно сгенерироваться какое-то событие оповещающее что остаток изменился?
29 ManyakRus
 
28.12.21
15:19
(26) да
(27) надо логиниться по апи - типа безопасность
30 Kassern
 
28.12.21
15:19
и кто будет виноват, в том, что какой-то вася, через одату данные в реальной базе ковырнул?)
31 Tarzan_Pasha
 
28.12.21
15:20
(27)ну можно же через oauth сделать авторизацию. по токену.
32 ManyakRus
 
28.12.21
15:20
(28) в REST запрос напишешь код товара который тебя интересует
и вернётся остаток по 1 товару
33 Kassern
 
28.12.21
15:20
(31) да можно что угодно сделать, только подобные вещи надо держать в уме
34 Tarzan_Pasha
 
28.12.21
15:21
(13)неудачники пользуются поиском. а нормальные люди обсуждают вопросы на форуме. Вон мне уже сколько годных проверенных рецептов дали. осталось только протестить.
35 Kassern
 
28.12.21
15:21
а не просто вышвырнуть базу во внешку и включить одату
36 ManyakRus
 
28.12.21
15:21
(31) это веб авторизуется в 1С,
а не наоборот,
в 1С нет токенов
37 Tarzan_Pasha
 
28.12.21
15:22
(35)а скажите сама база дожна где находиться? в облаке? и ведь если база в облаке то хостеры не дают ее изменять. такие как рарусовцы. как тогда быть с публикацией?
38 Kassern
 
28.12.21
15:22
(37) прочитать правила работы с облачными сервисами в плане разработки
39 Tarzan_Pasha
 
28.12.21
15:22
(36)выходит на стороне 1с надо модуль писать? можно по ip адресу + логин + пароль
40 Kassern
 
28.12.21
15:25
(39) (34) щас вам тут насоветуют по поводу безопасности)
41 fisher
 
28.12.21
15:27
(39) Напиши oauth на стороне 1С. Будет тебе респект и уважуха.
42 ManyakRus
 
28.12.21
15:32
(37) не надо её в облако,
а на любой сервер у которого есть свой внешний ip-адрес
43 PLUT
 
28.12.21
15:32
(41) двойную c смс-ками и пушами
44 ManyakRus
 
28.12.21
15:33
для 1С надо ещё установить IIS или apache
- это тоже не твоя проблема - должны сисадмины делать :-)
веб-сервер на любом компьютере у которого есть настоящий айпи
45 Kassern
 
28.12.21
15:35
(41) только вот как это спасет от ddos атаки с 100500 различных устройств? И как рабочая база будет себя чувствовать, когда сотни тысяч различных устройств к ней долбятся?
46 ManyakRus
 
28.12.21
15:36
(34) https://github.com/ManyakRus/OData
вот готовый код подключения к 1С с авторизацией, с ОДатой, С RESTом, с веб-мордой и др :-)
47 ManyakRus
 
28.12.21
15:37
(45) ddod атака ни капли не помешает работе 1С :-)
т.к. веб-сервер IIS находится на отдельном компьютере,
даже если он зависнет и взорвётся это никак не повлияет на работу 1С :-)
48 DGorgoN
 
28.12.21
15:39
(47) Ага. Вопрос в том что на сервер 1С придет 5 гугольёнов запросов.
49 Kassern
 
28.12.21
15:42
(48) поэтому мы свои сервисы только на локалке используем, благо есть такая возможность для сайта. На внешку лишь мини сервис для мобильного приложения водителей, если и взломают/заддосят, то ничего страшного не будет.
50 ManyakRus
 
28.12.21
15:43
(48) HTTP-флуд и ping-флуд и др. виды ddos атак не повлияют на 1С,
можно повлиять только если точно знать пароль и что делать для этого
но это будет уже не ddos атака а что-то другое
51 Kassern
 
28.12.21
15:48
(47) "т.к. веб-сервер IIS находится на отдельном компьютере" думаете у ТС отдельный сервер для этого?)
52 ManyakRus
 
28.12.21
15:51
(51) конечно отдельный, неотдельный совсем плохо -
IIS итак дырявый весь, через него они по всему серверу лазить начнут
53 fisher
 
28.12.21
15:54
(45) А причем тут одно к другому? Этого еще достичь нужно, чтобы под такую раздачу попасть. Ну и если нужно держать такие атаки, то просто через cloudflare работать можно.
54 Kassern
 
28.12.21
15:56
(53) я это к тому, что вываливание базы 1с во внешку, не думая о последствиях, может плохо кончится, только и всего
55 Kassern
 
28.12.21
15:57
(54) особенно юзая одату и регистрируя там все подряд, вместо точечного http сервиса.
56 ManyakRus
 
28.12.21
16:07
(55) можно разрешить доступ только для 1 ip-адреса веб сайта
Не надо искать сложных путей :-)
57 Tarzan_Pasha
 
28.12.21
16:12
(9)Я не пользуюсь поисковыми системами. Это принципиальная позиция. Однажды я хотел познакомиться с порядочной девушкой и написал в гугле "Порядочная девушка для серьезных отношений" и мне гугл выдал сайт где вместо порядочной любимой девушки была  мужеподобная женщина с огромным членом да еще и совокупляющаяся с мужиком. С тех пор я ни ногой в поисковик. Доверяю только проверенным форумам.
58 Kassern
 
28.12.21
16:16
(57) а что мешает комьюнити мисты скинуть вам ссылку на мужеподобную женщину при равном запросе?)
59 fisher
 
28.12.21
16:16
Я odata в качестве внешнего интерфейса вообще не воспринимаю. Максимум для каких-то простых интранет-штук.
Хрен с ними с вопросами безопасности - очень странная идея протекать во внешние системы всеми одинэсными абстракциями еще и ограничивая себя при этом в возможностях. Это неудобно по куче причин.
Это как писать интеграцию между системами через прямой доступ к базам другой системы. Да, можно. И сам так писал. Иногда и выхода другого нет. Но лучше, когда простые и понятные интерфейсы прописаны на границах систем.
60 Tarzan_Pasha
 
28.12.21
16:16
(58)страх быть найденным и наказанным)
61 Tarzan_Pasha
 
28.12.21
16:17
(59)а какая альтернатива? нам надо получать актуальные товары цены и остатки
62 ManyakRus
 
28.12.21
16:17
(57) а ты не доверяй тут особенно мне :-)
я ещё не видел ни одного чувака кто бы смог сделать обмен через OData :-)
это можно теоретически а практически ещё никто не сделал :-)
63 Kassern
 
28.12.21
16:21
(62) надо больше смуты навести на ТС, может все же победит детские страхи и загуглит о возможных обменах)
64 Kassern
 
28.12.21
16:23
(61) да много альтернатив, дайте сайту доступ к скулю 1с и пускай напрямую sql запросы шлет) Либо шину интеграционную поднимите с блекджеком и кроликами
65 Aleksey
 
28.12.21
16:23
(62) я видел человека который собирался так делать. Не знаю получилось у него или нет, но матюкался он сильно
66 FCM 50 t
 
28.12.21
16:24
(62) на инфостарте вроде было
67 fisher
 
28.12.21
16:25
(61) Пишешь простой http-сервис на стороне 1С с несколькими нужными тебе методами.
А если напишешь его на стороне сайта, то 1С вообще не нужно будет жопой в интернет выставлять. Будешь тупо регламентным заданием засылать на сайт чего нужно.
68 Kassern
 
28.12.21
16:26
(67) "удешь тупо регламентным заданием засылать на сайт чего нужно." но это же не реалтайм(
69 Kassern
 
28.12.21
16:26
можно конечно каждые 10сек слать, ну это такое...)))
70 Aleksey
 
28.12.21
16:27
(61) Пойми одну вещь. ТО что ты хочешь никто и никогда не делал. Поэтому вперед
71 Kassern
 
28.12.21
16:28
(70) да лааадно? Для тех же маркетплейсов есть возможность прикрутить подобный сервис, чтобы МП запрашивал остатки при заказе
72 ManyakRus
 
28.12.21
16:28
(46) запусти эту программку и будешь лазить в 1С через веб-морду как у себя дома,
с просмотром всех json которые 1С возвращает,
и сможешь сделать тестовый пример как получить остаток товара например :-)
73 DGorgoN
 
28.12.21
16:30
(49)
(50)
Оно как бы понятно. Я имею ввиду что куча запросов на сайт = куча запросов остатков. Поэтому делал всё равно бы промежуточными данными, т.е. не online а пакетами. Сиречь кроличными технологиями. Правда не понимаю зачем огород лишний лепить, есть же планы обмена и обмен в 1С.
74 fisher
 
28.12.21
16:32
А что-такое "реалтайм"? Это сколько? Реальный "реалтайм" тебе обеспечат только распределенные транзакции.
75 Конструктор1С
 
28.12.21
16:35
(61) так не делают. Напиши микросервис, за которым будет маленькая БД с остатками и ценами. Раз в сутки актуализируй 1с и БД твоего микросервиса. В БД сразу делай грамотные индексы
76 pechkin
 
28.12.21
16:36
текущие остатки хранятся в отдельной таблице. зачем еще один прокси делать?
77 Kassern
 
28.12.21
16:36
(74) реалтайм, это ты дернул сервис и получил данные, актуальные на момент дерганья. А в случае обмена по крону, их актуальность будет времени между обменами
78 pechkin
 
28.12.21
16:37
если им надо пусть сами кэшируют на клиенте
79 Tarzan_Pasha
 
28.12.21
16:38
(74)чтобы хотя бы когда заходишь в карточку товара был виден остаток. и при оформлении заказа.
80 fisher
 
28.12.21
16:44
(77) Лукавое определение. Дергание сервиса - не самоцель. Цель - репрезентация достаточно актуальных данных. Все что под капотом - несущественно.
А все что от минуты и реже - легко делается на планах обмена и регламентах со стороны 1С. Фигачить получение остатков со стороны сайта при открытии клиентом карточки товара ради того, чтобы выиграть пол-минуты актуальности? Не сталкивался с такими требованиями на практике. А доп-пауза и неактуальная доп-нагрузка при этом будет. А еще и неуниверсальность использования этих данных, так как это должен быть уровень модели данных, а не их отображения.
81 Kassern
 
28.12.21
16:48
(80) возьмем пример с оплатой заказа. При оплате запросить остатки с 1с и зарезервировать товар, при успешном ответе разрешить оплачивать, если оплата не прошла, то отменять резерв. А теперь представим, что это не на нашем сайте, а на сайте партнере, а он берет большие штрафы, при условии не предоставления товара при оплате заказа, так как страдает репутация площадки
82 acht
 
28.12.21
16:48
(7) Пашенька, а какую именно учетку у тебя угнали - Еврейчик или Tarzan_Pasha ?
83 fisher
 
28.12.21
16:50
(81) Это уже совсем другие расклады. При таком бизнес-процессе ты получением актуального остатка нифига не отделаешься. Тут уже настоящая распределенная транзакция нужна будет.
84 Kassern
 
28.12.21
16:51
(83) обычная работа с маркетплейсами
85 Kassern
 
28.12.21
16:52
но в реалиях ТС я бы не стал вообще никакой сервис поднимать, тем более попой к внешке. Для обычной торговли, план обмена и регламент, который дергает сайт и обновляет остатки
86 Tarzan_Pasha
 
28.12.21
16:53
(82)какое отношение это имеет к (0).  не надо флудить пожалуйста в умной ветке.  Все мои основные ники активны. А к старым я даже не помню емейлы для восстановления паролей. Я же использовал виртуальные временные емейлы... Сейчас мне это не нужно. Я не занимаюсь троллингом на форумах и не ругаюсь ни с кем чтоб меня потом забанили. И не поддерживаю оппозиционные партии...  А если кто меня будет обижать, я перейду на ЗОЖ, сброшу килограм 50 на оздоровительном голодании и Волшебник снова начнет за меня заступаться.
87 fisher
 
28.12.21
16:54
(84) Да. Но тут дело не показе актуального остатка. А в наличии остатка на момент оплаты. Оплата просто не должна пройти если при проведении распределенной транзакции оплаты в базе уже не оказалось свободного остатка.
88 Tarzan_Pasha
 
28.12.21
16:54
(85)к сожалению требование такое что остаток должен быть актуальным. хотя бы в карточке товара. так что при открытии карточки так или иначе придется обновлять остаток.  + раз в час к примеру обновлять все товары. Это не моя прихоть.
89 Tarzan_Pasha
 
28.12.21
16:55
и да. 5000 товаров на сайте.
90 Garykom
 
гуру
28.12.21
16:56
(80) от кол-ва и частоты дерганий зависит
если внешнее будет дергать 1С редко то пофиг
а если там будут тысячи юзеров и дергать раз в секунду то упс и да без микросервиса и промежуточной базки куда будут периодически по расписанию из 1С выгружаться никак
91 ManyakRus
 
28.12.21
16:58
скажите какую задачу вы решаете,
нужен остаток примерно (быстро) или точно(медленно)
и какая конфигурация 1С
92 pechkin
 
28.12.21
16:59
(90) вроде как переиспользование сервисов в 1с есть
93 acht
 
28.12.21
16:59
94 Kassern
 
28.12.21
17:03
(88) ну вот вы открыли карточку, там у вас остаток 50шт и в этот момент этот товар зарезервировали в базе, тогда что? Или вы страничку с карточкой не обновили и у вас инфа с момента открытия, тогда что?
95 Kassern
 
28.12.21
17:03
что для вас актуальные данные?
96 Kassern
 
28.12.21
17:11
я так и не понял, чем ТС не устраивает план обмена, где регистрируются изменения остатка и выгрузка на сайт по изменениям.  Со стороны сайта поднять сервис, 1ска в него долбится отправляя постом все изменения, сайт сразу же их обрабатывает и отображает уже измененные данные. Будете каждые 10мин отправлять изменения, столько же времени+время обработки будут у вас актуальными остатки на сайте. А где вы их выведите, это уж ваше дело, хоть в карточке, хоть в корзине и т.д.
97 fisher
 
28.12.21
17:13
(96) Ну наконец-то. Такой регламент хоть каждую минуту можно. Но 10 мин лучше конечно. Меньше нагрузка по блокировкам будет.
98 Tarzan_Pasha
 
28.12.21
17:23
(96)ну именно тем что за 10 минут много что может измениться. а надо чтоб в момент покупки остаток все равно становился актуальным. ну а в момент оформления заказа еще актуальнее. Либо чтоб когда он начал оформлять заказ чтоб товар попал в резерв.
99 ManyakRus
 
28.12.21
17:24
(96) Такой у него уже есть, написано что есть.
Нету "остатки в реальном времени".
Использовать надо оба варианта одновременно,
например:
- в списке товаров примерный остаток
- в карточке товара точный остаток
:-)
оба можно через OData
100 PLUT
 
28.12.21
17:30
(98)  какими ништяками торгуете?

в карточке товара писать: очень много, много, мало, очень мало

и градации:

если на остатке больше 1000 штук: очень много
больше 100 штук: много
больше 10 штук: мало
меньше 10 штук: очень мало

ну и за "реалтайм" остатками можно лезть в 1С редко, когда товара очень мало и когда оформление заказа из корзины происходит со всякими там "резервами", "оплатами" и прочими бонусами/купонами

во всех остальных случаях можно хоть раз в день/ раз в час обновлять?
101 PLUT
 
28.12.21
17:33
(100) ну и еще вариант, когда остатки в 1С меняются до состояния "очень мало" - "пушить" на сайт об этом
102 ManyakRus
 
28.12.21
17:49
Надо сделать кнопку "Оплатить онлайн", после оплаты проверить остаток и написать "Извините, данного товара нет на остатке, но вы можете выбрать что-нибудь другое :-)", главное деньги не возвращать,
тогда покупок станет в 2 раза больше :-)
А ещё лучше остаток 0 никогда не показывать, тогда будет ещё в 2 раза больше покупок :-)

Мы так и делали - остаток на сайте всегда был в наличии, и клиент получал свой товар через месяц, но получал :-)
103 fisher
 
28.12.21
17:49
(98) Тогда тебе на стороне 1С все равно нужен сервис - по приему заказов. Когда сайт будет пушить заказ - сервис будет проверять что остатков хватает. Если не хватает - отклоняет заказ, пушит новый остаток на сайт и говорит "меньше чухаться надо, у нас тут нарасхват". Резервировать на время оформления заказов - обойдутся. Чай не кинотеатр и не поезд. Неудобно с резервами просто. Придется еще заморачиваться периодом удержания резерва, могут быть отклонения заказов из-за перерезервирования. Оно вам надо?
104 PLUT
 
28.12.21
17:50
(102) когда нет остатка - писать "ожидается поступление"
105 ManyakRus
 
28.12.21
17:51
(104)
Зачем вам остаток ? Не надо говорить правду ато все клиенты разбегутся.
Пишите всем товарам "Есть в наличии" :-)
106 Kassern
 
28.12.21
17:51
(104) еще лучше - Удаленный склад (доставка 1-3дня) =)
107 Kassern
 
28.12.21
17:53
(105) ага, особенно на PS5 написать, что в наличии, и ценник в 50-60к еще и оплату разрешить таких заказов. Вот будет веселуха)) Покупатели будут, как обиженные дольщики, ждать пока их приставки придут
108 ManyakRus
 
28.12.21
17:55
(107) так и должно быть для прибыльного бизнеса :-)
это не мошенничество а просто задержка по срокам
109 fisher
 
28.12.21
17:56
(102) Напомнило: чем больше смс с текстом "я не лох" вы отправите на наш короткий номер, тем больше вы не лох.
110 Kassern
 
28.12.21
17:58
(108) только ничто не мешает отменить заказ и вернуть деньги, для физиков есть ограничение по времени заказов. Все это плохо закончится...клиенты не готовы несколько лет ждать товар "в наличии", вы 100% вернете бабки, а клиент больше не будет заказывать.
111 Kassern
 
28.12.21
18:01
(110) а вот есть отказаться возвращать деньги, то это уже подсудное дело и мошенничество в чистом виде
112 Kassern
 
28.12.21
18:02
(111) *если
113 Tarzan_Pasha
 
28.12.21
18:24
(100)игрушки
114 Tarzan_Pasha
 
28.12.21
18:52
(103)мне бы хотелось вообще как можно меньше с 1с сталкиваться, но при необходимости готов внести в нее доработку. только не люблю я это дело потому что сейчас не как раньше - залез в конфигуратор и сделал что хочешь. сейчас все в облаке и там даже конфигуратор не всегда дают. А еще и модерация доработок.
115 pechkin
 
28.12.21
19:16
(114) ну так найди 1сника на фрилансе
116 ДенисЧ
 
28.12.21
20:08
(115) Откуда у него деньги на фрилансера?
117 pechkin
 
28.12.21
20:42
(116) там же крутейшие проекты под нда
118 acht
 
28.12.21
22:22
(7) > являюсь совладельцем
Клянчащим решение вопросов на форуме. Какая прелесть.

Ты, Пашенька, становишся на ггггеню нашего похож. Тот, правда, фрилансером себя называет.
119 acht
 
28.12.21
22:24
А может и наоборот. Ггггеня становится близок с совладельцу чеготамутебя.
120 Tarzan_Pasha
 
29.12.21
15:47
(118)а где еще брать решения как не на форуме? форум вообще то для этого и предназначен. Или по вашему форумы нужны только для троллинга ? и да - я не фрилансер. Я бэкэнд разработчик и не занимаюсь поиском разовых подработок. я работаю над крупными проектами и оказываю консультационные услуги за большое бабло.
(115)зачем мне отдавать кому-то деньги которые лежат у меня в кармане? Если бы это была слишком сложной задачей то мы бы выделили на нее деньги. но пока нет на это оснований. Я и посложнее решал задачи.