1c enterprise 8 application error ошибка установки соединения by reason

Зачастую пользователи конфигурации сталкиваются с проблемой доступа к личному кабинету в виде ошибки 1С:Enterprise 8 application error. Большинство сразу приходит к выводу, что проблема заключается в базе или самой конфигурации. Это и понятно, так как значение заголовка ошибки

«Ошибка приложения 1С:Предприятие 8»

на русском не дает никаких объяснений.

Ошибка 1С:Enterprise application error

Но на самом деле это не так и сейчас разберемся почему? Как видно на скриншоте, расположенном выше, текст HTTP:Not found говорит о том, что http-сервис не найден. Единственной причиной воспроизведения данного сообщения может быть только неправильная публикация базы(неопубликованный http-сервис «Личный кабинет»). Для решения проблемы необходимо открыть конфигурацию в режиме «Конфигуратор». Далее перейти в «

Конфигуратор

«-«

Администрирование

«-«

Публикация на веб-сервере

» и на закладке «http-сервисы» установить все чек-боксы, включая «Личный кабинет«.

Окно публикации базы

В конце все, что остается, это заново переопубликовать базу и перезапустить веб-сервер (Apache или IIS).

  

Cancell

18.11.19 — 09:59

Всем доброго дня, у нас был работающий веб-сервис на стороне 1С, потом им долго не пользовались, а сейчас решили возобновить работу. И при тестировании через фиддлер дает такую ошибку в сабже.

Поиск ничего толком не дал, vrd пересоздавали и там вроде все корректно, база сама открывается через веб клиент.

Запрос делаем GET

http://IP_Address:8080/VM2014/ws/CardActivate.1cws?wsdl&CardNumber=9051112233&ClientPhone=9051112233&ClientName=Name&ClientEmail=name@mail.ru&BDate=111111

В vrd такая строка — ib=»Srvr="SERVER_1C";Ref="VM2014";»

Подскажите плз куда копать?

На Localhost в Эксплорере просто возвращает описание сервиса, в отладке не попадат в обработчик вообще

  

Cyberhawk

1 — 18.11.19 — 10:04

Ни о чем

  

Cancell

2 — 18.11.19 — 10:07

(1) сервер апач 2.2, платформа (8.3.13.1644)

Что еще уточнить?

  

Cancell

3 — 18.11.19 — 11:01

Никто не сталкивался с такой проблемой?

Я так понимаю судя по ошибке «Ошибка в строке соединения с информационной базой.» проблема в default.vrd но сама база запускается через веб клиент…

  

bolero

4 — 18.11.19 — 11:47

(0) тебе ж машина написала русским языком: Ошибка в строке соединения с информационной базой

как оно тебе соединится с сервером "SERVER_1C", когда он называется SERVER_1C ?

  

Cancell

5 — 18.11.19 — 12:09

(4) так я так понимаю это кавычка так закодирована,база то сама открывается.

  

hhhh

6 — 18.11.19 — 12:10

(5) уберите эти кавычки.

  

Cancell

7 — 18.11.19 — 12:14

(4)(6) сделал

ib=»Srvr=SERVER_1C;Ref=VM2014;»

ничего не изменилось

  

Cancell

8 — 18.11.19 — 12:15

<?xml version=»1.0″ encoding=»UTF-8″?>

<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;

        xmlns:xs=»http://www.w3.org/2001/XMLSchema»;

        xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;

        base=»/vm2014″

        ib=»Srvr=SERVER_1C;Ref=VM2014;»>

  

hhhh

9 — 18.11.19 — 12:38

(7) ib=»Srvr=SERVER_1C;Ref=VM2014;;»

  

Cancell

10 — 18.11.19 — 12:47

(9)

Добавил точку с запятой, опять ничего = та же ошибка

<?xml version=»1.0″ encoding=»UTF-8″?>

<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;

        xmlns:xs=»http://www.w3.org/2001/XMLSchema»;

        xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;

        base=»/vm2014″

        ib=»Srvr=SERVER_1C;Ref=VM2014;;»>

  

Cancell

11 — 18.11.19 — 13:04

Что такого в строке соединения ему может не нравится?

вот описание сервиса в vrd

<point name=»Dart_CardActivation»

                alias=»CardActivate.1cws»

                enable=»true»

                reuseSessions=»dontuse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

  

Cyberhawk

12 — 18.11.19 — 13:35

Со строкой соединения все нормально, высказавшиеся выше — мимо

  

bolero

13 — 18.11.19 — 13:35

есть еще вариант, что SERVER_1C не резолвится по dns с машины, где веб-сервер

  

Cancell

14 — 18.11.19 — 13:49

(12) а есть предположения в чем может быть проблема, а то в запасе только вариант перезагрузки сервера… но это уже после 23:00 =

  

Cancell

15 — 18.11.19 — 13:50

(13) все на одном серваке поднято

  

Cyberhawk

16 — 18.11.19 — 13:54

(14) См. (1)

  

Cancell

17 — 18.11.19 — 14:11

(16) спасибо, но там ни о чем не понятно

  

bolero

18 — 18.11.19 — 14:12

(15) это не мешает не резолвиться

  

Cyberhawk

19 — 18.11.19 — 15:17

(17) Зеркало

  

ДенисЧ

20 — 18.11.19 — 15:21

ping SERVER_1C

что говорит?

  

Cancell

21 — 18.11.19 — 15:34

(20) по ИП пингуется, запросы я по ИП отправляю

а локально по имени пингуется , только ответ в странном формате, ответ не от ИП и как будто от МАКадреса

  

acht

22 — 18.11.19 — 17:30

  

acht

23 — 18.11.19 — 17:34

(21) > и как будто от МАКадреса

Вау, так на моей памяти ipv6 еще никто не называл.

Чини DNS.

  

Cancell

24 — 19.11.19 — 21:02

(22) а как правильно передавать? это мне разработчик сайта такую передачу параметров организовал

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

Модераторы: Дмитрий Юхтимовский, Лысиков Денис

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

просим отнестись с пониманием

Гилёв Вячеслав
 
Сообщений: 2543
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 09:56

Сервис SQLSize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 11:31

Сервис sqlsize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение EuLeEr » 17 июн 2013, 20:10

Личные сообщения запрещены и я не нашел, куда могу написать.
13.06.2013 года активировал свою учетную запись , потом через 3 минуты пришло сообщение
«Заявка на регистрацию учетной записи успешно выполнена!»и с тех пор так и нет подтверждения регистрации учетной записи, которое, как я понял из инструкций, должно прийти в виде имени пользователя и пароля для сервисов gilev.ru
Это сбой в системе регистрации или проблема на моей стороне — мой почтовый сервер выкинул письмо от вашего сервиса ?
Или быть может я вообще чего-то не понял ;-) ?

EuLeEr
 
Сообщений: 1
Зарегистрирован: 17 июн 2013, 19:32

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение Гилёв Вячеслав » 21 июн 2013, 18:28

Совершенно верно, Вам должно прийти письмо с подтверждением с логином и паролем. Часто попадает в спам, обязательно проверьте там.
Если не разберетесь, пишите на

gilv@rarus.ru

Гилёв Вячеслав
 
Сообщений: 2543
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Вернуться в Сервисы gilev.ru

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

При эксплуатации 1С Предприятия часто возникает потребность установки разных версий платформы. При этом, в том случае если имеется публикация WEB или HTTP сервисов, то возникает проблема несоответствия версий клиента в виде модуля расширение 1С для веб-сервера и версии самого сервера 1С. К сожалению, на веб-сервер возможно подключить только один модуль расширения 1С. Поэтому если мы попытаемся через данный веб-сервер обратиться к базе или веб-сервису 1С другой версии платформы, то получим ошибку несоответствия версии клиента и сервера 1С.

