|
Обмен Альфа-Авто с КА2 (ERP): что лучше использовать WEB или HTTP сервис вместо COM? | ☑ | ||
---|---|---|---|---|
0
Mikhail Volkov
06.01.20
✎
09:29
|
Долгое время работали в КА1/УПП через Com-обмены, но прошло время переходить на КА2 (ERP). Начались проблемы Службы компонентов: возможно ли создать обертку OLE соединения V83.Application. Думал это временно, пока Альфа-Авто не работает выше 8.3.10. Но вышла Альфа-Авто 6, которая вроде как работает на 8.3.14.1779, но только на 32-разрядной https://rarus.ru/forum/messages/forum7/topic13797/message85579/#message85579. Посмотрел Альфа-Авто, еще со времен 4 версии (на 8.2) в Web-сервисе какой-то Web-сервис планировщика, а HTTP-сервис пустой. Ни тем ни другим никогда не занимался. Что посоветуете?
|
|||
39
AAA
07.01.20
✎
12:18
|
Совсем недавно тоже впервые влез в эту сферу из-за проблем c application. Были 2 обработки на 7.7. одна передает один документ в бп3.0,другая выбирает из БП остатки и обороты по банковским счетам. Сделал в расширении 2 http сервиса. Для первого готовлю своими силами документ в json строке, в БП она штатно превращается в структуру , ну и создаю или переписываю требуемый документ, включая создание справочников.для второго сервиса посылаю только период, а обратно получаю в виде стjson строки массив массивов. Строка парсится (нашел в инете обработку для 7.7) и получаю вложенные списки значений. Ну вот и все в общих чертах. Мнение, что web сервис перспективнее и круче спорно, из того, что я читал, все как раз наоборот. Но я могу ошибаться
|
|||
40
Garykom
гуру
07.01.20
✎
12:19
|
(35) Там простейше ЗаписатьJSON и ПрочитатьJSON
http://1clenta.ru/pattern/125 |
|||
41
AAA
07.01.20
✎
12:21
|
Делал сначала все именно на локальном компе, поднимал и iis и аппаче. Работает и там и там. Работает быстро. В реальную эксплуатацию пойдет после праздников.
|
|||
42
Mikhail Volkov
07.01.20
✎
18:21
|
(36) > Поднимаешь Апач (если не хочешь геммороя) и IIS в обратном случае. И делаешь в своей АльфаАвто WEB сервис Ping() Код см выше.
А для чего Ping(), чтобы что-то было для публикации WEB сервиса? В Альфа-Авто уже есть Web-сервис планировщика, пробовал его публиковать на IIS (может из-за него): https://jpegshare.net/c7/4c/c74ccbc41743754ffc6e7aab7973e605.jpg.html, после проверить в браузер в таком формате: http://<имя сервера>/ws/<ИмяФайлаВебСервиса>.1cws?wsdl, и в результате: Ошибка HTTP 404.0 - Not Found!? Запрашиваемый URL-адрес: http://perseus:80/ws/TimePlanner.1cws.1cws?wsdl Что-то ни так делаю? |
|||
43
ДенисЧ
07.01.20
✎
18:29
|
||||
44
Mikhail Volkov
07.01.20
✎
18:57
|
(43) <имя сервера> PERSEUS, <ИмяФайлаВебСервиса> TimePlanner.1cws - что подозрительно?
|
|||
45
ДенисЧ
07.01.20
✎
18:58
|
(44) вот это
TimePlanner.1cws.1cws |
|||
46
ДенисЧ
07.01.20
✎
18:58
|
Ничего не видишь?
|
|||
47
ProxyInspector
07.01.20
✎
23:28
|
Делай свой WEB сервис, чтобы не заморачиваться с Рарусом. А Ping() первая функция твоего сервиса. Ошибиться в ней сложно. А подключение и работоспособность сервиса сразу видно.
|
|||
48
Mikhail Volkov
08.01.20
✎
08:33
|
(46) Строку проверки WEB-сервис на сервере http://<имя сервера>/ws/<ИмяФайлаВебСервиса>.1cws?wsdl не придумывал, взял с https://programmist1s.ru/web-servisyi-v-1s/, и <имя сервера>, <ИмяФайлаВебСервиса> какие встали в Альфа-Авто по умолчанию - что-то ни так, что? Возможно сам WEB-сервер не работает на IIS. Помню, когда появилась УТ11 хотел пересадить пользователей с традиционного терминала на WEB-сервер, долго с IIS мучился, заработал, но не помню как...
(47) Как проверить? |
|||
49
ДенисЧ
08.01.20
✎
10:06
|
(48) Ой, ты не понял. ОЧЕНЬ внимательно посмотри на то, что я выставил... ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ-ОЧЕНЬ...
|
|||
50
ProxyInspector
08.01.20
✎
11:37
|
(49) Что ты мозги пудришь человеку? У него и так стресс. в строке подключения два раза написано .1cws
Я один раз пол дня убил у меня было вместо ".1cws" написано ". 1cws" |
|||
51
ДенисЧ
08.01.20
✎
11:40
|
(50) Если не будет внимания, то не будет и понимания...
|
|||
52
ProxyInspector
08.01.20
✎
11:42
|
Первый раз очень сложно сделать шаг. Сплошное недоверие к новым "плюшкам" от 1С
|
|||
53
Garykom
гуру
08.01.20
✎
12:12
|
(52) Когда сложно сделать шаг (причем не только первый) может быть надо шагать в другую сторону?
Или перестать ходить пешком и сесть на автобус или такси? Да это платить надо в отличие от пешкаруса. |
|||
54
Mikhail Volkov
08.01.20
✎
12:53
|
(50) ".1cws" - это расширение <ИмяФайлаВебСервиса>, один раз надо. Пробовал, тот же результат: Ошибка HTTP 404.0 - Not Found. А в остальном правильно?
|
|||
55
ProxyInspector
08.01.20
✎
14:20
|
(54) А кто его знает. У тебя как минимум две ошибки на старте.
1. Ты используешь IIS 2. Рарусовский сервис. Добавь свой. И не парься. |
|||
56
ProxyInspector
08.01.20
✎
14:21
|
(53) Зачем платить? Не боги горшки обжигают. Все как и (0) прошли по этому пути.
|
|||
57
Mikhail Volkov
08.01.20
✎
14:47
|
(55) Когда-то веб-сервер на IIS у меня работал на 2008R2, но не помню как настраивал... Сейчас читаю Настройка IIS на сервере http://catalog.mista.ru/public/295921/ (что-то начал вспоминать), вроде все делаю как написано: Для их установки следует перейти "Пуск - Панель управления - Программы и компоненты - Включение или отключение компонентов Windows". В появившемся дереве, в ветке "Службы IIS – Службы интернета - Компоненты разработки приложений" отметить все компоненты, как показано на рисунке. Вместо этого попадаю в Диспетчер сервера. Как попасть в окно "Включение или отключение компонентов Windows" с веткой "Службы IIS"?
|
|||
58
ProxyInspector
08.01.20
✎
14:58
|
При IIS не скажу, но наш админ сильно ругался пока не снес его. На Апаче мы нарывались на проблему x64. Тонкость там в том, что разрядность Аппач должна соответствовать рязрядности 1С Клинта. Т.е. если у тебя клиент(именно клиент а не сервер) x64, то и Апач должен быть х64. Иначе они друг друга не понимают.
Наш админ не смог добиться стабильной работы IIS c WEB сервисами |
|||
59
Garykom
гуру
08.01.20
✎
16:56
|
(58) Не клиента а сервера 1С или точнее платформы 1С.
Тонкий клиент 1С работающий через веб-сервер может иметь любую разрядность, хоть 128 бит когда придумают или 16 бит если кому то в голову такое придет. |
|||
60
Garykom
гуру
08.01.20
✎
16:58
|
Стабильная работа IIS вполне возможна, но там куча проблем что нужна правильная его версия под версию платформы 1С.
Все тоже самое что и с апачем, сначала был 2.0 и 2.2 сча только 2.4, а вот будущий 2.5 пока не поддерживается. |
|||
61
Mikhail Volkov
08.01.20
✎
17:03
|
+ (60) Сейчас версия IIS 7.5. Из справки:
Установка служб IIS 7.5 в Windows Server® 2008 R2 Использование пользовательского интерфейса 1. Нажмите кнопку Пуск, укажите Администрирование, а затем выберите Диспетчер сервера. 2. В разделе Сводка ролей выберите Добавить роли. 3. Воспользуйтесь мастером добавления ролей, чтобы добавить роль веб-сервера. Важно! При использовании мастера добавления ролей для установки служб IIS установка происходит по умолчанию, то есть с минимальным набором компонентов. Если требуются установить дополнительные роли служб IIS, такие как Разработка приложения или Проверка работоспособности и диагностика, не забудьте установить флажки, связанные с этими компонентами, на странице Выбор служб ролей данного мастера. Жму "Добавить роли", получаю https://jpegshare.net/45/7c/457c562277e57209a73fc0bbc7b869a4.jpg.html Веб-сервер (IIS) Установлено. Активна лишь кнопка Отмена. Ничего не добавить. Какие "не забудьте установить флажки, связанные с этими компонентами, на странице Выбор служб ролей данного мастера" имеют ввиду? |
|||
62
Garykom
гуру
08.01.20
✎
18:05
|
(61) 1. В каком году вышла IIS 7.5 ?
2. В каком году вышла 1С 8.3.14? 3. Сравните и подумайте немного логически Для версии 1С которую используете берите самую новую из вышедших перед этим IIS. |
|||
63
Garykom
гуру
08.01.20
✎
18:05
|
Последняя 1С с апачем даже 2.2 уже не контачит, не то что 2.0
|
|||
64
Mikhail Volkov
08.01.20
✎
18:15
|
(62) Когда IIS настраивал 8.3 еще не было...
|
|||
65
Garykom
гуру
08.01.20
✎
18:19
|
(64) А какую 1С то настраивали?
И возьмите уже нормальный детальный мануал типа http://tavalik.ru/nastrojka-veb-dostupa-k-bd-1spredpriyatie-na-iis/ http://catalog.mista.ru/public/275820/ http://catalog.mista.ru/public/960387/ https://xn--90afdtkhdeabaxvge.net/1c-doc/publikaciya-1s-dokumentooborot-iis.html https://wiki.rtzra.ru/software/1c/1c-iis-setup |
|||
66
Garykom
гуру
08.01.20
✎
18:26
|
(65)+ Ну и возьмите виртуалку, воткните туда чистую винду, поставьте 1С и попробуйте.
Запросто траблы могут быть в кривой винде или каких то правах урезанных |
|||
67
ProxyInspector
08.01.20
✎
20:49
|
(59) Самое интересное, что не сервера а клиента. Сервер по определению х64 а вот версия клиента должна соответствовать версии Апача.
|
|||
68
Garykom
гуру
08.01.20
✎
21:31
|
(67) Лечиться вам надо.
Веб-сервер и модуль расширения веб-сервера должны быть одной разрядности, ибо бинарные вызовы функций из dll. Между веб-сервером (апача или иис) и тонким клиентом связь идет по http - глубоко похрен на разрядность. Неоднократно ставил клиентам x86_64 апач и x86_64 1С (файловую или сервер), а тонкие клиенты 1С даже в смешанном режиме прекрасно пашут, на некоторых компах в сети бывает x86 (32 бит) винда и туда никак 64 битную 1С не вставить и все прекрасно работает. |
|||
69
ProxyInspector
09.01.20
✎
00:24
|
А разрядность модуля расширения WEB cервера по умолчанию при установке ставится такой же как и разрядность клиента. Может отсюда и растут мои проблемы. Это не принципиально, просто это одна из причин, по которой WEB сервисы могут не работать
|
|||
70
Mikhail Volkov
09.01.20
✎
09:46
|
(65) За ссылки конечно спасибо, но не помогли они мне посмотреть/до установить компоненты Windows. По первой ссылке об этом ни слова, но выставил "Разрешены 32-разрядные приложения". По 2-й ссылке просто сказано: "Установка IIS выполняется стандартными средствами. Набор достаточных компонент приведен на скриншоте" без объяснений как туда попасть. На 3 и 4-й ссылках даже на рисунках показано, что через "Включение или отключение компонентов Windows", но я у себя попадаю в Диспетчер сервера, далее (61). В http://catalog.mista.ru/public/960387/ даже приводятся галочки, которые нужно до установить:
- "Внедряемое веб-ядро службы IIS", - В разделе "Службы IIS" - "Компоненты разработки приложений" ставим галки "Расширение ISAPI" и "Фильтры ISAPI" - В разделе "Службы IIS" - "Средства управления веб-сайтом" ставим галку "Консоль управления IIS" Мне лишь остается гадать: установлены ли они. |
|||
71
Mikhail Volkov
09.01.20
✎
15:53
|
(65) К вашему списку добавлю http://catalog.mista.ru/public/295921/. Правда в ней отличается список галочек до установки "Службы IIS". Например, "Компоненты разработки приложений" помечены все, а про "Внедряемое веб-ядро службы IIS" и "Консоль управления IIS" ни слова.
|
|||
72
Necessitudo
09.01.20
✎
16:17
|
Мне вот интересно, зачем человеку советовать web-сервисы, которые уже считаются говном мамонта? HTTP-сервисы сейчас дефакто стандарт.
|
|||
73
Garykom
гуру
09.01.20
✎
16:27
|
(72) Потому что web-сервисы или работают правильно или нет, а с http-сервисами криворукий разраб такого навертит не подумав что лучше пусть по прежнему COM юзает
|
|||
74
palsergeich
09.01.20
✎
16:27
|
(72) Не считаются.
|
|||
75
Garykom
гуру
09.01.20
✎
16:28
|
(73)+ Но согласен что http и rest де факто давно стандарт и намного проще в реализации и легковесней
|
|||
76
Garykom
гуру
09.01.20
✎
16:29
|
(74) Смотря где, сча уже и энтерпрайз переходит на http-сервисы вот вся маркировка там взяли старый xml изврат и завернули в интерфейсный уровень http c json.
Короче xml шифруется в строку и вставляется в json, который по http отправляется |
|||
77
palsergeich
09.01.20
✎
16:30
|
(76) И это прогресс?
|
|||
78
Mikhail Volkov
09.01.20
✎
17:00
|
(72) Чтобы HTTP-сервис работал WEB-сервер нужен?
|
|||
79
Garykom
гуру
09.01.20
✎
17:02
|
(78) Поставь 1С 8.4 там не нужен (встроено)
|
|||
80
Necessitudo
09.01.20
✎
17:09
|
(78) Нужен.
|
|||
81
Necessitudo
09.01.20
✎
17:10
|
(73) А что ему мешает тоже самое навертеть с SOAP?) Обработчики есть и там и там.
|
|||
82
Mikhail Volkov
09.01.20
✎
17:35
|
Окно "Включение или отключение компонентов Windows" стало доступным после удаления роли Веб-сервер (IIS). Точнее не окно "Включение или отключение компонентов Windows", а это https://jpegshare.net/db/8b/db8ba16247a22e8119460d94fae8b9ed.jpg.html. Отметил все галочки "Компоненты разработки приложений", "Консоль управления IIS" отмечено по умолчанию, а "Внедряемое веб-ядро службы IIS" не нашел... Сейчас идет его установка, посмотрю, может заработает Веб-сервер на IIS.
|
|||
83
Сияющий в темноте
09.01.20
✎
18:07
|
Wev-сервис это ыормализованный вызов метода удаленного выполнения с заранее заданным набором параметров и результатов,который можно получить через сам web-сервис.
http-сервис - это просто обращение по поотоколу http,где на той стороне обработчик при помощи шаблонов разбирает данные и готовит ответ в произаольной форме. понятно,что через http можно сделать практически все,что угодно,но нужно не забывать описывать реализованный механизм. Web-сервис же может только то,что изначально задумано. с учетом того,что в основе web-сервиса тоо же протокол http,то это одно и то же г.мамонта чуть старее самого интернета,но не такое древнее,как ftp. |
|||
84
Mikhail Volkov
10.01.20
✎
13:08
|
Вроде все пункты инструкций http://tavalik.ru/nastrojka-veb-dostupa-k-bd-1spredpriyatie-na-iis/ и http://catalog.mista.ru/public/295921/ выполнил. Хотел запустить КА2 через браузер http://localhost/PatrERP, получил Ошибка HTTP 500.0. Что-то не удается мне поднять Веб-сервер на IIS.
|
|||
85
Garykom
гуру
10.01.20
✎
13:17
|
||||
86
Garykom
гуру
10.01.20
✎
13:20
|
(85) Гыгы.
IIS оказывается умеет и 32 и 64 но только по отдельности. Т.е. на x86_64 винде этот переключатель означает в каком режиме работает и если платформа 1С x64 то надо поставить false для 32 бит = работаем в 64 бит. |
|||
87
Mikhail Volkov
10.01.20
✎
13:34
|
(86) Где этот переключатель? КА2 у меня полностью х64 на отдельной платформе 8.3.14.1779.
Что можно предпринять: Убедитесь, что разрешения NTFS для файла web.config верны и обеспечивают доступ к учетной записи компьютера веб-сервера. Проверьте журналы событий, чтобы посмотреть, была ли зафиксирована какая-либо дополнительная информация. Где посмотреть журналы событий? |
|||
88
Mikhail Volkov
10.01.20
✎
14:25
|
(85)+> Заходим: Пулы приложений, выбираем DefaultAppPool, с правой стороны — дополнительные параметры. Строка: Разрешены 32-разрядные приложения стоит TRUE (правда), а не правда. Ставим не правду FALSE. Ок, закрываем, перегружаем IIS. Проверяем публикацию.
И правда, КА2 запустилась... |
|||
89
Mikhail Volkov
10.01.20
✎
14:50
|
Значит Веб-сервер на IIS работает. Вернемся к строке проверки (42): http://localhost/ws/TimePlanner.1cws?wsdl Ошибка HTTP 404.0 - Not Found Разыскиваемый вами ресурс был удален, было изменено его имя или он временно недоступен.
Альфа-Авто пока работает на 8.3.10, даже если перейдем на Альфа-Авто 6, которая вроде как работает на 8.3.14.1779, но только на 32-разрядной https://rarus.ru/forum/messages/forum7/topic13797/message85579/#message85579. Выходит не судьба вести обмен с КА2 ни через Com, ни через ни через Web-сервис? |
|||
90
Garykom
гуру
10.01.20
✎
15:20
|
(89) апач подними нужной разрядности
|
|||
91
Mikhail Volkov
10.01.20
✎
15:34
|
(90) Вроде с нем те же проблемы (67). Альфа-Авто (даже 6) работает только на 32-разрядной.
|
|||
92
Garykom
гуру
10.01.20
✎
16:15
|
(91) Не тупи, апач бывает и 32 и 64, и можно несколько разных на разных портах поднять для разных (или даже одной) 1С на одном компе
|
|||
93
Garykom
гуру
10.01.20
✎
16:17
|
Блин подучил бы уже теорию, а то Масяньку напоминаешь, которая сначала громко возмущенно кричит на все новое а потом один фиг приходится разбираться ибо работа/жизнь требует.
http может работать на любом порту не обязательно 80 (или 443 если ssl) На каждом порту можно поднять по своей копии апача |
|||
94
ДенисЧ
10.01.20
✎
16:18
|
(93) Даже на одном порту можно... ))
|
|||
95
Garykom
гуру
10.01.20
✎
16:26
|
(94) Эээ разные разрядности апача на одном порту (одного компа) без применения nginx с бэкпрокси? это фантастика
|
|||
96
Mikhail Volkov
10.01.20
✎
16:38
|
(92) Веб-сервисом не занимался. Какай апач нужен для обмена 32-х разрядной Альфа-Авто и х64 КА2?
|
|||
97
Garykom
гуру
10.01.20
✎
16:40
|
(96) Эээ. "ОК гугл" ?
|
|||
98
Garykom
гуру
10.01.20
✎
16:43
|
||||
99
ДенисЧ
10.01.20
✎
16:45
|
(95) Ну, разрядности - да, но...
|
|||
100
Garykom
гуру
10.01.20
✎
16:47
|
http://catalog.mista.ru/public/731159/
Но лучше скачай с луджа и сам разберись как, мануал http://catalog.mista.ru/public/691604/ там банально скачать, распаковать в C:\Apache, поправить conf и запустить или установить как сервис httpd.exe -k install |
|||
101
Mikhail Volkov
11.01.20
✎
14:55
|
Вернемся к строке проверки (42), но для КА2: http://localhost/PatrERP/ws/CustomerOrdersExchange.1cws?wsdl - пришел ответ. А для Альфа-Авто на http://localhost/AAAAkit/ws/TimePlanner.1cws?wsdl - Ошибка HTTP 500.0 Невозможно отобразить эту страницу ввиду того, что произошла внутренняя ошибка сервера.
|
|||
102
Mikhail Volkov
12.01.20
✎
08:49
|
Одно не пойму, для решения задачи (11) в КА2 ничего открывать и делать не надо. А вот для такой простой задачи (описанной в Службы компонентов: возможно ли создать обертку OLE соединения V83.Application) как создание нового контрагента (такой порядок был заведен до меня): прежде чем создавать контрагента в Альфа-Авто его ищут в КА по кнопке "Найти/создать в КА". Если контрагент найден по ИНН (например, как поставщик общих услуг), он открывается через Com-соединение прямо в УПП/КА1. Ему вручную добавляют договор покупателя, прочие реквизиты, но в УПП/КА1. При записи все эти реквизиты передаются в Альфа-Авто. Если контрагент не найден, по открывается новая форма контрагента (с начальными данными, по которым его искали), вручную заполняется, но в УПП/КА1! Далее все так же...
Веб-сервис может такое обеспечить? |
|||
103
Mikhail Volkov
12.01.20
✎
09:01
|
+ (102) Почему контрагент создается в начале в КА? Видимо деньги безналичные от него ждут в начале в КА, банк-клиент там работает, а полный файловый обмен раз в месяц (иногда неделю) будет.
|
|||
104
ProxyInspector
12.01.20
✎
15:34
|
(101) С чего ты взял, что от WEB сервиса, разработанного Рарусом вообще можно получить ответ и этот сервис работоспособный.
Я так понимаю, что к КА2 у тебя уже подключается. Добавляешь в КА2 свой простейший сервис. Публикуешь его. Потом тоже самое делаешь в Рарус. Если проблемы с разрядностью, поднимаешь два Аппача на разных портах. |
|||
105
Mikhail Volkov
12.01.20
✎
17:25
|
(104) В КА2 куча всего в Web-сервисах, взял 1-ю попавшуюся, а в Альфа-Авто только один Web-сервис планировщика, его и взял для проверки. Предлагаешь свой Web-сервис написать с функцией Ping(), с именами затрудняюсь?
Кстати, когда в пуле DefaultAppPool ставлю "Разрешены 32-разрядные приложения" в TRUE, то выдается другая ошибка: 1C:Enterprise 8 application error: HTTP: Not found Ошибка при работе с ресурсом /AAAAkit/ws/TimePlanner.1cws. Вообще Web-сервисе засомневался, может ли такое (102)... |
|||
106
ProxyInspector
12.01.20
✎
22:23
|
Добавляешь новый WEB сервис. Заполняешь все по аналогии с работающим. Делаешь одну функцию Ping().
Когда этот сервис отработаешь в двух базах. Добавишь аргументы и возврат. Назовешь эту функцию НайтиКонтрагента(ИНН) которая будет возвращать строку XML или JSON. JSON не плохая штука. Мне пока нравится, переделываю обмены на JSON. (102) Сможет. |
|||
107
Garykom
гуру
12.01.20
✎
22:53
|
(106) JSON гениальная на самом деле штука, идея просто напрашивалась но как ни странно сначала стал популярным XML.
В древние времена приходилось делать бинарную сериализацию для скорости, но с появлением JSON которая сравнима и ростом железа это стало ненужным. Мое мнения пора уже отправить на покой XML и HTML из которого он вырос и для описания структуры веб-страниц использовать JSON. |
|||
108
zelyak
13.01.20
✎
07:31
|
А мы не стали заморачиваться - просто реализовали документ "Заказ-наряд" в КА2.4
|
|||
109
Mikhail Volkov
13.01.20
✎
09:11
|
(108) У нас в КА не работают, она у нас в основном для бух. отчетности (вместо БП, раньше производство было). Еще зарплату считают...
(106) Добавляешь новый WEB сервис. Заполняешь все по аналогии с работающим. Web-сервис планировщика имеет: Пакеты XDTO: http://www.activewebservices.ru/TimePlanner URI пространства имен: http://www.activewebservices.ru/TimePlanner Имя файла публикации: TimePlanner.1cws Откуда это, как их задавать? И куча функций: ПолучитьТекущееВремя, ВыбратьАвтомобили... У них тоже: например Тип возвращаемого значения: СписокАвтомобилей (http://www.activewebservices.ru/TimePlanner) КонтекстЗапроса Тип значения: КонтекстЗапроса (http://www.activewebservices.ru/TimePlanner) Ну TimePlanner понятно, а вместо http://www.activewebservices.ru что писать? > (102) Сможет. Хотелось бы с этого начать. Лазил по Интернету с вопросом: Открыть элемент справочника 1С через web сервис - не нашел ничего... |
|||
110
ProxyInspector
13.01.20
✎
15:09
|
Добавляешь новый WEB сервис
Называешь его ExchangeService на вкладке Прочее устанавливаешь URI пространство имен: ExchangeService Пакеты XDTO: http://v8.1c.ru/8.1/data/core Имя файла публикации: ExchangeService.1cws После этого добавляешь новую Функцию этого Сервиса: Ping() Тип возвращаемого значения: boolean (http://www.w3.org/2001/XMLSchema) Функция Ping() Возврат Истина; КонецФункции |
|||
111
ProxyInspector
13.01.20
✎
15:17
|
Через WEB сервис ты не откроешь элемент справочника.
Максимум ты получишь XML представление своего элемента справочника; Дабавишь в свой WEB сервис Функция WEBПолучитьКонтрагента(ИНН) ТекКонтрагентСсылка = ПолучитьКонтрагента(ИНН); СтрокаXML = СформироватьСтрокуXML(ТекКонтрагентСсылка); Возврат СтрокаXML; КонецФункции После этого из внешней базы пишешь СтрокаXML = WEBСервис.WEBПолучитьКонтрагента(ИНН); ТекКлиент = ПолучитьИЗXML(СтрокаXML); |
|||
112
ProxyInspector
13.01.20
✎
15:17
|
Вот с этого и начинаешь
|
|||
113
Mikhail Volkov
13.01.20
✎
17:21
|
(110) Сделал в Альфа-Авто. При включенном "Разрешены 32-разрядные приложения" есть ответ на http://localhost/AAAAkit/ws/ExchangeService.1cws?wsdl
(111) > Добавишь в свой WEB сервис Функция WEBПолучитьКонтрагента(ИНН) Куда: в Альфа-Авто или КА2? Сейчас в Альфа-Авто нет добавляемого контрагента, его прежде чем добавить в Альфа-Авто его проверяют или создают в КА1, добавляют нужный договор, другие реквизиты... после все что создано и добавленное в КА1 переносится в Альфа-Авто с теми же гуидами. > Через WEB сервис ты не откроешь элемент справочника. Только справочник, документ тоже? Можно не открывать его в КА2, только проверить есть ли он КА2, и перетащить его в Альфа-Авто. Или создать его в Альфа-Авто, и перетащить в КА2. После от него поступила оплата в КА2, без документов (их пока нет в КА) как аванс. В Альфа-Авто нет банковских документов, только банковская выписка, которая заполняется по документам КА почти каждый день (сейчас по Com-соединению). В выписке проставляются сделки - документы-основания. Иногда из выписки в Альфа-Авто надо открыть банковский документ КА. Через веб-сервис это не сделать? |
|||
114
ProxyInspector
13.01.20
✎
17:41
|
(113) WEBПолучитьКонтрагента(ИНН) делаешь откуда надо получать данные
Добавляешь Функцию в свой WEBСервис Фукнкция WEBПолучитьКонтрагента(ИНН) Возврат ИНН; КонецФункции После этого делаешь обработку в базе откуда ты вызываешь свой Web сервис. Подключаешься к WEB и проверяешь WEBСервис.Ping() = Истина WEBСервис.WEBПолучитьКонтрагента(ИНН) = ИНН |
|||
115
Mikhail Volkov
13.01.20
✎
18:40
|
(114) Значит в WEB-Сервис КА2. А в Альфа-Авто что писать по кнопке Создать/Найти в КА?
|
|||
116
Garykom
гуру
13.01.20
✎
19:37
|
(115) Да блин подучи уже теорию она как разберешься совсем простейшая, даже тупые сайтоклепатели на php понимают ее.
Есть Клиент и есть Сервер и есть текстовый протокол между ними. Клиент по сути вызывает функции (в случае веб-сервиса) на Сервере, передавая параметры и получает в ответ результат. Передавать и получать можно только простые типы (число, строка, дата) или через сериализацию/десериализацию в строку (xml) составные/сложные. Вызванная на сервере функция может колбасить что угодно в своей базе, но вернуть может только простое. Это похоже на удаленный вызов процедур/функций который по умному RPC обзывается. Т.е. тебе надо написать код в двух местах. В базе КА функция которая получает нечто в параметрах от Альфы, нечто у себя делает и отправляет назад в Альфу. В базе Альфы процедура которая запрашивает нечто у КА, и получив ответ что то у себя делает. В данном случае если хочешь из Альфы узнать если ли такой контрагент по ИНН то Альфа вызывает в КА "функцию" WEBПолучитьКонтрагента(ИНН) А КА же внутри этой функции по полученному ИНН ищет у себя и если есть возвращает назад "Нашел!" или "Нетути..." Альфа получив ответ что есть ИНН или нету ИНН уже далее нечто делает что нуна. |
|||
117
Garykom
гуру
13.01.20
✎
19:41
|
(116)+ Это полностью аналогично работе в режиме &НаКлиенте и &НаСервере в 1С особенно когда УФ.
Только у тебя "&НаКлиенте" это Альфа причем код в Альфе где угодно (&НаКлиенте или &НаСервере) может быть. А "&НаСервере" в КА это только &НаСервере. Т.е. Альфа это клиент, а КА это сервер. И колбась что хочешь через веб-сервис |
|||
118
Mikhail Volkov
14.01.20
✎
08:26
|
(116) Да, теорию изучать надо. Но пытаюсь ее читать, и прежде всего ищу в ней ответ на свой (102) вопрос: сможет ли Веб-сервис открыть объект другой базы КА2, не существующий в Альфа-Авто, например, банковский документ (113). Пока не нашел. Если нет, то буду искать другие решения...
(117) Аналогия может хорошая, но не для меня: Альфа-Авто, УПП/КА1 - формы обычные. С УФ мало сталкивался. |
|||
119
Garykom
гуру
14.01.20
✎
11:11
|
(118) >сможет ли Веб-сервис открыть объект другой базы КА2, не существующий в Альфа-Авто
Веб-сервис в КА2 откроет ибо там есть этот объект. Клиент в Альфе будет работать с объектом этим так как сам напишешь в веб-сервисе. |
|||
120
Mikhail Volkov
15.01.20
✎
12:56
|
(119) Как? Google ни одной ссылки не дал на запрос: Открыть форму существующего объекта в другой базе 1С Web-сервисом
|
|||
121
Garykom
гуру
15.01.20
✎
13:17
|
(120) Миша ты идиот.
|
|||
122
Garykom
гуру
15.01.20
✎
13:22
|
(121)+ Извини конечно, но никакую форму там открыть нельзя.
Точно так же как ее нельзя открыть "в другой базе" и через COM соединение. Рисуешь у себя в Альфе независимую от объекта форму и делаешь так что данные на нее поступают через веб-сервис из КА2. И наоборот если эту незаивисмую форму нажать записать - данные уйдут в КА2 и там запишутся в реальный объект. Короче сам, все сам. Точно так же как и через COM - технология работы идентична практически, просто код надо в двух местах писать независимо (клиент и сервер). В случае COM соединения же код на клиенте пишется и можно на нем придумать код для сервера и отправить этот серверный код на сервер для выполнения. Блин уже не знаю как объяснить такую простейшую вещь. |
|||
123
Mikhail Volkov
15.01.20
✎
13:40
|
(122) Com-соединением (точнее OLE V83.Application) как раз можно открыть любой объект другой базы, но той же версии платформы. Сейчас так и работает с УПП и КА1. Не скажу что так очень надо, но удобно. Думал, что у Web-сервиса такие же возможности.
|
|||
124
Garykom
гуру
15.01.20
✎
13:48
|
(123) Гыгыгыгы, рука лицо.
Нельзя открыть форму объекта через COM (внешнее соединение), только с данными можно работать. И нельзя передавать сложные объекты, только простые типы. Точно так же ты можешь написать некий веб-сервис и передавать туда куски кода для выполнения через Выполнить() и Вычислить(). |
|||
125
ProxyInspector
15.01.20
✎
15:59
|
(123) Там все не так. Но оно того стоит. Тем более ОЛЕ на современных платформах, в тонком клиенте, то еще удовольствие.
Я тоже был фанатом OLE. Очень удобно и быстро. Теперь уже все через WEB делаю. |
|||
126
Garykom
гуру
15.01.20
✎
16:21
|
(125) Некоторые до сих пор через OLE с ворд и эксель работают хотя уже давно есть более новые способы.
Работать же с 1С через OLE (не COM внешнее соединение) это да изврат редкостный. |
|||
127
MM
15.01.20
✎
16:54
|
(126) А можете рассказать как с Wordoм сейчас принято работать без OLE? Или с какими-нибудь изощрёнными эксель возможностями, да теми же правками формул?
|
|||
128
Mikhail Volkov
15.01.20
✎
17:02
|
(124) После таких заявлений по поводу COM не знаю верить ли (122) на счет возможностей Web-сервиса. Пример открытия формы контрагента КА1 из Альфа-Авто: https://jpegshare.net/9d/0d/9d0d6c1a27cd0b6442ef49591fdaf496.jpg.html, пример открытия банковского документа, которых нет в Альфа-Авто: https://jpegshare.net/86/d0/86d097f63faddf84ea88e663d0633b31.jpg.html
(125) Все же, нельзя ли открыть форму объекта другой базы через Web-сервис (как через OLE)? |
|||
129
Garykom
гуру
15.01.20
✎
17:38
|
(127) Если это понадобится мне то возьму нечто вроде https://github.com/unidoc/unioffice
Если из 1С то наваяю или dll на основе этого нечто или веб-сервис. Но есть разные варианты, особенно если doc не особо нужен и можно docx использовать. http://catalog.mista.ru/public/1171429/ http://catalog.mista.ru/public/873883/ http://catalog.mista.ru/public/675307/ http://catalog.mista.ru/public/590918/ |
|||
130
Garykom
гуру
15.01.20
✎
17:49
|
(128) У тебя по нажатию кнопки в Альфа-Авто, запускается для юзера КА1 и там открывается форма контрагента?
Или все же Альфа через COM лезет в базу КА1 и создает(если не нашла по ИНН) там контрагента по имеющемуся в Альфе? Давай уже ответь на простейший вопрос, вы там пользователь или все же программист 1С? |
|||
131
Mikhail Volkov
15.01.20
✎
18:15
|
(130) Ну в примере (128) уже созданного контрагента открывает по ссылке (по GUID). А нового не записанного контрагента в Альфа-Авто ищет в КА1 по тому, что в нем заполнено, обычно по ИНН. Если найден, то открывается, ему добавляют нужный договор, другие реквизиты. При записи и закрытии его в КА1 все реквизиты передаются в Альфа-Авто. Такой порядок был еще до меня.
|
|||
132
Garykom
гуру
15.01.20
✎
18:20
|
(131) Еще раз уточни чтобы было понятно.
Вот у тебя у юзера запущена только Альфа-Авто, КА1 закрыта. Если нажать кнопку "Создать/Найти в КА" в Альфе то запустится (долгое ожидание) КА1 и там откроется в другом окне КА1 карточка контрагента? |
|||
133
Garykom
гуру
15.01.20
✎
18:22
|
(132)+ Или все же КА1 не запускается визуально, только поднимается внешнее соединение COM, которое визуально не отражается запуском второй 1С (КА1)
Про отличие COM от OLE тут https://v8.1c.ru/platforma/vneshnee-soedinenie/ |
|||
134
Сияющий в темноте
15.01.20
✎
18:35
|
открыть форму любого обьекта где угодно
так в чем проблема? получили описание формы выгрузкой в файл пропарсили собрали web-страницу и показали пользователю ну и при желании,можно и код заставить работать причем как будто он работает в 1с очень даже прозрачно а транспорт данных роли не играет-ну хоть на флешке каждый запросик серверу на другую машину таскать. |
|||
135
Mikhail Volkov
15.01.20
✎
19:01
|
(132) Да, коннрагент открывается визуально в КА1 другом окне: https://jpegshare.net/9d/0d/9d0d6c1a27cd0b6442ef49591fdaf496.jpg.html 1-е открытие около минуты, после любой объект в КА1 открывается быстро.
|
|||
136
Garykom
гуру
15.01.20
✎
19:03
|
(135) Через веб-сервер такое сделать нельзя.
Точнее можно но сложно, придется вот эту вторую форму рисовать самостоятельно в Альфа-Авто, причем при обновлениях КА1 ее допиливать. |
|||
137
Mikhail Volkov
19.01.20
✎
08:20
|
(136) Возможно и не надо, так было, и было удобно когда была такая возможность. Сейчас такой возможности нет: не удается сменить версию платформы на более высокую для COM/OLE-соединения. Можно при вводе нового контрагента спрашивать: не поискать ли его в КА. Если он там найден, то заполнять не заполненные реквизиты значениями контрагента из КА, а заполненные реквизиты перезаписывать по разрешению/вопросу. При записи нового контрагента в Альфа-Авто, создавать/перезаписывать его в КА.
С банковскими документы тоже можно не открывать из Альфа-Авто, все исправления можно сделать в выписки Альфа-Авто. По завершению ее редактирования можно сразу обновить банковские документы в КА, или в конце месяца обновятся при общем обмене. Просто удобно было сразу из Альфа-Авто посмотреть что в КА, если что - поправить. |
|||
138
ДенисЧ
19.01.20
✎
08:46
|
(135) Убил бы за такое решение.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |