Имя: Пароль:
1C
1С v8
Обмен Альфа-Авто с КА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
http://perseus:80/ws/TimePlanner.1cws.1cws?wsdl

выглядит до боли подозрительно...
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
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) Убил бы за такое решение.
Требовать и эффективности, и гибкости от одной и той же программы — все равно, что искать очаровательную и скромную жену... по-видимому, нам следует остановиться на чем-то одном из двух. Фредерик Брукс-младший