Текст ошибки:
1C:Enterprise 8 application error:
HTTP: Conflict
by reason:
Различаются версии клиента и сервера (8.3.13.1513 - 8.3.15.1830), клиентское приложение: Модуль расширения веб-сервера
by exception: 9f06d311-1431-4a54-bd6f-fa93c4d4c471

Ошибка Различаются версии клиента и сервера (8.3.13.1513 - 8.3.15.1830)

Окно браузера с ошибкой

Для чего нужен второй веб-сервер 1С

Самая частая причина, по которой может понадобиться второй веб-сервер — это необходимость тестового контура 1С для платформы другого релиза, чем та на которой работает уже существующий продуктивный контур. Это бывает нужно либо при переходе и тестировании новой платформы, либо наоборот при необходимости тестового контура старого релиза. Однако не редки случаи, когда есть потребность запустить и продуктивные контуры 1С разных релизов на одном сервере.

Установка второго сервера Апач

Итак, предположим, что у нас в системе уже установлен веб-сервер Apache 2.4. Далее по шагам:

1. Копируем всю папку с файлами веб-сервера Апач в новое расположение по своему усмотрению. Например, у нас был каталог первого экземпляра сервера в папке C:Apache24, копируем в папку C:Apache24_17001

Каталог установки веб-сервера Апач для 1С

2. Меняем в файле httpd.conf следующие настройки:

  • указываем новый путь к каталогу второго севера:

Define SRVROOT «C:Apache24_17001»

  • меняем порт, на котором второй сервер будет принимать подключения, укажем 17001 (можно указать свой порт):
  • При необходимости использования протокола HTTPS, дополнительно меняем в файле C:Apache24_17001confextra httpd-ahssl.conf номер порта для SSL, укажем 17443:

ServerName localhost:17443

  • прописываем загрузку модуля расширения 1С для веб-сервера нужного релиза (путь к модулю на вашем сервер может отличаться). Допустим у нас на первом веб-сервере подключен модуль версии 8.3.15.1830, а мы хотим так же работать с платформой 8.3.17.1549. Подключим модуль данного релиза:

LoadModule _1cws_module «C:/Program Files/1cv8/8.3.17.1549/bin/wsap24.dll»

3. Запускаем утилиту «Командная строка» от имени Администратора:

4. Переходим в каталог C:Apache24_17001bin

5. Установим службу для второго экземпляра веб-сервера Апач. Введем команду:

httpd.exe k install n «Apache_17001»

В результате должны увидеть сообщение об успешно установленной службе «Apache_17001»:

Устновка службы второго веб-сервера Апач для 1С

6. Переходим в оснастку «Службы», находим там службу с именем «Apache_17001» и если она не запущена, то стартуем ее:

Запуск службы второго веб-сервера Апач

7. Проверяем работу. Вводим в браузере адрес localhost:17001. Если видим тестовую страницу веб-сервера, то все прошло успешно

Проверка веб-сервера Апач

8. Проверяем HTTPS, вводим адрес https:// localhost:17443. После вопроса о безопасности сертификата так же должны увидеть тестовую страницу.

Проверка HTTPS протокола веб-сервера Апач

Итоги

Теперь после установки второго веб-сервера Апач мы получили возможность работать через веб-расширение как с сервером 1С версии 8.3.15.1830, так и с сервером 1С версии 8.3.17.1549.

Так для подключения к базе расположенной на сервере версии 8.3.15.1830 обращение идет по адресу:

localhost/base15/

а для обращения к базе на сервере версии 8.3.17.1549:

localhost:17001/base17/

Аналогично происходит обращение к web- и http- сервисам на указанных серверах.

После успешного выполнения публикации при подключении получаю ошибку.

/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir mlt -dir /var/www/mlt -connstr "Srvr=127.0.0.1;Ref=mlt;" -confPath /etc/httpd/conf/httpd.conf

Ошибка:

1C:Enterprise 8 application error:
Connection error
by reason:
server_addr=tcp://192.168.0.48:1541 descr=192.168.0.48:1541:13(0x0000000D): Permission denied; line=1040 file=./src/DataExchangeTcpClientImpl.cpp

netstat -tlpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1545            0.0.0.0:*               LISTEN      12189/ras           
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      11187/smbd          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1037/sshd           
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN      12122/rphost        
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      12699/postmaster    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2327/master         
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      11187/smbd          
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN      12071/ragent        
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN      12079/rmngr


  • Вопрос задан

    более трёх лет назад

  • 3394 просмотра

Нужно было проверить /var/log/audit/audit.log и добавить исключение для httpd в selinux

grep httpd /var/log/audit/audit.log | grep denied
semanage port -a -t http_port_t -p tcp 1541
semanage port -a -t http_port_t -p tcp 1560

Пригласить эксперта

мне помогло просто

setsebool -P httpd_can_network_connect 1
service httpd restart


  • Показать ещё
    Загружается…

21 июн. 2023, в 14:53

2000 руб./за проект

21 июн. 2023, в 14:43

6000 руб./за проект

21 июн. 2023, в 14:18

10000 руб./за проект

Минуточку внимания

При подключении к веб хранилищу вываливается ошибка:

1C:Enterprise 8 application error:

Ошибка установки соединения

by reason:

server_addr=tcp://Storage descr=192.168.0.3:1542:10060(0x0000274C): Попытка установить соединение была безуспешной, т.к. от другого компьютера за требуемое время не получен нужный отклик, или было разорвано уже установленное соединение из-за неверного отклика уже подключенного компьютера. ; line=1045 file=srcDataExchangeTcpClientImpl.cpp

В логах апача:

127.0.0.1 — — [25/Oct/2017:18:22:46 +0300] «GET /storage/repository.1ccr/Base_1cStorage HTTP/1.1» 408 558

Может кто то сталкивался?

Платформу переустанавливал, апачь тоже.

Зачастую пользователи конфигурации сталкиваются с проблемой доступа к личному кабинету в виде ошибки 1С:Enterprise 8 application error. Большинство сразу приходит к выводу, что проблема заключается в базе или самой конфигурации. Это и понятно, так как значение заголовка ошибки

«Ошибка приложения 1С:Предприятие 8»

на русском не дает никаких объяснений.

Ошибка 1С:Enterprise application error

Но на самом деле это не так и сейчас разберемся почему? Как видно на скриншоте, расположенном выше, текст HTTP:Not found говорит о том, что http-сервис не найден. Единственной причиной воспроизведения данного сообщения может быть только неправильная публикация базы(неопубликованный http-сервис «Личный кабинет»). Для решения проблемы необходимо открыть конфигурацию в режиме «Конфигуратор». Далее перейти в «

Конфигуратор

«-«

Администрирование

«-«

Публикация на веб-сервере

» и на закладке «http-сервисы» установить все чек-боксы, включая «Личный кабинет«.

Окно публикации базы

В конце все, что остается, это заново переопубликовать базу и перезапустить веб-сервер (Apache или IIS).

  

Cancell

18.11.19 — 09:59

Всем доброго дня, у нас был работающий веб-сервис на стороне 1С, потом им долго не пользовались, а сейчас решили возобновить работу. И при тестировании через фиддлер дает такую ошибку в сабже.

Поиск ничего толком не дал, vrd пересоздавали и там вроде все корректно, база сама открывается через веб клиент.

Запрос делаем GET

http://IP_Address:8080/VM2014/ws/CardActivate.1cws?wsdl&CardNumber=9051112233&ClientPhone=9051112233&ClientName=Name&ClientEmail=name@mail.ru&BDate=111111

В vrd такая строка — ib=»Srvr=&quot;SERVER_1C&quot;;Ref=&quot;VM2014&quot;;»

Подскажите плз куда копать?

На Localhost в Эксплорере просто возвращает описание сервиса, в отладке не попадат в обработчик вообще

  

Cyberhawk

1 — 18.11.19 — 10:04

Ни о чем

  

Cancell

2 — 18.11.19 — 10:07

(1) сервер апач 2.2, платформа (8.3.13.1644)

Что еще уточнить?

  

Cancell

3 — 18.11.19 — 11:01

Никто не сталкивался с такой проблемой?

Я так понимаю судя по ошибке «Ошибка в строке соединения с информационной базой.» проблема в default.vrd но сама база запускается через веб клиент…

  

bolero

4 — 18.11.19 — 11:47

(0) тебе ж машина написала русским языком: Ошибка в строке соединения с информационной базой

как оно тебе соединится с сервером &quot;SERVER_1C&quot;, когда он называется SERVER_1C ?

  

Cancell

5 — 18.11.19 — 12:09

(4) так я так понимаю это кавычка так закодирована,база то сама открывается.

  

hhhh

6 — 18.11.19 — 12:10

(5) уберите эти кавычки.

  

Cancell

7 — 18.11.19 — 12:14

(4)(6) сделал

ib=»Srvr=SERVER_1C;Ref=VM2014;»

ничего не изменилось

  

Cancell

8 — 18.11.19 — 12:15

<?xml version=»1.0″ encoding=»UTF-8″?>

<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;

        xmlns:xs=»http://www.w3.org/2001/XMLSchema»;

        xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;

        base=»/vm2014″

        ib=»Srvr=SERVER_1C;Ref=VM2014;»>

  

hhhh

9 — 18.11.19 — 12:38

(7) ib=»Srvr=SERVER_1C;Ref=VM2014;;»

  

Cancell

10 — 18.11.19 — 12:47

(9)

Добавил точку с запятой, опять ничего = та же ошибка

<?xml version=»1.0″ encoding=»UTF-8″?>

<point xmlns=»http://v8.1c.ru/8.2/virtual-resource-system»;

        xmlns:xs=»http://www.w3.org/2001/XMLSchema»;

        xmlns:xsi=»http://www.w3.org/2001/XMLSchema-instance»;

        base=»/vm2014″

        ib=»Srvr=SERVER_1C;Ref=VM2014;;»>

  

Cancell

11 — 18.11.19 — 13:04

Что такого в строке соединения ему может не нравится?

вот описание сервиса в vrd

<point name=»Dart_CardActivation»

                alias=»CardActivate.1cws»

                enable=»true»

                reuseSessions=»dontuse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

  

Cyberhawk

12 — 18.11.19 — 13:35

Со строкой соединения все нормально, высказавшиеся выше — мимо

  

bolero

13 — 18.11.19 — 13:35

есть еще вариант, что SERVER_1C не резолвится по dns с машины, где веб-сервер

  

Cancell

14 — 18.11.19 — 13:49

(12) а есть предположения в чем может быть проблема, а то в запасе только вариант перезагрузки сервера… но это уже после 23:00 =

  

Cancell

15 — 18.11.19 — 13:50

(13) все на одном серваке поднято

  

Cyberhawk

16 — 18.11.19 — 13:54

(14) См. (1)

  

Cancell

17 — 18.11.19 — 14:11

(16) спасибо, но там ни о чем не понятно

  

bolero

18 — 18.11.19 — 14:12

(15) это не мешает не резолвиться

  

Cyberhawk

19 — 18.11.19 — 15:17

(17) Зеркало

  

ДенисЧ

20 — 18.11.19 — 15:21

ping SERVER_1C

что говорит?

  

Cancell

21 — 18.11.19 — 15:34

(20) по ИП пингуется, запросы я по ИП отправляю

а локально по имени пингуется , только ответ в странном формате, ответ не от ИП и как будто от МАКадреса

  

acht

22 — 18.11.19 — 17:30

  

acht

23 — 18.11.19 — 17:34

(21) > и как будто от МАКадреса

Вау, так на моей памяти ipv6 еще никто не называл.

Чини DNS.

  

Cancell

24 — 19.11.19 — 21:02

(22) а как правильно передавать? это мне разработчик сайта такую передачу параметров организовал

После успешного выполнения публикации при подключении получаю ошибку.

/opt/1C/v8.3/x86_64/webinst -apache24 -wsdir mlt -dir /var/www/mlt -connstr "Srvr=127.0.0.1;Ref=mlt;" -confPath /etc/httpd/conf/httpd.conf

Ошибка:

1C:Enterprise 8 application error:
Connection error
by reason:
server_addr=tcp://192.168.0.48:1541 descr=192.168.0.48:1541:13(0x0000000D): Permission denied; line=1040 file=./src/DataExchangeTcpClientImpl.cpp

netstat -tlpn

Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name    
tcp        0      0 0.0.0.0:1545            0.0.0.0:*               LISTEN      12189/ras           
tcp        0      0 0.0.0.0:139             0.0.0.0:*               LISTEN      11187/smbd          
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      1037/sshd           
tcp        0      0 0.0.0.0:1560            0.0.0.0:*               LISTEN      12122/rphost        
tcp        0      0 0.0.0.0:5432            0.0.0.0:*               LISTEN      12699/postmaster    
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      2327/master         
tcp        0      0 0.0.0.0:445             0.0.0.0:*               LISTEN      11187/smbd          
tcp        0      0 0.0.0.0:1540            0.0.0.0:*               LISTEN      12071/ragent        
tcp        0      0 0.0.0.0:1541            0.0.0.0:*               LISTEN      12079/rmngr

  • Вопрос задан

    более трёх лет назад

  • 3265 просмотров

Нужно было проверить /var/log/audit/audit.log и добавить исключение для httpd в selinux

grep httpd /var/log/audit/audit.log | grep denied
semanage port -a -t http_port_t -p tcp 1541
semanage port -a -t http_port_t -p tcp 1560

Пригласить эксперта

мне помогло просто

setsebool -P httpd_can_network_connect 1
service httpd restart

  • Показать ещё
    Загружается…

09 февр. 2023, в 07:25

50000 руб./за проект

09 февр. 2023, в 06:50

2500 руб./за проект

05 февр. 2023, в 06:37

100000 руб./за проект

Минуточку внимания

Какие настройки нужно выполнить, чтобы опубликовать http сервис по нестандартному пути

(4) Попытки (перед каждой новой попыткой система возвращается в первоначальное состояние):

При выполнении запроса к сервису получаю ошибку:
Forbidden
You don’t have permission to access this resource. (403)

2) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал файл .htaccess со строками:
RewriteEngine On
При выполнении запроса к сервису получаю ошибку:
Internal Server Error
The server encountered an internal error or misconfiguration and was unable to complete your request.
Please contact the server administrator at admin@example.com to inform them of the time this error occurred, and the actions you performed just before this error.
More information about this error may be available in the server error log. (500)

3) в каталоге, где находится файл vrd сервиса, к которому идет обращение, создал вложенный каталог «api» и переместил туда файл vrd.

При выполнении запроса к сервису получаю ошибку:
1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсов
by reason:
Файл не обнаружен ‘C:1C_DB1C_WEBUT_Localdefault.vrd’. 2(0x00000002): Не удается найти указанный файл. (500)

Подскажите, что не так делаю?

(7) ошибки в этих двух строках:
# Order allow,deny
# Allow from all

если раскомментирю любую из них, апач не стартует

Источник

Не получается опубликовать веб-сервис

Добрый день!
Не получается опубликовать веб сервис. Точнее обратиться к нему через браузер — пишет ошибка 404 (страница не найдена).

Самописная конфигурация, платформа 1С 8.3. Веб сервер Апаче 2.2. База 1с находится на одном сервере, сервер 1с на другом, сервер апаче на третьем.

При публикации веб сервиса через: Администрирование — Публикация на веб-сервисе. — создается в каталоге файл default.vrd.

Пытаюсь в браузере (с сервера апаче) перейти по адресу «http://localhost/Имя_указанное_при_публикации/ws/имя_сервиса?wsdl» — выдает ошибку 404.

Не понимаю уже в какую сторону копать. Перерыл весь интернет, из подобных проблем — описано только в одной теме (http://www.bizkit.ru/2013/05/24/1722/). Но она не помогла.

Есть у кого какие идеи, в каком направлении искать?

Есть в браузере зайти просто в локалхост, он видит только этот единственный файл, его можно посмотреть — содержание ниже:

Если я не ошибаюсь, то не получится опубликовать не из под админа.

Может нужны какие-то дополнительные манипуляции с апачем?

Была проблема в сервере. Установил Апаче на свой ПК и с него все развернул и запустил. Заработало сразу.

Но при попытке выполнить процедуру веб сервиса вываливается ошибка:»<ОбщаяФорма.ФормаОбмена.Форма(26)>: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса: :Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP: HTTP Status 500 — Внутренняя ошибка сервера.
1C:Enterprise 8 application error:Ошибка при разборе дескриптора виртуальных ресурсовby reason: Файл не обнаружен ‘C:wwwdefault.vrd’. 2(0x00000002): Не удается найти указанный файл.»

Почему в ошибке указан файл в папке C:www? я его ни где не прописывал.
Решил изменить в конфиге апача директорию документов как раз на www, чтобы 1с создала там нужный файл.

Ошибка не пропала. Пробовал и сервер из под админа запускать, права на папку есть у всех (в том числе и у админа, от которого пробовал запускать сервер).

В базе веб сервиса в процедуре следующий код:

В другой базе добавил ws-ссылку на веб сервис.
Пытаюсь подключиться:

Пробовал и динамически создавать подключение:

Получаю следующую ошибку:
<ОбщаяФорма.ФормаОбмена.Форма(15)>: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. URL сервиса: http://localhost:80/Hello/ws/ws2.1cws?wsdl
Код ответа сервера: 500

(7) в том то и дело — там даже намека нет на эту папку, точнее не было.

Так как я потом сам поменял, чтобы доументы там хранились, но это не помогло.

Сам файл лежит в указанном пути, но ошибка не исчезает.

На всякий случай все после 1с publication выложу:
# 1c publication
Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

#
# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, «text/plain» is
# a good value. If most of your content is binary, such as applications
# or images, you may want to use «application/octet-stream» instead to
# keep browsers from trying to display binary files as though they are
# text.
#
#
# TypesConfig points to the file containing the list of mappings from
# filename extension to MIME-type.
#
#
# AddType allows you to add to or override the MIME configuration
# file specified in TypesConfig for specific file types.
#
#AddType application/x-gzip .tgz
#
# AddEncoding allows you to have certain browsers uncompress
# information on the fly. Note: Not all browsers support this.
#
#
# If the AddEncoding directives above are commented-out, then you
# probably should define those extensions to indicate media types:
#
#
# AddHandler allows you to map certain file extensions to «handlers»:
# actions unrelated to filetype. These can be either built into the server
# or added with the Action directive (see below)
#
# To use CGI scripts outside of ScriptAliased directories:
# (You will also need to add «ExecCGI» to the «Options» directive.)
#

# For type maps (negotiated resources):
#AddHandler type-map var

#
# Filters allow you to process content before it is sent to the client.
#
# To parse .shtml files for server-side includes (SSI):
# (You will also need to add «Includes» to the «Options» directive.)
#
#
# The mod_mime_magic module allows the server to use various hints from the
# contents of the file itself to determine its type. The MIMEMagicFile
# directive tells the module where the hint definitions are located.
#
#
# Customizable error responses come in three flavors:
# 1) plain text 2) local redirects 3) external redirects
#
# Some examples:
#ErrorDocument 500 «The server made a boo boo.»
#ErrorDocument 402 http://localhost/subscription_info.html
#

#
# MaxRanges: Maximum number of Ranges in a request before
# returning the entire resource, or one of the special
# values ‘default’, ‘none’ or ‘unlimited’.
# Default setting is to accept 200 Ranges.
#MaxRanges unlimited

#
# EnableMMAP and EnableSendfile: On systems that support it,
# memory-mapping or the sendfile syscall is used to deliver
# files. This usually improves server performance, but must
# be turned off when serving from networked-mounted
# filesystems or if support for these functions is otherwise
# broken on your system.
#
#EnableMMAP off
#
# The configuration files in the conf/extra/ directory can be
# included to add extra features or to modify the default configuration of
# the server, or you may simply copy their contents here and change as

# Server-pool management (MPM specific)

# Multi-language error messages

# Fancy directory listings
# User home directories

# Real-time info on requests and configuration
# Local access to the Apache HTTP Server Manual

# Distributed authoring and versioning (WebDAV)

# Various default settings
#
# Note: The following must must be present to support
# starting without SSL on platforms with no /dev/random equivalent
# but a statically compiled-in mod_ssl.
#

SSLRandomSeed startup builtin
SSLRandomSeed connect builtin

Извиняюсь, не знаю как тут прикреплять файлы/изображения. Выложу весь текст файла.

This XML file does not appear to have any style information associated with it. The document tree is shown below.

Источник

Интеграция 1С и C#

сервис кто предоставляет? 1С?

имхо iis криво настроен. базовая авторизация, а должна быть анонимная

(5) делаю публикацию на веб-сервере iis, да.

Как сделать анонимную, подскажите пожалуйста, буду признателен.

есть номер зем. участка. есть сайт госрееста. там есть форма куда можно номер вбить — в ответ будут две ссылки на описание участка в разных реестрах.

как это автоматизировать через 1с?

могу получить текст формы с сайта, а дальше чего?

парсить ее вставлять значение в нужное поле и отправлять форму обратно + submit()?

или как такое делается?

там url какой-то невменяемый.

или. а как можно посмотреть что по submit на сервер уходит?

var binding = new BasicHttpBinding();
<

<
var httpRequestProperty = new HttpRequestMessageProperty();
>
>

(28) Вы писали статью в которой прописывали следующий код
var uriString = @»http://localhost/LinqBD/odata/standard.odata/»;
var context = new ServiceReference1.EnterpriseV8(new Uri(uriString));

ServiceReference1 Вы создавали через «Reference — Add Service reference» однако я пока даже не могу создать данный класс для подключения к сервису.

(31) Да. А сервис на 1С у тебя работает?
Кроме того нужно галку на ODATA проставить при публикации и соответсвтвено прописать какие объекты будут использоваться

Кроме для ODATA или вэб сервисов можешь отключить авторизацию Как отключить http аутентификацию в 1с 8.3.7?

1C:Enterprise 8 application error:

Ошибка при разборе дескриптора виртуальных ресурсов
by reason:
Ошибка разбора XML: — [6,49] Фатальная ошибка: Input is not proper UTF-8, indicate encoding ! Bytes: 0xD1 0xE0 0xE9 0xF2 SystemId: file://C:/inetpub/wwwroot/1C/default.vrd

(35) 1С позволяет использовать и HTTP сервисы. Там тебе придется самоу сериализовать десериализовать. Хотя можно использовать обвязки например
https://habrahabr.ru/company/microsoft/blog/310704/

Самым популярным в настоящее время протоколом для общения мобильных приложений с сервером является REST в связке с Json. Поэтому наше сегодняшнее знакомство начнем с библиотеки Refit.

Refit позволяет описать спецификации для работы с REST-сервисом в виде простого Interface с понятным набором входных и выходных параметров, включая возможность манипулировать HTTP-заголовками для отдельных запросов.

var context = new StandardODATA.EnterpriseV8(new Uri(uriString));

А ты не используй CreateQuery.

var result = (from ТипыДокументов in context.Catalog_ТипыДокументов select ТипыДокументов).ToList();

An exception of type ‘System.Data.Services.Client.DataServiceQueryException’ occurred in Microsoft.Data.Services.Client.dll but was not handled in user code

Additional information: При обработке этого запроса возникла ошибка.

из-за того что убрал where такое вываливается? По идее в запросах он же необязательный

(52)
foreach(var c in context.Catalog_ТипыДокументов)
<
>

тоже выдает аналогичную ошибку

(61) у меня так. Если ставлю fiddler вываливается ошибка

(65) 1С:Предприятие 8.3 (8.3.8.1675)

не ставил, дома уже посмотрю тогда и отпишусь

Единственно, что нужно вместо Encoding.ASCII
использовать Encoding.UTF8

(74) Спасибо за помощь. Оказалось, что ты мне писал не совсем по теме, но для общего развития не помешало) В общем все было намного проще. Нужно было в C# проделать ряд операций:
1. References — Add service references
2. Нажать кнопку Advanced далее Add web references
3. Ввести веб-сервис
4. Ввести в окне авторизации пользователя IUSR

P.S. не знаю почему, но пришлось создать пользователя в 1С с именем IUSR и без пароля как и пользователя под которым выполняется запрос к публикации с 1С.

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

Ели у тебя английская версия то измени язык на английйский

(78) Читаю статью http://catalog.mista.ru/public/403524/ пытаюсь делать по аналогии, но:
Format подчеркивает красным, пишет, что такого нет

An exception of type ‘System.Data.Services.Client.DataServiceQueryException’ occurred in Microsoft.Data.Services.Client.dll but was not handled in user code

Additional information: An error occurred while processing this request.

в Exception пишет, что не прошел авторизацию

(79) Не используй CreateQuery
Пиши сразу 59.

(82) Хотя преобразование в формат JSon в ASP.NET MVC решается примерно так:

public JsonResult GetFormsForLevels1(int Id)
<

Источник

Мой личный опыт и заметки по использованию веб-сервисов. А также обработка для тестирования произвольного веб-сервиса.

В данной статье будет рассмотрены вопросы интеграции 1С с уже существующими веб-сервисами и использование самой 1С как веб-сервиса.

При этом под веб-сервисами будет пониматься системы, работающие в интернете и обеспечивающие взаимодействие с ними не только по SOAP (что является именно веб-сервисом), но и другими способами, включая обычные HTTP(S)-запросы.

Далее для экономии веб-сервис будет именоваться просто сервис.

Риски использования веб-сервисов 1С

В платформе 1С81 появилась реализация веб-сервисов.

Но их использование чревато рисками:

  1. 1С8 плохо работает через HTTPS, средства диагностики отсутствуют, поэтому понять, почему при наличии сертификата сервис не хочет работать через HTTPS порой невозможно. Выход — реализация веб-сервисов через CURL или поднятие HTTPS-туннеля.
  2. 1С8 придерживается своих правил валидации WSDL-схем. Порой по необъяснимым причинам WSDL-схема не хочет загружаться в WS-ссылку. Узнать причину можно только на партнерском форуме у одного специалиста. Средства диагностики WSDL-схемы отсутствуют, не указывается даже причина или строка, на которой прерывается загрузка схемы.

Правила построения сервисов по продаже

Клиенту выдается документ о продаже (чек) только в том случае, если транзакция по сервису прошла успешно. Иначе возможна ситуация, когда клиент получит чек и будет пребывать в уверенности, что получил услугу, а на самом деле это не так.

Использование внешних SOAP-сервисов

Веб-сервисы SOAP используют WSDL схемы и объекты XDTO для представления данных.

Загрузка WSDL

Для того, чтобы использовать внешний сервис, нужно загрузить его WSDL-схему.

Проверка валидности WSDL-схемы

Иногда WSDL-схема не загружается в 1С. Проверить валидность (правильность) схемы можно любым валидатором WSDL-схем, например http://www.validwsdl.com/.

Нужно загрузить схему на какой-нибудь http-сайт (можно по ftp) и указать адрес файла, в который загружена схема:

0cf117018693e70b9d4c79943cd8009a.jpg

Особенности загрузки WSDL в 1С

Особенность загрузки WSDL в 1С в том, что валидные схемы могут не загружаться. Никакого встроенного валидатора нет, поэтому приходится искать ошибку методом деструктивного анализа, последовательно уменьшая количество элементов в схеме. Можно, например, удалить описание веб-сервиса.

1С не любит слово «policies». Если WS-ссылка не загружается, нужно убрать все, что связано с этим словом в любом XML-редакторе.

Обработка для тестирования работающего внешнего веб-сервиса

Для тестирования работающего внешнего веб-сервиса используйте обработку «ТестПроизвольногоВебСервиса.epf» из пакета к этой статье.

Тестирование можно использовать на примере сервиса Morpher, склоняющего имена (адрес сервиса http://www.morpher.ru/WebServices/Morpher.asmx?WSDL ):

Таким способом можно протестировать любой сервис, который имеет простые точки входа, содержащие параметры простых типов: число, дата, строка.

В обработке можно указать также логин и пароль, которые требуются для авторизации доступа к веб-сервису.

Стандартные средства отладки сервисов

Для отладки можно использовать программу SoapUI, который может передать произвольный запрос веб-сервису и получить от него ответ.

SOAP и HTTPS

К сожалению, SOAP в 1С достаточно капризно ведет себя при работе через протокол HTTPS, практика показывает, что добиться HTTPS соединения невозможно, хотя возможность и продекларирована в платформе. Сказывается отсутствие средств диагностики и отладки для выяснения причин, из-за которых не устанавливается соединение. Поэтому удобно использовать SOAP через CURL.

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

Использование 1С как сервиса

Правила разработки сервиса на базе 1С

Операция «Hello»

Правилом хорошего тона является создание в сервисе операцию, которая информирует о том, что сервис доступен. Это облегчает жизнь интеграторов, им будет проще проверять, налажена ли связь с сервисом.

Например, можно использовать операцию Hello без параметров, которая просто возвращает булево значение Истина.

Публикация веб-сервиса

Процедура хорошо описана в документации: file:///C:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm#_Toc176167634 :

Задача публикации Web-сервисов сводится к размещению конфигурационных файлов *.1cws Web-сервисов в соответствующем каталоге веб-сервера с соответствующими настройками для веб сервера. Для того, чтобы выполнить публикацию Web-сервисов, следует выполнить команду меню «Администрирование | Публикация Web-сервисов».

В результате выполнения этой команды будет открыто окно публикации Web-сервисов.

Окно публикации Web-сервисов содержит путь к веб-серверу и два списка:

  • «Web-сервисы» — список Web-сервисов конфигурации;
  • «Публикация» — список Web-сервисов, опубликованных на указанном веб-сервере.

С помощью кнопки «Соединение…» следует указать веб-сервер, на котором требуется опубликовать Web-сервисы.

Окно выбора пути к веб-серверу позволяет указать путь двумя способами:

  • на закладке «Файлы» — этот способ используется в том случае, когда публикация выполняется на том же компьютере, на котором установлен веб-сервер. В качестве пути указывается локальный каталог, соответствующий интернет-странице, с которой будет выполняться вызов публикуемого Web-сервера;
  • на закладке «FTP сайт» — этот способ используется в том случае, когда требуется опубликовать Web-сервис на удаленном компьютере. Для выполнения публикации необходимо указать параметры FTP-соединения с удаленным компьютером и каталог, в котором будет опубликован Web-сервис.

Публикация выбранного Web-сервиса осуществляется с помощью кнопки «Опубликовать»

Для отмены публикации Web-сервиса используется кнопка «Удалить».

Для обновления списка опубликованных Web-сервисов используется кнопка «Обновить текущий список».

Публиковать можно в локальном каталоге или по FTP. Можно публиковать и на удаленный сервер по UNC-пути, если удаленный сервер входит в локальную сеть.

80b4bb6b7ed464fd32702566f0250922.jpg

После публикации веб-сервис доступен по адресу «http://localhost/test.1cws» или «http://xxx.ru/test.1cws», где xxx.ru — адрес удаленного сервера а localhost — типовой адрес локального сервера.

Авторизация к веб-сервису 1С

Для доступа к сервису нужно пройти аутентификацию.

Вопросы авторизации хорошо рассмотрены тут: http://www.forum.mista.ru/topic.php?id=341168 и в документации file:///c:/Program%20Files/1cv81/AddDoc/RU/V8AddDoc81.htm

Обычно веб-сервис работает под одним конкретным пользователем (чаще — специально созданным). Можно пользователя 1С «прикрепить» средствами Windows-аутентификации к пользователю Windows IUSR_ (для пользователя отключить авторизацию 1С). Как вариант, можно очистить список пользователей 1С, тогда авторизация не требуется.

Если требуется несколько пользователей, то можно создать несколько логинов для веб-сервера, к каждому из них привязать пользователя Windows и соответственно, прописать в 1С доступ к пользователям Windows.

В свойствах Пользователь и Пароль объекта WSПрокси используется не логин 1С, а логин пользователя веб-сервера.

Тестирование веб-сервиса 1С

Для тестирования 1С как веб-сервиса используйте обработку «ТестПроизвольногоВебСервиса.epf», как описано в разделе «Тестирование работающего внешнего веб-сервиса».

Файл 1cws и является WSDL-описанием веб-сервиса 1С.

Использование сервисов в Рознице

Обычно в рознице сервисы используются для оказания различных услуг населению — прием платежей, погашение кредитов, денежные переводы, покупка программного обеспечения и т.п.

При этом по оказанной услуге в 1С формируется чек, в котором сохраняются параметры транзакции. После чего этот чек распечатывается клиенту с подробной информацией об оказанной услуге. Возможна печать предварительного чека, для того, чтобы клиент подтвердил введенные с его слов данные своей подписью.

Сервис может быть по-разному интегрирован в розничную программу, написанную на языке 1С (УТ, Розница и другие):

  1. Может быть написана обработка или код на языке 1С, который выполняет всю работу с сервисом.
  2. Может использоваться программа, которая работает с сервисом, а в 1С передает только информацию для пробития чеков.

Организация служебных данных в 1С

Для хранения информации о транзакции в чеке необходимо создать дополнительную табличную часть «Сложные продажи» с реквизитами:

  • Номенклатура — привязка к номенклатуре чека.
  • Параметр — ссылка на справочник «Сложные продажи: Параметры».
  • Значение — значение параметра, составного типа. Строковое представление должно быть довольно длинным (1024 символа), чтобы помещался текст чека.

Справочник «Сложные продажи: Параметры» содержит перечень параметров транзакции.

Табличную часть выгоднее использовать, чем набор реквизитов, т.к. у транзакции их может быть очень много, а в других чеках, не связанных с сервисом, эти реквизиты не будут использоваться, и будут занимать лишнее место. Кроме того, такое решение универсально для любого сервиса и не требует реструктуризации данных после внедрения нового сервиса.

Продавцу делается отдельная закладка (или печатная форма, чтобы не менять конфигурацию), в которой он может посмотреть табличку реквизитов транзакции для чека.

Использование обработок на языке 1С

Рассмотрим на примере условной услуги Paym для конфигурации «Розница».

  1. Заведем в 1С предопределенный элемент справочника номенклатуры «Paym». В режиме 1С:Предприятия после обновления конфигурации ему нужно назначить вид товара «Услуга».
  2. В процедуре «Добавить номенклатуру в таб. часть» модуля формы «Регистрация продаж» вызываем обработку работы с сервисом, написанную на языке 1С. В случае успешного осуществления платежа записываем и проводим чек:


Если (Номенклатура = Справочники.Номенклатура.Paym) И (ВидОперации Перечисления.ВидыОперацийЧекККМ.Возврат) Тогда
ОбработкаПлатежа = Функции.ДатьВнешнююОбработку("Paym");
ФормаПлатежа = ОбработкаПлатежа.ПолучитьФорму();
Результат = ФормаПлатежа.ОткрытьМодально();
Если Результат = Неопределено Тогда
Возврат;
КонецЕсли;
ЭтотОбъект.Записать(РежимЗаписиДокумента.Проведение);
КонецЕсли;

  1. Обработка должна напечатать предчек (если требуется), заполнить табличную часть сложных продаж и подготовить текст печати чека в предопределенном реквизите «PaymТекстЧека».
  2. В процедуре «Провести и распечатать чек» модуля чека подменяем наименование товара на сохраненное в реквизите для чека. Текст подменяется только для продажи, для возврата печатается просто название услуги, как обычно.


ИначеЕсли ВидОперации Перечисления.ВидыОперацийЧекККМ.Возврат И Выборка.НомеклатураСсылка = Справочники.Номенклатура.Paym Тогда
//Осипов PaymMaster
СтрокаСложныхПродаж = СложныеПродажи.Найти(Справочники.СложныеПродажиПараметры.PaymТекстЧека, "Реквизит");
Если СтрокаСложныхПродаж Неопределено Тогда
Товар.Наименование = СокрЛП(СтрокаСложныхПродаж.Значение);
КонецЕсли;

Отдельный вопрос — как обеспечить завершенность транзакции. Т.е. если транзакция прошла в сервисе, как сделать, чтобы она не потерялась в 1С. Наиболее оптимальный путь — сверка реестров. Но это предмет отдельного рассмотрения.

Использование программ, интегрируемых с 1С

XDTO

Часто в веб-сервисах используется XDTO. Приведем наиболее важные советы и рецепты по использованию XDTO в 1С.

XDTO в платформе 1С

XDTO-пакеты, описанные в ветке «XDTO-объекты» конфигурации, доступны для создания типов и объектов в глобальной фабрике Фабрика XDTO. Это не сразу становится очевидным.

Некоторые типы в схеме не имеют имени, чтобы их получить, надо пройтись по иерархии типов.

В примере был описан список System, содержавший структуры XDTO. Чтобы создать саму структуру, нужно было получить ее тип таки вот образом:


Тип = Фабрика.Тип("urn:my.ru:MasterData:Business", "Business").Свойства.Получить("System").Тип;

Частые проблемы с XDTO

Разные форматы XSD-схем

В некоторых форматах теги называются xs:, в некоторых xsd:, но 1С благополучно понимает оба формата. Однажды была ситуация, что XSD нормально без ошибок импортировалась в 1С, но не создавала ни одного пакета. Причина была в отсутствии атрибута targetNamespace у тега , соответственно 1С не знала, в какой пакет помещать схему, но ошибок не выдавала.

Сопровождение сервисов

Учитывая, что сервис — это совокупность двух систем — 1С и внешней, ошибки могут быть в обоих системах, что снижает общую надежность работы.

Для того, чтобы проще было разбираться в причинах отказов в работе сервисов, рекомендуется использовать комплекс мер.

Протоколирование запросов

Рекомендуется сохранять все запросы и ответы на них в каталог программы, файлы сохранять в папки вида ГГГГММДД по дням. Это очень способствует пониманию причин проблем.

Ссылки

  • XDTO
    • Хорошее описание XDTO http://pro1c.org.ua/index.php?showtopic=214
  • Бесплатные интересные веб-сервисы:
    • Аэрофлот — информация о расписании самолетов
    • Морфер — склонение имен http://www.morpher.ru/WebServices/Morpher.aspx
  • Неразобранные:
    • Установка и использование Веб-сервисов
      • v8: как изменить конфигурационный файл апача?
      • v8: продолжение темы с web-сервисами — не могу подключить web-сервис
      • v8: дальше ползу по веб-сервисам — не могу создать прокси…
      • Книга знаний: v8: Использование внешних web-сервисов в 1С:Предприятие 8;

Возникла необходимость взаимодействовать с 1C с мобильного клиента под Windows Phone 7/8. Самым простым способом взаимодействия показалось работа через web сервисы, поддерживаемые 1С.

С точки зрения публикации web сервиса особых сложностей нет. Шаги подробно описаны в статьях:

  • http://habrahabr.ru/post/136684/
  • http://howknow1c.ru/programmirovanie-1c/web-servisy-1s.html
  • http://infostart.ru/public/86791/
  • http://1cprogrammistu.ru/60-sozdanie-web-servisa-v-1s-predpriyatii.html
  • http://www.basic.visual2000.ru/kolesov/pcmag/2006-1c/2006-05/web_1c.htm
  • http://v8.1c.ru/overview/Term_000000286.htm
  • http://1c-dn.com/forum/forum1/topic1184/
  • http://fixin.com.ru/articles/1s_web_services/article.htm
  • http://infostart.ru/public/327963/

Проблемы возникли с доступом к опубликованному web-сервису 1С. Под IIS 7.5 из под Windows 2008R2 после полудня танцев с бубном проблему решить не удалось. Были изучены статьи и ветки форумов:

  • http://infostart.ru/public/75205/
  • http://www.forum.mista.ru/topic.php?id=568905
  • http://www.forum.mista.ru/topic.php?id=665708
  • http://www.forum.mista.ru/topic.php?id=539933
  • и т.д.

но счастье так и не наступило. 

В результате решил, что стоит попробовать поднять web сервис на Apache, поскольку с ним у меня обычно все было несколько проще с настройкой. Итак, на другом порту (8080) на том-же сервере был поднят Apache 2.2.22. В 1С был создан ещё один web сервис и опубликован уже на Apache. С настройками по умолчанию он также не заработал. Разберем ошибки.

Web сервис был опубликован в 1С под именем wsApache.

Публикация web-сервиса 1С

Публикация web-сервиса 1С под Apache

Соответственно, в указанном при публикации каталоге появился файл default.vrd следующего содержания:

В httpd.conf 1С добавила следующие строчки:

# 1c publication

LoadModule _1cws_module "C:/Program Files (x86)/1cv82/8.2.17.153/bin/wsap22.dll"

Alias "/ws" "C:/inetpub/wwwroot/ws/"

<Directory "C:/inetpub/wwwroot/ws/">

    AllowOverride All

    Options None

    Order allow,deny

    Allow from all

    SetHandler 1c-application

    ManagedApplicationDescriptor "C:/inetpub/wwwroot/ws/default.vrd"

</Directory>

В целом, файлы/изменения создаваемые 1С почти рабочие.  Теперь о проблемах.

Правильный линк на сервис

В некоторых статьях путь к web сервису указан как: http://имя_сервера:порт/имя_при_публикации/alias?wsdl.

В моем случае:

  • Имя сервера: s-1s-1-hw
  • Порт: 8080
  • Имя при публикации: wsApache
  • Alias из файла default.vrd: service.1cws

Соответственно, НЕПРАВИЛЬНАЯ ссылка на web сервис 1С такая: http://s-1c-1-hw:8080/wsApache/service.1cws?wsdl

Если использовать такой линк, то 1C 8.2 выдаст сообщение вида:

1C:Enterprise 8 application error:

HTTP: Not found Ошибка при работе с ресурсом /ws/service.1cws

Правильный вариант:

http://имя_сервера:порт/имя_при_публикации/ws/alias?wsdl.

Это обращение эквивалентно обращению по имени сервиса из default.vrd:

http://имя_сервера:порт/имя_при_публикации/ws/name?wsdl.

В моем случае:

  • Name из файла default.vrd: Service

Соответственно, ПРАВИЛЬНЫЙ линк для доступа к web сервису 1С будет такой:

http://s-1c-1-hw:8080/wsApache/ws/service.1cws?wsdl

или такой

http://s-1c-1-hw:8080/wsApache/ws/service?wsdl

Если указать ссылку с суффиксом ?wsdl, то в веб браузере отобразиться XML файл с описанием опубликованного сервиса.

Если указать ссылку без суффикса ?wsdl, то при правильной настройке должна появится страница с гиперссылкой на опубликованный сервис:

http://s-1c-1-hw:8080/wsApache/ws/Service

Авторизация пользователя при обращении к web сервису 1С

Если попытаться получить доступ к web сервису опубликованному под Apache не исправляя файл default.vrd, то появиться стандартный диалог авторизации:

Диалог авторизации на web сервисе 1С

Диалог авторизации на web сервисе 1С

В тестовой базе был заведен тестовый пользователь IUSR с полными правами с пустым паролем. Если ввести в диалог в качестве логина этого пользователя, то авторизация пройдет успешно и отобразиться либо XML файл, либо ссылка на него (см. выше).

Можно исключить запрос авторизационной информации вбив логин и пароль прямо в файл default.vrd, что, конечно, не рекомендуется с точки зрения безопасности, но иногда необходимо.

Это все. В моем случае каких-то дополнительных правок конфиг файлов не потребовалось.

В некоторых статьях указывалось, что нужно убрать из httpd.conf опцию «Options None«. У меня работает в обоих вариантах, т.е. когда строка присутствует и когда она удалена.

Публикация web сервиса 1С на IIS 7.5

Как уже упоминал выше, с публикацией web сервиса на IIS 7.5 с первого раза у меня не задалось, хотя тонкий клиент запускается без проблем. Поскольку пароль в конфигурационном файле по соображениям безопасности меня не устраивал, вернулся к вопросу настройки IIS.  Был опубликован web сервис с именем wsIIS и именем сервиса ServiceIIS и alias-ом serviceIIS.1cws. Галка в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере» для простоты эксперимента была снята.

Публикация web сервиса 1С в IIS 7.5.

Публикация web сервиса 1С в IIS 7.5.

Корректная ссылка в моем случае: http://s-1c-1-hw/wsIIS/ws/ServiceIIS?wsdl. При попытке зайти из Chrome/IE получаем ошибку возвращенную IIS:

Ошибка HTTP 401.2 — Unauthorized

дабы избавиться от ошибки правим web.config сформированный 1С следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <handlers>

            <add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:Program Files (x86)1cv82binwsisapi.dll" resourceType="Unspecified" requireAccess="None" />

        </handlers>

        <security>

            <authorization>

                <add accessType="Allow" users="*" />

            </authorization>

        </security>

    </system.webServer>

</configuration>

Эта правка эквивалента изменению через консоль управления IIS для нашего опубликованного приложения с именем wsIIS  правил авторизации пользователя.

Настройки IIS 7.5 для доступа к web сервисам 1C

Настройки IIS 7.5 для доступа к web сервисам 1C

Добавление тегов security в web.config или правка правил авторизации в консоли IIS приводит к тому, что при обращении к сервису по указанной выше ссылке появляется запрос на авторизацию. Вводим нашего тестового пользователя IUSR без пароля и получаем нужный XML файл в ответе сервера.

Прописав в default.vrd логин и пароль пользователя, как было указано выше для Apache, уберем окно авторизации и сервис будет всегда авторизовываться под указанным пользователем. Как проходит авторизация можно посмотреть в логах 1C. Но вариант с прописыванием пользователя в конфигурационный файл — не наш путь, ибо не секьюрно.

Изменим настройки авторизации пользователя (в IIS проверка подлинности), чтобы использовалась Windows авторизация. Сменить можно в консоли управления IIS, либо в конфигурационном  файле. Мне больше нравиться конфигурационный файл. так как проще переносить настройки при миграции на другой сервер.

Поскольку изменения секции web.config <authentication> заблокированы на уровне IIS в файле

%windir%system32inetsrvconfigapplicationHost.config

нужно зайти туда и сменить «Deny» на «Allow» для секции «authentication»:

<sectionGroup name="authentication">

    <section name="anonymousAuthentication" overrideModeDefault="Allow" />

    <section name="basicAuthentication" overrideModeDefault="Allow" />

    <section name="clientCertificateMappingAuthentication" overrideModeDefault="Deny" />

    <section name="digestAuthentication" overrideModeDefault="Deny" />

    <section name="iisClientCertificateMappingAuthentication" overrideModeDefault="Deny" />

    <section name="windowsAuthentication" overrideModeDefault="Allow" />

</sectionGroup>

после чего РАБОЧИЙ web.config для опубликованного web сервиса 1С будет выглядеть следующим образом:

<?xml version="1.0" encoding="UTF-8"?>

<configuration>

    <system.webServer>

        <handlers>

            <add name="1C Web-service Extension" path="*" verb="*" modules="IsapiModule" scriptProcessor="C:Program Files (x86)1cv82binwsisapi.dll" resourceType="Unspecified" requireAccess="None" />

        </handlers>

        <security>

            <authorization>

                <add accessType="Allow" users="*" />

            </authorization>

         <authentication>

            <windowsAuthentication enabled="true" useKernelMode="true">

                    <providers>

                        <clear />

                        <add value="Negotiate" />

                        <add value="NTLM" />

                  </providers>

                    <extendedProtection tokenChecking="Allow" />

            </windowsAuthentication>

            <basicAuthentication enabled="false" />

            <anonymousAuthentication enabled="false" />

         </authentication>

        </security>

    </system.webServer>

</configuration>

Эквивалент последней выполненной операции (настройка <authentication>) — публикация сервиса с включенной галкой в чекбоксе «Использовать аутентификацию операционной системы на веб-сервере». 1С при публикации меняет эту настройку не в web.config, а в настройках IIS через API. В любом случае изменения должны быть видны в консоли управления IIS:

Настройка аутентификации при публикации web сервиса 1С в IIS

Настройка аутентификации при публикации web сервиса 1С в IIS

На всякий случай для проверки настроек при публикации web сервиса имеет смысл в консоли управления IIS зайти в следующие разделы:

Публикация web сервиса 1С в IIS. Настройка через консоль.

Публикация web сервиса 1С в IIS. Настройка через консоль.

После указанной выше настройки web.config, удаляем жестко прописанные логин и пароль из  файла default.vrd. На всякий случай перегружаем IIS. Если для доменных пользователей прописаны корректные соответствия в учетных записях 1С, то авторизация пройдет прозрачно под доменными учетными записями, в чем можно будет убедиться посмотрев в логах авторизации 1С. 

Здесь приводится ряд ошибок IIS (и способы их устранения) которые с высокой вероятностью могут возникнуть при публикации web сервиса 1С на IIS.

Доступ из Visual Studio 2012

Как подробно описано в статье на хабре, чтобы добавить ссылку на опубликованный web сервис 1С в Visual Studio для разработки клиента необходимо создать приложение (например, консольное), кликнуть правой кнопкой мышки на solution и выбрать пункт «Add Service Reference…». Следует обратить внимание на точное указание ссылки непосредственно на WSDL описание, т.е. без указания суффикса ?wsdl Visual Studio ничего не обнаружит.

Добавление reference к web службе 1С из Visual Stiudio.

Добавление reference к web службе 1С из Visual Stiudio.

Далее разрабатываем обычный клиент для web сервиса.

Удачи!!!

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

Модераторы: Дмитрий Юхтимовский, Лысиков Денис

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

просим отнестись с пониманием

Гилёв Вячеслав
 
Сообщений: 2544
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 09:56

Сервис SQLSize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 11:31

Сервис sqlsize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение EuLeEr » 17 июн 2013, 20:10

Личные сообщения запрещены и я не нашел, куда могу написать.
13.06.2013 года активировал свою учетную запись , потом через 3 минуты пришло сообщение
«Заявка на регистрацию учетной записи успешно выполнена!»и с тех пор так и нет подтверждения регистрации учетной записи, которое, как я понял из инструкций, должно прийти в виде имени пользователя и пароля для сервисов gilev.ru
Это сбой в системе регистрации или проблема на моей стороне — мой почтовый сервер выкинул письмо от вашего сервиса ?
Или быть может я вообще чего-то не понял ;-) ?

EuLeEr
 
Сообщений: 1
Зарегистрирован: 17 июн 2013, 19:32

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение Гилёв Вячеслав » 21 июн 2013, 18:28

Совершенно верно, Вам должно прийти письмо с подтверждением с логином и паролем. Часто попадает в спам, обязательно проверьте там.
Если не разберетесь, пишите на

gilv@rarus.ru

Гилёв Вячеслав
 
Сообщений: 2544
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Вернуться в Сервисы gilev.ru

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

Модераторы: Дмитрий Юхтимовский, Лысиков Денис

Переводим сервисы на 8.3.3, возможны некоторые шероховатости

просим отнестись с пониманием

Гилёв Вячеслав
 
Сообщений: 2719
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 09:56

Сервис SQLSize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение syncmas » 13 июн 2013, 11:31

Сервис sqlsize пока не работает. Пишет вот что:
1C:Enterprise 8 application error:

Ошибка установки соединения
by reason:
server_addr=tcp://skynet:5541 descr=192.168.0.3:5541:10061(0x0000274D): Подключение не установлено, т.к. конечный компьютер отверг запрос на подключение. ; line=813 file=SrcDataExchangeTcpClientImpl.cpp

syncmas
 
Сообщений: 8
Зарегистрирован: 19 май 2013, 16:45


Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение EuLeEr » 17 июн 2013, 20:10

Личные сообщения запрещены и я не нашел, куда могу написать.
13.06.2013 года активировал свою учетную запись , потом через 3 минуты пришло сообщение
«Заявка на регистрацию учетной записи успешно выполнена!»и с тех пор так и нет подтверждения регистрации учетной записи, которое, как я понял из инструкций, должно прийти в виде имени пользователя и пароля для сервисов gilev.ru
Это сбой в системе регистрации или проблема на моей стороне — мой почтовый сервер выкинул письмо от вашего сервиса ?
Или быть может я вообще чего-то не понял ;-) ?

EuLeEr
 
Сообщений: 1
Зарегистрирован: 17 июн 2013, 19:32

Re: Переводим сервисы на 8.3.3, возможны некоторые шероховат

Сообщение Гилёв Вячеслав » 21 июн 2013, 18:28

Совершенно верно, Вам должно прийти письмо с подтверждением с логином и паролем. Часто попадает в спам, обязательно проверьте там.
Если не разберетесь, пишите на

gilv@rarus.ru

Гилёв Вячеслав
 
Сообщений: 2719
Зарегистрирован: 11 фев 2013, 15:40
Откуда: Россия, Москва


Вернуться в Сервисы gilev.ru

Кто сейчас на форуме

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1

  • 1c bitrix ошибка при создании файла
  • 1b5e ошибка daf 105
  • 1b5102 bmw ошибка f30
  • 1b5102 bmw ошибка f10
  • 1b000b ошибка мерседес актрос