1с ошибка при создании описания веб сервиса

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

Vir_Rus

21.08.19

14:32

Добрый день!

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

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

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

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

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

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

Спасибо

1

Vir_Rus

21.08.19

14:45

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

<?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=»/Obmen»

        ib=»Srvr=&quot;10.194.11.201&quot;;Ref=&quot;gdctest2&quot;;»>

    <ws publishExtensionsByDefault=»true»>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

</point>

2

НЕА123

21.08.19

14:50

ХЗ.

м.б. конфигуратор при публикации был запущен не под администратором

3

Vir_Rus

21.08.19

14:57

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

Дело не в этом.

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

4

Жан Пердежон

21.08.19

15:23

(3) ну так почитал бы гайды сначала, с IIS тоже манипуляции могут потребоваться

5

Vir_Rus

22.08.19

12:41

Всем привет!

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

Но при попытке выполнить процедуру веб сервиса вываливается ошибка:»{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

Почему в ошибке указан файл в папке C:\www? я его ни где не прописывал…

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

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

6

Vir_Rus

22.08.19

12:46

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

Функция Приветствие(Параметр1)

    Возврат Неопределено;

КонецФункции

В другой базе добавил ws-ссылку на веб сервис.

Пытаюсь подключиться:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

    Соединение.Пользователь = «****»;

    Соединение.Пароль = «****»;

    Попытка

        Ответ = Соединение.Приветствие(«132»);

        Сообщить(Ответ);

    Исключение

        Сообщить(ОписаниеОшибки());

    КонецПопытки;

в результате ошибка.

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

УРЛ = «http://localhost:80/Hello/ws/ws2.1cws?wsdl»;;

    Пространство = «Obmen»;

    ИмяСервиса = «Hello»;

    ИмяТочкиПодключения = «HelloSoap»;

    
    Попытка

        Определение = новый WSОпределения(УРЛ,,,,20);

        Соединение = Новый WSПрокси(Определение,Пространство,ИмяСервиса,ИмяТочкиПодключения,,150);

    Исключение

        Сообщить(ОписаниеОшибки());

        Возврат;

    КонецПопытки;

Получаю следующую ошибку:

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

Код ответа сервера: 500

7

ptiz

22.08.19

13:06

(5) «я его ни где не прописывал» — ищи в файле настроек апача httpd.conf

8

Vir_Rus

22.08.19

13:17

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

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

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

9

DrWatson

22.08.19

13:18

(5) А разве это сообщение не значит, что с настройками всё хорошо, веб-сервис вызывается. Но 1С не нравится твоя функция Приветствие(). Может стоит убрать у неё параметр?

10

Vir_Rus

22.08.19

13:28

(9) Убирал, результат тот же

11

ptiz

22.08.19

13:49

(8) Покажи, что у тебя в файле httpd.conf в блоке после:

# 1c publication

12

Vir_Rus

22.08.19

13:53

На всякий случай все после 1с publication выложу:

# 1c publication

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

    AllowOverride All

    Options None

    Order allow,deny

    Allow from all

    SetHandler 1c-application

    ManagedApplicationDescriptor «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd»

</Directory>

#

# 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.

#

DefaultType text/plain

<IfModule mime_module>

    #

    # TypesConfig points to the file containing the list of mappings from

    # filename extension to MIME-type.

    #

    TypesConfig conf/mime.types

    #

    # 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.

    #

    #AddEncoding x-compress .Z

    #AddEncoding x-gzip .gz .tgz

    #

    # If the AddEncoding directives above are commented-out, then you

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    #

    # 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.)

    #

    #AddHandler cgi-script .cgi

    # 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.)

    #

    #AddType text/html .shtml

    #AddOutputFilter INCLUDES .shtml

</IfModule>

#

# 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.

#

#MIMEMagicFile conf/magic

#

# 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 404 /missing.html

#ErrorDocument 404 «/cgi-bin/missing_handler.pl»

#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

#EnableSendfile off

# Supplemental configuration

#

# 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

# necessary.

# Server-pool management (MPM specific)

#Include conf/extra/httpd-mpm.conf

# Multi-language error messages

#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings

#Include conf/extra/httpd-autoindex.conf

# Language settings

#Include conf/extra/httpd-languages.conf

# User home directories

#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration

#Include conf/extra/httpd-info.conf

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual

#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)

#Include conf/extra/httpd-dav.conf

# Various default settings

#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections

#Include conf/extra/httpd-ssl.conf

#

# 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.

#

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

13

ptiz

22.08.19

13:59

(12) Теперь проверь — всё ли правильно написано в этом файле: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd

14

Vir_Rus

22.08.19

14:06

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

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

<definitions xmlns=»http://schemas.xmlsoap.org/wsdl/»; xmlns:soap12bind=»http://schemas.xmlsoap.org/wsdl/soap12/»; xmlns:soapbind=»http://schemas.xmlsoap.org/wsdl/soap/»; xmlns:tns=»Obmen» xmlns:wsp=»http://schemas.xmlsoap.org/ws/2004/09/policy»; xmlns:wsu=»http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd»; xmlns:xsd=»http://www.w3.org/2001/XMLSchema»; xmlns:xsd1=»Obmen» name=»Hello» targetNamespace=»Obmen»>

<types>

<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»; xmlns:xs1=»Obmen» targetNamespace=»Obmen» elementFormDefault=»qualified»>

<xs:element name=»Приветствие»>

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name=»ПриветствиеResponse»>

<xs:complexType>

<xs:sequence>

<xs:element name=»return» type=»xs:all» nillable=»true»/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

</types>

<message name=»ПриветствиеRequestMessage»>

<part name=»parameters» element=»tns:Приветствие»/>

</message>

<message name=»ПриветствиеResponseMessage»>

<part name=»parameters» element=»tns:ПриветствиеResponse»/>

</message>

<portType name=»HelloPortType»>

<operation name=»Приветствие»>

<input message=»tns:ПриветствиеRequestMessage»/>

<output message=»tns:ПриветствиеResponseMessage»/>

</operation>

</portType>

<binding name=»HelloSoapBinding» type=»tns:HelloPortType»>

<soapbind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soapbind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soapbind:body use=»literal»/>

</input>

<output>

<soapbind:body use=»literal»/>

</output>

</operation>

</binding>

<binding name=»HelloSoap12Binding» type=»tns:HelloPortType»>

<soap12bind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soap12bind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soap12bind:body use=»literal»/>

</input>

<output>

<soap12bind:body use=»literal»/>

</output>

</operation>

</binding>

<service name=»Hello»>

<port name=»HelloSoap» binding=»tns:HelloSoapBinding»>

<documentation>

<wsi:Claim xmlns:wsi=»http://ws-i.org/schemas/conformanceClaim/»; conformsTo=»http://ws-i.org/profiles/basic/1.1″/>;

</documentation>

<soapbind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

<port name=»HelloSoap12″ binding=»tns:HelloSoap12Binding»>

<soap12bind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

</service>

</definitions>

15

ptiz

22.08.19

14:16

(14) Это ответ веб-сервиса, значит — работает.

16

Йохохо

22.08.19

14:18

(15) это копипаст из блокнота)

17

ptiz

22.08.19

14:19

(14) У тебя «Имя файла публикации» заполнено в свойстве веб-сервиса?

18

ptiz

22.08.19

14:20

(14) И покажи содержимое файла default.vrd

19

Vir_Rus

22.08.19

15:02

(17) заполнено (18)

<?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=»/Hello»

        ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;»>

    <httpServices publishByDefault=»false»/>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

    <ws>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

        <point name=»Hello»

                alias=»ws2.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

</point>

20

ptiz

22.08.19

15:22

21

Йохохо

22.08.19

15:27

ib=»Srvr=&quot;sd-s-vm02&quot;

попробуйте по айпи

22

Йохохо

22.08.19

15:29

ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;» странно выглядит

ib=»Srvr=sd-s-vm02;Ref=gdctest2;»

23

Vir_Rus

22.08.19

15:32

(20) Открывается

http://localhost:80/Hello если так — то доступ к базе будет из браузера

24

Vir_Rus

22.08.19

15:35

(21) т.е. попробовать отредактировать этот файл? и написать там айпи вместо названия?

25

Vir_Rus

22.08.19

15:36

(22) Во всяком случае, если бы дело было в этом — я бы не смог зайти в базу из браузера. Так что не думаю что проблема тут

26

Йохохо

22.08.19

15:39

(23) открывается это именно текст из (24) виден в браузере?

27

Vir_Rus

22.08.19

15:45

(26) Виден текст из (14) если из браузера переходить http://localhost/Hello/ws/Hello?wsdl

А (19) это содержимое файла default.vrd

28

ptiz

22.08.19

15:57

(27) Команду: новый WSОпределения() выполняешь в какой базе? Файловая? Серверная? С какого компьютера?

А то ведь localhost будет доступен только с того компа, где апач.

29

Vir_Rus

22.08.19

16:05

(28) новый WSОпределения() выполняю на своем ПК, на нем же стоит Апач. Базы серверные.

При выполнении данной команды получаю ошибку:

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

Код ответа сервера: 500

У меня веб сервис основной забы подключен в ws-ссылки в «мобильной» базе. Из нее сразу создаю wsПрокси:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

И получаю ошибку:

«{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

30

Vir_Rus

23.08.19

08:53

Возможно нашел причину возникновения ошибки…

Сейчас ради эксперимента выключил сервер апач и попробовал выполнить веб сервис. получил точно такую же ошибку.

Получается из 1с не виден сервер апача…

Потому что из браузера все работает нормально.

В чем может быть ошибка? Какие-нибудь права 1с-ке нужны?

31

ptiz

23.08.19

09:03

(29) Замени наконец localhost на нормальное имя компьютера, или (ещё лучше) — IP-адрес.

32

Vir_Rus

23.08.19

09:07

(31) Уже заменил на локальный адрес 127.0.0.1 — не помогло

33

Василий Алибабаевич

23.08.19

09:08

(12) Иттить колотить….

Вы на полном серьезе считаете нормальным вот такой путь: Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>?

34

Vir_Rus

23.08.19

09:08

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

35

Vir_Rus

23.08.19

09:09

(33) переделал путь на c:/www/ — тут уже лежит веб сервис — результат не изменился…

36

Василий Алибабаевич

23.08.19

09:10

+ (33) Тем более с учетом того, что в ошибке указан путь: ‘C:\www\default.vrd’ ЦЫ(28) ???

37

Василий Алибабаевич

23.08.19

09:10

(35) Переделал как? Что изменял?

38

ДенисЧ

23.08.19

09:11

А у тебя Апачу разрешено слушать какой-то адрес, кроме локохоста?

39

Vir_Rus

23.08.19

09:12

(37) папку публикации веб сервиса и в конфиге апача строку documentsdirectory — вроде так она называется на путь «c:/www»

40

ПускинАС

23.08.19

09:12

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

41

ПускинАС

23.08.19

09:16

(0) Поставь апач нормально, нормальный, и будет тебе ок.

42

Василий Алибабаевич

23.08.19

09:20

(39) Вообще корень сайта в файле конфигурации прописывается в «DocumentRoot»

При этом :

1. Пути должны указываться в в стиле Линукса

не c:\www, а c://www

2. Там не должно быть кириллицы и спецсимволов.

43

Vir_Rus

23.08.19

09:20

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

44

Василий Алибабаевич

23.08.19

09:25

+ (42)

Каталог с публикацией 1с (*.vrd) должен быть внутри того, что указано в DocumentRoot.

в LoadModule должен быть указан корректный путь к wsap22.dll или wsap24.dll (зависит какой апач)

Публикация должна быть указана в файле httpd.conf примерно так :

# 1c publication

Alias «/Prdp» «D:/###/Prdp/»

<Directory «D:/###/Prdp/»>

    AllowOverride All

    Options None

    Require all granted

    SetHandler 1c-application

    ManagedApplicationDescriptor «D:/###/Prdp/default.vrd»

</Directory>

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

45

Василий Алибабаевич

23.08.19

09:28

+(44) Если в httpd неправильно указан путь к wsap*.dll или юзеру, от имени которого запускается апач недостаточно прав на wsap*.dll служба не запустится. В журнале регистрации событий винды будет запись об ошибке.

Проверяй.

46

Vir_Rus

23.08.19

09:49

(45) по логике, если из браузера все работает — значит все настройки сервера и публикация веб сервиса выполнены корректно. или не факт?

Есть факт, то почему из 1с не получается достучаться до апача?

47

ptiz

23.08.19

09:51

(32) Где заменил? В создании ws-определения? И что будет делать 1С, если этот код запустится на сервере? К какому апачу стучаться?

48

Василий Алибабаевич

23.08.19

09:51

(46) «если из браузера все работает» А это так?

И как в браузере можно определить работоспособность сервиса? Оно же в браузер ничего не пишет.

Удалось открыть файл? Ну так видимо настройка прав позволяет. Запиши туда же обычный текстовый файл и попробуй открыть из браузера.

49

ПускинАС

23.08.19

09:54

https://www.apachehaus.com/cgi-bin/download.plx

вот норм.

распаковываешь с:\Apache24

в конфиге пишешь Define SRVROOT «C:/Apache24» (38 строка примерно) httpd.conf

переходишь в

c:\Apache24\bin\httpd.exe -k install (установка сервиса)

c:\Apache24\bin\httpd.exe -к start (запуск)

и все ЁБА ! ! ) ) )

50

ДенисЧ

23.08.19

09:56

(46) Потому что у тебя апач и сервер 1с лежат на разных компах. А в апаче не разрешено слушать что-то другое, кроме лохоста.

51

ПускинАС

23.08.19

10:02

(50) кто тебе такую ересь сказал?

52

ДенисЧ

23.08.19

10:24

(51) Покажи мне в конфиге Апача директиву Listen

Её там нет.

53

ПускинАС

23.08.19

10:27

54

Василий Алибабаевич

23.08.19

10:27

(52) Она там есть. Вот пример :

#

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>

# directive.

#

# Change this to Listen on specific IP addresses as shown below to

# prevent Apache from glomming onto all bound IP addresses.

#

#Listen 12.34.56.78:80

Listen 81

Только оно не зато отвечает куда может ходить подключаемый модуль. Даже подключаемых пыхпых может грузить свои инклюды из-за пределов документрут.

55

ПускинАС

23.08.19

10:28

откуда вы все вылезли… из windows 95 ? )))

56

ДенисЧ

23.08.19

10:29

(53) Это порт.

57

ДенисЧ

23.08.19

10:30

А по дефолту апач слушает только локохост

58

Василий Алибабаевич

23.08.19

10:34

(57) Апач слушает порт. Откуда оно там возьмется — ему не важно.

ИМХАется мне ты спутал расположение ДокументРута. Вот за него не скажу. Хотя у меня написано так :

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

Настаиваю на : «but symbolic links and aliases may be used to point to other locations.»

59

Василий Алибабаевич

23.08.19

10:36

В общем у ТС проблема не в том, где расположен ДокументРут, а в том что ТС этого и сам не знает.

60

Йохохо

23.08.19

10:45

(46) откати все конфиги и сделай с нуля в отдельную папку

(59) на документрут плевать т.к.

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

61

Йохохо

23.08.19

10:46

кстати под виндой слеша вроде не должно быть в конце Apache2.2/htdocs

62

Vir_Rus

23.08.19

10:48

Все заново сделал но уже на сервере где стоит сервер 1с. заработало.

Всем спасибо

63

Йохохо

23.08.19

10:49

так не интересно(

64

ptiz

23.08.19

12:16

(62) Ну правильно: локалхост с сервера 1С теперь стучится туда же, где апач (на нем же) :)

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

Я

Vir_Rus

21.08.19 — 14:32

Добрый день!

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

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

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

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

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

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

Спасибо

Vir_Rus

1 — 21.08.19 — 14:45

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

<?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=»/Obmen»

        ib=»Srvr=&quot;10.194.11.201&quot;;Ref=&quot;gdctest2&quot;;»>

    <ws publishExtensionsByDefault=»true»>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

</point>

НЕА123

2 — 21.08.19 — 14:50

ХЗ.

м.б. конфигуратор при публикации был запущен не под администратором

Vir_Rus

3 — 21.08.19 — 14:57

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

Дело не в этом.

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

Жан Пердежон

4 — 21.08.19 — 15:23

(3) ну так почитал бы гайды сначала, с IIS тоже манипуляции могут потребоваться

Vir_Rus

5 — 22.08.19 — 12:41

Всем привет!

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

Но при попытке выполнить процедуру веб сервиса вываливается ошибка:»{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

Почему в ошибке указан файл в папке C:www? я его ни где не прописывал…

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

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

Vir_Rus

6 — 22.08.19 — 12:46

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

Функция Приветствие(Параметр1)

    Возврат Неопределено;

КонецФункции

В другой базе добавил ws-ссылку на веб сервис.

Пытаюсь подключиться:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

    Соединение.Пользователь = «****»;

    Соединение.Пароль = «****»;

    Попытка

        Ответ = Соединение.Приветствие(«132»);

        Сообщить(Ответ);

    Исключение

        Сообщить(ОписаниеОшибки());

    КонецПопытки;

в результате ошибка.

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

УРЛ = «http://localhost:80/Hello/ws/ws2.1cws?wsdl»;;

    Пространство = «Obmen»;

    ИмяСервиса = «Hello»;

    ИмяТочкиПодключения = «HelloSoap»;

    

    Попытка

        Определение = новый WSОпределения(УРЛ,,,,20);

        Соединение = Новый WSПрокси(Определение,Пространство,ИмяСервиса,ИмяТочкиПодключения,,150);

    Исключение

        Сообщить(ОписаниеОшибки());

        Возврат;

    КонецПопытки;

Получаю следующую ошибку:

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

Код ответа сервера: 500

ptiz

7 — 22.08.19 — 13:06

(5) «я его ни где не прописывал» — ищи в файле настроек апача httpd.conf

Vir_Rus

8 — 22.08.19 — 13:17

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

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

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

DrWatson

9 — 22.08.19 — 13:18

(5) А разве это сообщение не значит, что с настройками всё хорошо, веб-сервис вызывается. Но 1С не нравится твоя функция Приветствие(). Может стоит убрать у неё параметр?

Vir_Rus

10 — 22.08.19 — 13:28

(9) Убирал, результат тот же

ptiz

11 — 22.08.19 — 13:49

(8) Покажи, что у тебя в файле httpd.conf в блоке после:

# 1c publication

Vir_Rus

12 — 22.08.19 — 13:53

На всякий случай все после 1с publication выложу:

# 1c publication

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

    AllowOverride All

    Options None

    Order allow,deny

    Allow from all

    SetHandler 1c-application

    ManagedApplicationDescriptor «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd»

</Directory>

#

# 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.

#

DefaultType text/plain

<IfModule mime_module>

    #

    # TypesConfig points to the file containing the list of mappings from

    # filename extension to MIME-type.

    #

    TypesConfig conf/mime.types

    #

    # 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.

    #

    #AddEncoding x-compress .Z

    #AddEncoding x-gzip .gz .tgz

    #

    # If the AddEncoding directives above are commented-out, then you

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z

    AddType application/x-gzip .gz .tgz

    #

    # 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.)

    #

    #AddHandler cgi-script .cgi

    # 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.)

    #

    #AddType text/html .shtml

    #AddOutputFilter INCLUDES .shtml

</IfModule>

#

# 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.

#

#MIMEMagicFile conf/magic

#

# 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 404 /missing.html

#ErrorDocument 404 «/cgi-bin/missing_handler.pl»

#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

#EnableSendfile off

# Supplemental configuration

#

# 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

# necessary.

# Server-pool management (MPM specific)

#Include conf/extra/httpd-mpm.conf

# Multi-language error messages

#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings

#Include conf/extra/httpd-autoindex.conf

# Language settings

#Include conf/extra/httpd-languages.conf

# User home directories

#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration

#Include conf/extra/httpd-info.conf

# Virtual hosts

#Include conf/extra/httpd-vhosts.conf

# Local access to the Apache HTTP Server Manual

#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)

#Include conf/extra/httpd-dav.conf

# Various default settings

#Include conf/extra/httpd-default.conf

# Secure (SSL/TLS) connections

#Include conf/extra/httpd-ssl.conf

#

# 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.

#

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

ptiz

13 — 22.08.19 — 13:59

(12) Теперь проверь — всё ли правильно написано в этом файле: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd

Vir_Rus

14 — 22.08.19 — 14:06

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

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

<definitions xmlns=»http://schemas.xmlsoap.org/wsdl/»; xmlns:soap12bind=»http://schemas.xmlsoap.org/wsdl/soap12/»; xmlns:soapbind=»http://schemas.xmlsoap.org/wsdl/soap/»; xmlns:tns=»Obmen» xmlns:wsp=»http://schemas.xmlsoap.org/ws/2004/09/policy»; xmlns:wsu=»http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd»; xmlns:xsd=»http://www.w3.org/2001/XMLSchema»; xmlns:xsd1=»Obmen» name=»Hello» targetNamespace=»Obmen»>

<types>

<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»; xmlns:xs1=»Obmen» targetNamespace=»Obmen» elementFormDefault=»qualified»>

<xs:element name=»Приветствие»>

<xs:complexType>

<xs:sequence/>

</xs:complexType>

</xs:element>

<xs:element name=»ПриветствиеResponse»>

<xs:complexType>

<xs:sequence>

<xs:element name=»return» type=»xs:all» nillable=»true»/>

</xs:sequence>

</xs:complexType>

</xs:element>

</xs:schema>

</types>

<message name=»ПриветствиеRequestMessage»>

<part name=»parameters» element=»tns:Приветствие»/>

</message>

<message name=»ПриветствиеResponseMessage»>

<part name=»parameters» element=»tns:ПриветствиеResponse»/>

</message>

<portType name=»HelloPortType»>

<operation name=»Приветствие»>

<input message=»tns:ПриветствиеRequestMessage»/>

<output message=»tns:ПриветствиеResponseMessage»/>

</operation>

</portType>

<binding name=»HelloSoapBinding» type=»tns:HelloPortType»>

<soapbind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soapbind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soapbind:body use=»literal»/>

</input>

<output>

<soapbind:body use=»literal»/>

</output>

</operation>

</binding>

<binding name=»HelloSoap12Binding» type=»tns:HelloPortType»>

<soap12bind:binding style=»document» transport=»http://schemas.xmlsoap.org/soap/http»/>;

<operation name=»Приветствие»>

<soap12bind:operation style=»document» soapAction=»Obmen#Hello:Приветствие»/>

<input>

<soap12bind:body use=»literal»/>

</input>

<output>

<soap12bind:body use=»literal»/>

</output>

</operation>

</binding>

<service name=»Hello»>

<port name=»HelloSoap» binding=»tns:HelloSoapBinding»>

<documentation>

<wsi:Claim xmlns:wsi=»http://ws-i.org/schemas/conformanceClaim/»; conformsTo=»http://ws-i.org/profiles/basic/1.1″/>;

</documentation>

<soapbind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

<port name=»HelloSoap12″ binding=»tns:HelloSoap12Binding»>

<soap12bind:address location=»http://localhost/Hello/ws/Hello»/>;

</port>

</service>

</definitions>

ptiz

15 — 22.08.19 — 14:16

(14) Это ответ веб-сервиса, значит — работает.

Йохохо

16 — 22.08.19 — 14:18

(15) это копипаст из блокнота)

ptiz

17 — 22.08.19 — 14:19

(14) У тебя «Имя файла публикации» заполнено в свойстве веб-сервиса?

ptiz

18 — 22.08.19 — 14:20

(14) И покажи содержимое файла default.vrd

Vir_Rus

19 — 22.08.19 — 15:02

(17) заполнено (18)

<?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=»/Hello»

        ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;»>

    <httpServices publishByDefault=»false»/>

    <standardOdata enable=»true»

            reuseSessions=»autouse»

            sessionMaxAge=»20″

            poolSize=»10″

            poolTimeout=»5″/>

    <ws>

        <point name=»Obmen»

                alias=»ws1.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

        <point name=»Hello»

                alias=»ws2.1cws»

                enable=»true»

                reuseSessions=»autouse»

                sessionMaxAge=»20″

                poolSize=»10″

                poolTimeout=»5″/>

    </ws>

</point>

ptiz

20 — 22.08.19 — 15:22

Йохохо

21 — 22.08.19 — 15:27

ib=»Srvr=&quot;sd-s-vm02&quot;

попробуйте по айпи

Йохохо

22 — 22.08.19 — 15:29

ib=»Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;» странно выглядит

ib=»Srvr=sd-s-vm02;Ref=gdctest2;»

Vir_Rus

23 — 22.08.19 — 15:32

(20) Открывается

http://localhost:80/Hello если так — то доступ к базе будет из браузера

Vir_Rus

24 — 22.08.19 — 15:35

(21) т.е. попробовать отредактировать этот файл? и написать там айпи вместо названия?

Vir_Rus

25 — 22.08.19 — 15:36

(22) Во всяком случае, если бы дело было в этом — я бы не смог зайти в базу из браузера. Так что не думаю что проблема тут

Йохохо

26 — 22.08.19 — 15:39

(23) открывается это именно текст из (24) виден в браузере?

Vir_Rus

27 — 22.08.19 — 15:45

(26) Виден текст из (14) если из браузера переходить http://localhost/Hello/ws/Hello?wsdl

А (19) это содержимое файла default.vrd

ptiz

28 — 22.08.19 — 15:57

(27) Команду: новый WSОпределения() выполняешь в какой базе? Файловая? Серверная? С какого компьютера?

А то ведь localhost будет доступен только с того компа, где апач.

Vir_Rus

29 — 22.08.19 — 16:05

(28) новый WSОпределения() выполняю на своем ПК, на нем же стоит Апач. Базы серверные.

При выполнении данной команды получаю ошибку:

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

Код ответа сервера: 500

У меня веб сервис основной забы подключен в ws-ссылки в «мобильной» базе. Из нее сразу создаю wsПрокси:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси(«Obmen»,»Hello»,»HelloSoap»);

И получаю ошибку:

«{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

Vir_Rus

30 — 23.08.19 — 08:53

Возможно нашел причину возникновения ошибки…

Сейчас ради эксперимента выключил сервер апач и попробовал выполнить веб сервис. получил точно такую же ошибку.

Получается из 1с не виден сервер апача…

Потому что из браузера все работает нормально.

В чем может быть ошибка? Какие-нибудь права 1с-ке нужны?

ptiz

31 — 23.08.19 — 09:03

(29) Замени наконец localhost на нормальное имя компьютера, или (ещё лучше) — IP-адрес.

Vir_Rus

32 — 23.08.19 — 09:07

(31) Уже заменил на локальный адрес 127.0.0.1 — не помогло

Василий Алибабаевич

33 — 23.08.19 — 09:08

(12) Иттить колотить….

Вы на полном серьезе считаете нормальным вот такой путь: Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>?

Vir_Rus

34 — 23.08.19 — 09:08

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

Vir_Rus

35 — 23.08.19 — 09:09

(33) переделал путь на c:/www/ — тут уже лежит веб сервис — результат не изменился…

Василий Алибабаевич

36 — 23.08.19 — 09:10

+ (33) Тем более с учетом того, что в ошибке указан путь: ‘C:wwwdefault.vrd’ ЦЫ(28) ???

Василий Алибабаевич

37 — 23.08.19 — 09:10

(35) Переделал как? Что изменял?

ДенисЧ

38 — 23.08.19 — 09:11

А у тебя Апачу разрешено слушать какой-то адрес, кроме локохоста?

Vir_Rus

39 — 23.08.19 — 09:12

(37) папку публикации веб сервиса и в конфиге апача строку documentsdirectory — вроде так она называется на путь «c:/www»

ПускинАС

40 — 23.08.19 — 09:12

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

ПускинАС

41 — 23.08.19 — 09:16

(0) Поставь апач нормально, нормальный, и будет тебе ок.

Василий Алибабаевич

42 — 23.08.19 — 09:20

(39) Вообще корень сайта в файле конфигурации прописывается в «DocumentRoot»

При этом :

1. Пути должны указываться в в стиле Линукса

не c:www, а c://www

2. Там не должно быть кириллицы и спецсимволов.

Vir_Rus

43 — 23.08.19 — 09:20

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

Василий Алибабаевич

44 — 23.08.19 — 09:25

+ (42)

Каталог с публикацией 1с (*.vrd) должен быть внутри того, что указано в DocumentRoot.

в LoadModule должен быть указан корректный путь к wsap22.dll или wsap24.dll (зависит какой апач)

Публикация должна быть указана в файле httpd.conf примерно так :

# 1c publication

Alias «/Prdp» «D:/###/Prdp/»

<Directory «D:/###/Prdp/»>

    AllowOverride All

    Options None

    Require all granted

    SetHandler 1c-application

    ManagedApplicationDescriptor «D:/###/Prdp/default.vrd»

</Directory>

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

Василий Алибабаевич

45 — 23.08.19 — 09:28

+(44) Если в httpd неправильно указан путь к wsap*.dll или юзеру, от имени которого запускается апач недостаточно прав на wsap*.dll служба не запустится. В журнале регистрации событий винды будет запись об ошибке.

Проверяй.

Vir_Rus

46 — 23.08.19 — 09:49

(45) по логике, если из браузера все работает — значит все настройки сервера и публикация веб сервиса выполнены корректно. или не факт?

Есть факт, то почему из 1с не получается достучаться до апача?

ptiz

47 — 23.08.19 — 09:51

(32) Где заменил? В создании ws-определения? И что будет делать 1С, если этот код запустится на сервере? К какому апачу стучаться?

Василий Алибабаевич

48 — 23.08.19 — 09:51

(46) «если из браузера все работает» А это так?

И как в браузере можно определить работоспособность сервиса? Оно же в браузер ничего не пишет.

Удалось открыть файл? Ну так видимо настройка прав позволяет. Запиши туда же обычный текстовый файл и попробуй открыть из браузера.

ПускинАС

49 — 23.08.19 — 09:54

https://www.apachehaus.com/cgi-bin/download.plx

вот норм.

распаковываешь с:Apache24

в конфиге пишешь Define SRVROOT «C:/Apache24» (38 строка примерно) httpd.conf

переходишь в

c:Apache24binhttpd.exe -k install (установка сервиса)

c:Apache24binhttpd.exe -к start (запуск)

и все ЁБА ! ! ) ) )

ДенисЧ

50 — 23.08.19 — 09:56

(46) Потому что у тебя апач и сервер 1с лежат на разных компах. А в апаче не разрешено слушать что-то другое, кроме лохоста.

ПускинАС

51 — 23.08.19 — 10:02

(50) кто тебе такую ересь сказал?

ДенисЧ

52 — 23.08.19 — 10:24

(51) Покажи мне в конфиге Апача директиву Listen

Её там нет.

ПускинАС

53 — 23.08.19 — 10:27

Василий Алибабаевич

54 — 23.08.19 — 10:27

(52) Она там есть. Вот пример :

#

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>

# directive.

#

# Change this to Listen on specific IP addresses as shown below to

# prevent Apache from glomming onto all bound IP addresses.

#

#Listen 12.34.56.78:80

Listen 81

Только оно не зато отвечает куда может ходить подключаемый модуль. Даже подключаемых пыхпых может грузить свои инклюды из-за пределов документрут.

ПускинАС

55 — 23.08.19 — 10:28

откуда вы все вылезли… из windows 95 ? )))

ДенисЧ

56 — 23.08.19 — 10:29

(53) Это порт.

ДенисЧ

57 — 23.08.19 — 10:30

А по дефолту апач слушает только локохост

Василий Алибабаевич

58 — 23.08.19 — 10:34

(57) Апач слушает порт. Откуда оно там возьмется — ему не важно.

ИМХАется мне ты спутал расположение ДокументРута. Вот за него не скажу. Хотя у меня написано так :

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

Настаиваю на : «but symbolic links and aliases may be used to point to other locations.»

Василий Алибабаевич

59 — 23.08.19 — 10:36

В общем у ТС проблема не в том, где расположен ДокументРут, а в том что ТС этого и сам не знает.

Йохохо

60 — 23.08.19 — 10:45

(46) откати все конфиги и сделай с нуля в отдельную папку

(59) на документрут плевать т.к.

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

  

Йохохо

61 — 23.08.19 — 10:46

кстати под виндой слеша вроде не должно быть в конце Apache2.2/htdocs

Vir_Rus

62 — 23.08.19 — 10:48

Все заново сделал но уже на сервере где стоит сервер 1с. заработало.

Всем спасибо

Йохохо

63 — 23.08.19 — 10:49

так не интересно(

  

ptiz

64 — 23.08.19 — 12:16

(62) Ну правильно: локалхост с сервера 1С теперь стучится туда же, где апач (на нем же)

Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5.
Windows Server 2012 R2 Standard, 1С:Предприятие 8.3 (8.3.4.465)

Пошаговая инструкция настройки web-сервисов для 1Сv8.3 и IIS 8.5.

Windows Server 2012 R2 Standard, 1С:Предприятие 8.3 (8.3.4.465)

Следуя пошаговой инструкции, опубликованной в статье //infostart.ru/public/75205/ для предыдущих версий IIS, произвел настройку вышеуказанной связки. Нижу привожу обновленную инструкцию.

1) Установка IIS выполняется стандартными средствами. Набор достаточных компонент приведен на скриншоте.

2) Создаем папку на web сервере. В моем случае 1С.

 

3) Публикуем сервис из 1С. Администрирование -> 1С -> Конфигуратор  -> Администрирование  -> Публикация на Web-сервере.

 

Содержимое.

 

4) Зададим права для обработчика web-сервисов 1С. Права на запуск (Выполнение) модулей добавляются для группы IIS_IUSRS на папку
C:Program Files (x86)1cv88.3.4.465in.

 

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

 

6) В консоли IIS. Кликаем правой кнопкой мыши на строку с созданной нами папкой.  Преобразовываем её в приложение.

 

 7) Добавляем MIME типы 1С. Делать это можно для сервера или для сайта, или для папки. Наследование присутствует.

 

Добавляем настройки для обработки файлов 1С. На вкладке Сопоставление обработчиков добавляем скрипты (не скрипты со звездочкой) для каждого расширения -«*.1cws» и «*.1crs».

 

Имена любые. Главное — для каждого расширение отдельное правило! Ограничения запроса -> Доступ -> Сценарий или Выполнение.

9) Для обработчиков нужно задать дополнительные параметры (Edit Feature Permission). Установить флаги запуска скриптов и приложений.

 

10) Можно проверить наличие обработчика web-сервисов 1С на вкладке ISAPI and CGI Restrictions для сервера.

 

Так как установка идет в 64 разрядном окружении, то для обработчика нужно включить режим Пулы приложений -> DefaultAppPool -> Дополнительные параметры -> Разрешены 32-разрядные приложения ->True.

 

11) Обращаемся по адресу http://localhost/1C/.

 

12) Об анонимной аутентификации на IIS и доступе к базе. Настроить доступ с использованием автоматически создаваемого пользователя IUSR у меня получилось. Важно проверить, что Анонимная проверка подлинности включена как в корне сервера, ТАК И НА САЙТЕ. Иначе не работает!!!!

 

Все работает :)!

Благодарности:

//infostart.ru/public/75205/

Всем спасибо за внимание!

Создайте письмо за 15 минут. Отправляйте до 1500 писем в месяц бесплатно.

Ошибка 404, либо Error 404 Not Found появляется, если браузеру не удалось обнаружить на сервере указанный URL.

Сообщение об ошибке 404

Error 404 Not Found отображается по-разному: «HTTP 404 не найден», «Ошибка 404 Not Found», «404 Страница не найдена». Смысл надписи всегда остаётся тем же: страница отсутствует либо просто не работает. Not Found в переводе означает «не найдено».

Ошибка 404 — классический код ответа по протоколу HTTP. Он свидетельствует, что связь с сервером установлена, но информации по заданному запросу нет.

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

Разберёмся в техническом формировании ответа Error 404 Not Found.

Техническая сторона вопроса. При связи по HTTP браузер запрашивает указанный URL и ждёт цифрового ответа. То есть любой запрос пользователя направляется на сервер размещения искомого сайта. Когда браузеру удаётся связаться с сервером, он получает кодированный ответ. Если запрос корректный и страница найдена, отправляется ответ с кодом 200 OK, что соответствует благополучной загрузке. При отсутствии страницы отправляется ответ об ошибке.

Что значит код «404». В ответе 404 первая четвёрка указывает на то, что запрос был чрезмерно длительным или в самом адресе была ошибка. Ноль предполагает синтаксическую неточность. Завершающая цифра кода отображает конкретную причину ошибки — «4» означает отсутствие данной ссылки.

Какие ещё ошибки бывают. Ошибку 404 не нужно путать с другими ответами, которые указывают на невозможность связи с сервером. Например, ошибка 403 сообщает, что доступ к URL ограничен, а ответ «Сервер не найден» свидетельствует, что браузер не смог обнаружить место размещения сайта.

Google на 404 странице сообщает о возможных причинах ошибки

Причины ошибки

Причины, по которым HTTP возвращает ответ 404 Not Found:

В большинстве ситуаций ошибка 404 отображается, когда не удаётся обнаружить нужную страницу на доступном сервере.

Причины отсутствия страницы на сайте бывают разными

Возможные последствия для сайта

Нужно ли считать 404 ошибку опасной для сайтов? Кажется, что нет ничего плохого в том, что пользователь не смог открыть одну веб-страницу. Однако если такая ситуация будет повторяться регулярно, это чревато оттоком аудитории. Одни пользователи решат, что сайт вовсе не существует. Другие подумают, что лучше не заходить на сайт, который работает с ошибками. Третьи будут игнорировать ресурс, на котором не смогли получить обещанную информацию.

Поисковые системы относятся к Not Found более лояльно. Например, Google отмечает, что 404 страницы не влияют на рейтинг. Но если при индексации роботы будут находить все больше ошибочных страниц, вряд ли это приведёт к более высокому ранжированию.

Если вы хотите улучшить взаимодействие с посетителями, важно найти и исправить все ошибки 404 на сайте.

Как выявить ошибку

На небольшом ресурсе легко проверить работоспособность ссылок вручную. Но если на сайте сотни и тысячи страниц, без дополнительного софта не обойтись. Есть немало сервисов и программ, позволяющих находить битые ссылки. Рассмотрим некоторые из них.

Search Console Google

Консоль поиска Google позволяет находить страницы с ошибкой 404 за несколько кликов:

Чтобы получить список страниц с ошибками, подтвердите права на ресурс — добавьте проверочную запись TXT в записи DNS регистратора домена. Такая запись не повлияет на работу сайта. Подробнее о процедуре подтверждения, читайте в справке Google.

Для использования Search Console Google нужно подтвердить свои права на сайт

Яндекс Вебмастер

Сервис для вебмастеров от Яндекса поможет быстро найти все ошибки 404:

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

Для входа в Вебмастер авторизуйтесь в Яндексе

Screaming Frog

Для начала загрузите и установите программу на компьютер. После запуска добавьте URL проверяемого сайта и начните поиск проблем. Неработающие ссылки можно искать даже в бесплатной версии.

Инструмент SEO-паук в Screaming Frog помогает найти технические неисправности сайта

SiteAnalyzer

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

SiteAnalyzer бесплатно найдёт неработающие URL

Как исправить ошибку Not Found

Выбор конкретного решения зависит от причины ошибки:

Удалять и менять ссылки вручную удобно только на небольших сайтах. Исправление ошибок на крупных порталах лучше автоматизировать. Например, с помощью специальных плагинов для внутренней перелинковки (Terms Description, Dagon Design Sitemap Generator) и для автоматического формирования адресов страниц (Cyr-To-Lat).

Чтобы ошибки 404 появлялись как можно реже, достаточно соблюдать простые рекомендации:

Мы разобрались, как найти и исправить ошибки Not Found внутри сайта. Но неработающая ссылка может быть расположена и на стороннем ресурсе. Допустим, когда-то на другом сайте разместили рекламную публикацию со ссылкой на определённую страницу. Спустя какое-то время страницу удалили. В этом случае появится ошибка 404. Устранить её можно, связавшись с администрацией ссылающегося сайта. Если же удалить/исправить ссылку нельзя, постарайтесь использовать ошибку с выгодой.

Как сделать страницу 404 полезной

Грамотно оформленная страница с ошибкой Error 404 Not Found — действенный инструмент конвертации посетителей. Ограничений по использованию страницы с ошибкой 404 нет. При этом практически все CMS позволяют настраивать дизайн этой страницы.

Что публиковать на странице 404:

При оформлении страницы-ошибки желательно опираться на рекомендации поисковиков:

Главное — по возможности отказаться от стандартной страницы 404. Подумайте, как привлечь внимание пользователя. Расскажите ему об отсутствии искомой страницы и предложите взамен что-то полезное или интересное.

Примеры оформления страниц 404

Designzillas

Мультяшная страница креативной студии привлекает внимание и её хочется досмотреть до конца. Если прокрутить страницу, можно увидеть, как из яйца вылупится дракон. При этом на странице есть ссылки на все основные разделы сайта.

Меню на сайте Designzillas есть и на 404 странице

Domenart Studio

Веб-студия «Домен АРТ» использует красочную страницу 404, оформленную в единой стилистике ресурса. Заблудившимся пользователям предлагают попробовать ещё раз ввести адрес или перейти в нужный раздел.

Контакты, поиск, меню — и всё это на 404 странице Domenart Studio

«Эко Пауэр», дистрибьютор производителя источников питания, демонстрирует короткое замыкание как символ ошибки. Посетителям предлагают перейти на главную.

Ошибка 404 «Эко Пауэр» выглядит как страница входа

Дом со всем

Компания «Дом со всем», занимающаяся бурением скважин, разместила на странице 404 свои контакты и перечень услуг. Со страницы можно перейти в любой раздел сайта или заказать обратный звонок. С таким наполнением посетителю не нужно искать дополнительную информацию где-то ещё.

Компания «Дом со всем» предлагает заказать обратный звонок

Kualo

Страница 404 на веб-хостинге Kualo может заставить пользователя забыть, зачем он сюда пришёл. Увлекательная игра притягивает внимание. В конце игры посетителю предлагают посмотреть сайт хостинга.

На странице Kualo можно просто поиграть и заработать скидки

Рано или поздно с ошибкой 404 сталкивается большинство сайтов. При регулярной проверке можно своевременно исправить неработающие ссылки, чтобы в ответ пользователи получали код 200 OK. Но для крупного ресурса лучше настроить оригинальную страницу, которая будет отображаться при появлении ошибки Not Found и подскажет посетителям, что делать дальше.

Ошибка 405 или 500 в HTTP сервисе 1С

Блог

Ошибка 405 и 500 в HTTP сервисе 1С. Поиск и устранение.

Добрый день, хотел поделиться с вами результатом преодоления этих ошибок при работе с http сервисами 1С. С данной ошибкой мне пришлось столкнуться при переписывании мобильного приложения с web сервисов на http. Ошибка возникала при отправке http сервису POST запроса.

Ошибка 405

При работе с некорректным HTTP сервисом из мобильного приложения возвращалась ошибка 405, которая указывает на конкретную проблему. «405 Method Not Allowed — указанный клиентом метод нельзя применить к текущему ресурсу.» Долго не мог разобраться с данной ошибкой, так как в сервисе запрос был разрешен и шаблоны были настроены корректно.

Ошибка 500

При работе с некорректным HTTP сервисом из внешних программ возвращалась ошибка 500, которая ни о чем конкретном не говорит. «500 Internal Server Error — любая внутренняя ошибка сервера, которая не входит в рамки остальных ошибок класса».

Вроде HTTP сервис один, а при использовании запросов к нему из разных программ возвращались разные ошибки.

Расследование ошибок 405 и 500 в HTTP сервисе 1С

Времени на выяснение причин ушло очень много. За несколько дней до этой задачи мною были проведены десятки экспериментов по сборке и настройке web сервера apache 2.4 x64 SSL для работы с 1С. Все настройки в основном были связаны с кросс доменными запросами из web приложения на javascript. Столкнувшись с ошибками 405 и 500 на другом проекте я сразу полез в дебри конфигурации apache. После полного удаления apache поставил IIS и на нем вышла такая же ошибка. Поднял на виртуальной машине чистую систему, попробовал apache и iss, но ошибка так и проявлялась. Потом я вспомнил, что одна функция мобильного приложения уже давно использует http сервис и там все прекрасно работает. Создал http сервис с базовыми настройками и все заработало.

Как только я переносил код из web сервиса в функции http сервиса, сразу появлялись ошибки. Самое интересное, что отладка не срабатывала, т. е. POST запрос в пустую функцию приходил и отрабатывал, а в функцию с кодом нет.

На многих форумах ошибку 405 описывают как ошибку доступа, либо не корректную настройку http сервиса.

Итог разбора ошибок 405 и 500 в HTTP сервисе 1С.

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

P. S. В последней версии платформы ошибка 405 перестала выходить.

Обновление 12.01.2019

В процессе работы часто приходится сталкиваться с ошибками 405 и 500 в HTTP сервисах. Но проблема в 99% случаев в коде сервиса. Возможно это не явно, код вас может уводить глубоко в другие модули, но решение надо искать именно там.

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

В данный момент я начинаю с того, что отключаю вызов всех функций и процедур начиная со входа в обработчики HTTP сервиса и смотрю как проходят запросы. Если все хорошо, то я начинаю включать код небольшими кусочками и проверять работу сервиса. Данный метод не самый быстрый, но дает 100% результат.

Если у вас остались вопросы, то вы можете задать мне их в социальных сетях или оставить комментарий ниже.

Источники:

Https://www. unisender. com/ru/support/about/glossary/chto-oznachaet-oshibka-404-na-sajte-i-chto-s-nej-delat/

Https://nizamov. studio/article-00001/

Как проверить код ответа сервера и понять его значение. Подробный перечень частых ошибок HTTP с пояснениями.

В статье:

  1. Как проверить код ответа сервера

  2. Значения кодов ответов сервера

  3. Информационные коды

  4. Коды успешной обработки запроса

  5. Коды редиректов

  6. Коды ошибок клиента

  7. Коды ошибок сервера

 При каждом обращении к серверу вы получаете от него код статуса ответа. Коды связаны с функциональностью страниц сайта и сигнализируют о состоянии страницы. Благодаря значению, которое несет код, сервер корректирует обработку документа после запроса пользователя. Самые популярные коды — 200, который показывает, что запрос выполнен успешно, и 404, показывающий ошибку, если ресурс не найден.

На код ответа сервера обращают внимание поисковые боты и браузеры.

Как проверить код ответа сервера

Посмотреть код ответа на странице можно бесплатно за пару кликов. В браузере информация находится на панели разработчика: в Google Chrome для вызовите панель горячей клавишей F12, откройте вкладку Network и обновите страницу.

Как посмотреть код сайта в браузере

Результаты просмотра кода в браузере

Для просмотра кода есть браузерные расширения:
HTTP Headers для Google Chrome, HTTP Header для Opera.

Инструмент в Яндекс.Вебмастере покажет код статуса HTTP.

проверка кода ответа сервера

Результаты проверки инструментом

Инструмент
проверки заголовков сервера от PR-CY определит HTTP статусы сайта и доменного имени.

как проверить код ответа сервера

Результаты проверки инструментом

Значения кодов ответов сервера

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

Принадлежность кода к группе определяется по первой цифре:

  • 1— — информационный код, отвечающий за передачу данных.
    Такие коды временны и показывают, что запрос принят и обрабатывается.
  • 2— — код успешной обработки запроса.
    Сервис получил и обработал запрос.
  • 3— — код редиректа.
    Сервер сигнализирует, что для выполнения запроса нужно предпринять дополнительные действия, к примеру, перейти на другой адрес.
  • 4— — клиентская ошибка.
    Ошибка на стороне клиента. Возможно, пользователь что-то сделал неправильно, и поэтому запрос не может быть успешно обработан.
  • 5— — серверная ошибка.
    По какой-то внутренней причине сервер не может выполнить пользовательский запрос.

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

Информационные коды

Коды этой группы информируют о том, что сервер принял запрос и будет его обрабатывать.

100 Continue

Сервер принял запрос и удовлетворен начальными сведениями. Процесс обработки будет продолжен.

101 Switching Protocols

Сервер одобрил переключение типа протокола, которое запросил пользователь. Код используется, когда сервер предлагает перейти на новую версию HTTP. В поле Update будут перечислены доступные протоколы, пользователь может выбрать один из них.

102 Processing

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

Коды успешной обработки запроса

Коды группы сигнализируют о том, что запрос принят и успешно обработан.

200 ОК

Это один из самых популярных ответов, он означает, что запрос принят и успешно обработан, страница открыта и доступна к просмотру. Все страницы, которые будут проиндексированы, должны отдавать код 200 ОК.

201 Created

Ответ означает, что сервер принял запрос, обработал и создал новый ресурс. Код можно увидеть, к примеру, если пользователь создал новую страницу. Если новый ресурс создать невозможно, или он перестанет существовать к тому времени, когда клиент получит сообщение, то сервер отдаст код 202 Accepted.

202 Accepted

Сервер принял запрос, но не завершил его обработку. Запрос можно отклонить, поскольку на его выполнение может потребоваться слишком много времени.

203 Non-Authoritative Information

Код ответа 203 означает, что операция прошла успешно, но от кода 200 он отличается указанием источника информации. Данные получены не из первоисточника, а с другого сервера или резервной копии. Возможно, информация устарела, о чем и предупреждает код ответа.

204 No Content

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

205 Reset Content

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

206 Partial Reset

Этот код обычно используют инструменты кэширования. Сервер в ответе возвращает только часть контента страницы, которую и запрашивает пользователь.

207 Multi-Status

Код обозначает мультистатусность ответа: сервер обработал несколько операций,не зависящих друг от друга. Результаты отображаются в теле сообщения как XML-документ с объектом multistatus.

226 IM Used

Сервер успешно завершил операцию: принял заголовок A-IM и вернул содержимое с учетом указанных параметров.

Коды редиректов

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

300 Multiple Choices

Робот не может проиндексировать страницу, поскольку не может сопоставить ресурс и URL. Частая причина — ресурс перемещен на другой адрес. Сервер предлагает клиенту выбор альтернатив для перехода. Для успешной индексации нужно либо правильно указать ресурс, либо поправить заголовки.

301 Moved Permanently

Если у проиндексированной страницы изменился адрес, то со старого URL на новый настраивают 301 редирект. Код ответа показывает, что запрашиваемый документ был навсегда перенесен на другой URL, куда пользователя перенаправляет ссылка. Робот проиндексирует страницу, на которую ведет редирект, и склеит исходный адрес и новый.

302 Found

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

Страница остается в индексе, ссылочный вес продолжает передаваться.

303 See Other

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

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

304 Not Modified

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

305 Use Proxy

Код ответа связан с безопасностью данных. Сервер выдает код 305, если доступ к ресурсу, который запрашивает клиент, возможен только с прокси. Прокси указан там же в ответе сервера.

307 Temporary Redirect

Код 307 похож на 302, но дает более конкретный ответ. Код означает, что ресурс, который требует клиент, на время переведен на другой адрес, а новый URL нужно прописать в Location.

Коды ошибок клиента

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

400 Bad Request

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

401 Unauthorized

Информация доступна только зарегистрированным пользователям или запаролена. Если пользователь не авторизовался, доступ к странице невозможен.

403 Forbidden

Запрос успешно получен и верно сформулирован, но у сервера нет доступа к запрашиваемой странице. Возможно, доступ ограничен специально для определенных IP-адресов с помощью файла .htaccess.

Если пользователю www-data, под которым запущен сервер, закрыт доступ к чтению файла, поможет команда sudo chmod o=r /usr/share/nginx/html/index.html

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

404 Not Found

Серверу не удалось найти ресурс, который запрашивает пользователь, документа по этому адресу не существует.

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

проверить код ответа сервера

Код ответа 404 Not Found

Ссылки на удаленные разделы сайта будут возвращать код 404. На такие документы не нужно тратить краулинговый бюджет, поэтому в файле robots.txt запрещают роботу посещение и индексацию таких страниц.

405 Method Not Allowed

Недоступен метод, которым совершается запрос. Сервер выдает этот код для конкретных отдельных объектов на странице. К примеру, строка запроса, запускающая скрипт, отличается от запроса, который совершает пользователь.

406 Not Acceptable

Код ответа означает, что запрашиваемый файл существует, запрос сформулирован верно, но кодировка документа недоступна для расшифровки роботом.

407 Proxy Authentication Required

Этот код похож на 401 и 407, он используется, если вопрос корректен, но клиент может получить доступ к документу только с помощью авторизации через прокси. Клиент авторизуется, если прокси вернет поле с заголовком proxy-authenticate.

408 Request Timeout

Сервер возвращает этот код ответа, если в установленное время ожидания клиент не сделал ни один запрос. Код 408 не возвращается, если пользователь сам отменил запрос, или соединение оборвалось, а отправить ответ нет возможности.

409 Conflict

Код означает, что в системе конфликт: к примеру, пользователь загружает файл на сервер, где уже есть такой файл в новой версии.

410 Gone

Код ответа похож на 404 код, он означает, что документ, к которому направлен запрос, больше недоступен. Если сервер возвращает код 404, то робот еще вернется на страницу, чтобы проверить ее состояние, а в случае ответа 410 робот поймет, что страница удалена навсегда.

411 Length Required

Сервер не может принять и обработать запрос, если в заголовке content-length не указана длина контента.

413 Request Entity Too Large

Если в теле запроса слишком большой объем информации и сервер не может обработать такой большой запрос, то он возвращает код ошибки 413. Если это временная проблема, в поле Retry-After сервер укажет время, которое нужно подождать.

414 Request-URL Too Long

Аналогично с кодом 413, за исключением того, что 414 код отображается, если в запросе указан слишком длинный URL.

422 Unprocessable Entity

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

424 Failed Dependency

Если выполнение этой операции зависит от исхода других связанных с ней операций, сервер вернет этот запрос.

429 Too Many Requests

Код 429 означает, что пользователь посылает слишком много запросов за короткий временной промежуток, и сервер не может обработать такое количество.

431 Request Header Fields Too Large

Если в запросе указаны слишком большие поля заголовков, сервер не сможет справиться с таким запросом и вернет код ошибки 431.

451 Unavailable For Legal Reasons

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

418 I’m a teapot

Это забавный код, возвращающий ошибку «Я чайник», связан с гипертекстовым протоколом управления кофеваркой — Hyper Text Coffee Pot Control Protocol. Ошибка означает, что запрос некорректен, с помощью чайника нельзя приготовить кофе. Протокол и код этой ошибки были созданы в шутку в 1998 году к 1 апреля.

Код 418 I’m a teapot

Коды ошибок сервера

Коды этой группы обозначают ошибки на стороне сервера.

500 Internal Server Error

Код обозначает, что сервер не может обработать запрос по причине внутренних ошибок. Обычно проблема в настройке сервера, обращении к некорректному файлу .htaccess или пакету PHP, который не установлен.

501 Not Implemented

Сервер возвращает этот код, когда не может обработать запрос: он не поддерживает возможности для обработки или не может распознать метод. К примеру, эта ошибка появится, если распространенные протоколы HEAD, POST, GET и другие по какой-то причине не поддерживаются сервером.

502 Bad Gateway

За обработку запроса отвечают бэкенд серверы, которые передают данные прокси-серверу или шлюзу. Если запрос был направлен к такому шлюзу, который не получил ответ от бэкенда, сервер вернет 502 код. Для исправления нужно проверить настройку прокси-сервера.

503 Service Unavailable

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

504 Gateway Timeout

Код похож на 502, но ошибка 504 означает, что истек срок ожидания ответа от сервера. Необходимое количество времени истекло, а ответ от бэкенд-сервера не пришел.

Причина может быть в сетевом соединении, недостатке ресурсов, версии протокола HTTP или настройке сервера, если выставлен слишком короткий таймаут.

506 Variant Also Negotiates

Код ответа 506 означает, что сервер настроен некорректно: ошибка в конфигурации зацикливает обращение сервера, и он указывает сам на себя.

507 Insufficient Storage

Если сервер загружен настолько, что для выполнения запроса не хватает памяти, он вернет ошибку 507. Это бывает, если на сервере нет места для данных в принимаемом запросе.

510 Not Extended

Код 510 возвращается в случае, если сервер не поддерживает расширение, которое указано в запросе. В этом же ответе сервер может указать, какие расширения доступны.

511 Network Authentication Required

Эта ошибка возвращается клиенту, если пользователь не авторизовался в сети. К примеру, если он не согласился на условия использования интернета, когда подключался к wi-fi, или не ввел пароль.


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

Обновлено 14.10.2020

1СДобрый день! Уважаемые читатели и гости популярного компьютерного блога pyatilistnik.org. В прошлый раз мы с вами решили ошибку » db query error please try later», и восстановили работу сайта на платформе 1С Битрикс. Сегодня я хочу поделиться небольшой заметкой, как выйти из ситуации, когда не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового. Выдается ошибка «ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198): Ошибка при вызове конструктора (WSОпределения) WSОпределения = Новый(Тип(«WSОпределения»). Давайте разбираться в чем собственно дело.

Причины ошибок с модулем 198-504

Вся проблема связана с неправильным и устаревшим сертификатом, это бывает если вы давно не обновляли свою версию 1С, а в этот момент как раз истек срок сертификата, который участвует в подключении к внешним сервисам, например, npchk.nalog.ru или api.orgregister.1c.ru.

Вот так вот выглядит более полный текст ошибки:

Не работает кнопка «Заполнить по ИНН» в Справочнике Контрагенты при создании нового.

Выдает ошибку:

{ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)}: Ошибка при вызове конструктора (WSОпределения)

WSОпределения = Новый(Тип(«WSОпределения»), Параметры);

по причине:

При вызове веб-сервиса произошла ошибка. При создании описания сервиса произошла ошибка. URL сервиса: https://api.orgregister.1c.ru/orgregister/v7?wsdl

по причине:

Ошибка работы с Интернет: Удаленный узел не прошел проверку

ОбщийМодуль.ОбщегоНазначенияПовтИсп.Модуль(198)

Комментарий: {ОбщийМодуль. ОбщегоНазначения. Модуль (5303)}: Ошибка при вызове конструктора (WSОпределения)
Определения = Новый WSОпределения (ИмяФайлаWSDL, ИмяПользователя, Пароль, ИнтернетПрокси, Таймаут);
по причине:
Ошибка импорта схемы
по причине:
Ошибка при выполнении файловой операции ‘_ttp://npchk.nalog.ru:80/FNSNDSCAWS_2?xsd=1’
по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504).

10060 — Ошибка соединения с сервером

HOST — npchk.nalog.ru[81.177.31.8]; PORT — 80
Connection timed outTraffic Inspector HTTP/FTP/Proxy server (3.0.2.912)

по причине:
Ошибка работы с Интернет: произошел таймаут при ожидании ответа шлюзу (504)

Как решить проблему

В случае клиент-серверной версии необходимо добавить сертификат Digicert как на сервере, так и на всех клиентах. Добавлять стоит способом, описанным в пункту 1 или 3. Перегружать сервер после обновления cacert.pem не нужно.

  • Самым быстрым методом? будет замена сертификата cacert.pem, который располагается в папке с вашим клиентом. Скачать cacert.pem можно о официального сайта по ссылке:

https://its.1c.ru/db/files/1CITS/EXE/cacert/cacert.zip

Загрузка cacert.pem

В итоге у вас будет архив с сертификатом cacert.pem, распакуйте его. Далее, откройте вашего клиента, где вы получаете ошибку при вызове конструктора WSОпределения. И перейдите по пути:

C:Program Files (x86)1cv88.3.11.3034bin это в случае с версией 8.3.11.3034

Ошибка при вызове конструктора-02

Если вы теряетесь в своих версиях, то попробуйте произвести поиск по cacert.pem в папке C:Program Files (x86) и посмотрите, где у вас нужно подменить, этот файл. Меняете его на свежий и радуетесь жизни.

Ошибка при вызове конструктора-03

  • Второй метод, заключается в использовании обработки в 1С. Скачайте файл обработка.epf

https://its.1c.ru/db/files/1CITS/EXE/digicert_epf/digicert_epf.zip

ОБЯЗАТЕЛЬНО запустите его от имени администратора, иначе можете получить ошибку:

Ошибка записи сертификата. Возможно:
— Файл cacert.pem занят. Освободите файл от редактирования и запустите обработку заново.
— Закройте 1С: Предприятие и запустите с правами администратора операционной системы

  • Ну и третий метод, это редактирование текущего файла cacert.pem. Откройте его текстовым редактором и в самом конце файла вставьте содержимое файла digicert.pem, который можно скачать тут:

https://its.1c.ru/db/files/1CITS/EXE/digicert/digicert.zip

Ошибка при вызове конструктора-04

В этой статье рассмотрим, как можно реализовать веб-сервис в расширении платформы 1С.

В качестве примера возьмем веб-сервис, позволяющий передавать информацию о клиентах из внешней CRM-системы во внутреннюю систему управленческого учета на «1С:Управление нашей фирмой».

Веб-сервис будет создан в расширении, чтобы сохранить конфигурацию на поддержке.

О чем эта статья

Материал статьи раскроет ответы на следующие вопросы:

  • Как работать с XDTO-пакетами?
  • Как создать веб-сервис и настроить его свойства?
  • Как опубликовать веб-сервис на сервере?

Постановка задачи

Компания ведет учет в типовом решении фирмы «1С:Управление нашей фирмой» (УНФ). Для управления взаимоотношениями с клиентами используется облачная CRM-система. В CRM-систему вводят информацию о новых клиентах. Необходимо реализовать перенос сведений о новых клиентах в УНФ сразу же при регистрации данных в CRM-системе.

Схема работы

Рисунок 1. Схема работы

Данные должны передаваться одним параметром (структурой). Спецификация данных, передаваемые из CRM в УНФ приведены в таблице 1.

Таблица 1. Требования к данным для обмена

Данные Имя cвойства Тип Ограничения
Полное наименование FullName Строка Обязательно для заполнения
ИНН INN Строка(12) Для ЮрЛица – длина 10
Для ИП – длина 12
Для ФизЛица – не заполняется
Допускаются только цифры
КПП KPP Строка(9) Для ЮрЛица – длина 9
Для ФизЛица – не заполняется
Допускаются только цифры
Телефон Phone Строка(12) Обязателен для заполнения
формат +7 (NNN) NNN-NN-NN

После создания контрагента в CRM-систему должен быть передан уникальный идентификатор. Идентификатор будет использоваться в дальнейшем для сопоставлении клиента в CRM и УНФ при обмене заказами. Необходимо реализовать описанный функционал без снятия УНФ с поддержки.

Обоснование выбора варианта решения

  1. Проанализируем требования. Добавлять клиентов надо «на лету», сразу же при вводе в CRM. Значит периодические обмены по расписанию нам не подходят.
  2. Выбранная CRM расположена в облаке, поэтому использовать COM-соединение не получится.
  3. В требованиях к передаваемым данным есть ограничения — на длину строк и на виды контрагентов. Выбирая между технологией обмена через http-сервисы и веб-сервисы, остановимся на веб-сервисах, так как типизация данных и настройка ограничений в них есть «из коробки». Дополнительным плюсом будет то, что веб-сервисы умеют «самодокументироваться», а значит мы экономим время на описании API для разработчиков CRM.
  4. Последнее требование — не снимать конфигурацию с поддержки.

Таким образом, для решения описанной задачи мы создадим расширение конфигурации. А в этом расширении реализуем веб-сервис для добавления информации о контрагентах.

Добавляем расширение

Начнем реализацию поставленной задачи и создадим новое расширение. Для этого откроем меню Конфигурация -> Расширения конфигурации.

Добавляем расширение

Рисунок 2. Добавляем расширение

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

Свойства нового расширения

Рисунок 3. Заполняем свойства нового расширения 

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

Импортируем объекты метаданных

Теперь импортируем в расширение объекты для дальнейшей работы. Нам нужны:

  • Справочник Контрагенты
  • Справочник Виды контактной информации
  • Перечисление Типы контактной информации

Начнем со справочника Контрагенты. Выделим его в основной конфигурации и вызовем контекстное меню Добавить в расширение.

Импортируем справочник

Рисунок 4. Импортируем справочник

Затем добавим в расширение реквизиты справочника Контрагенты и табличную часть КонтактнаяИнформация.

В результате ветка Контрагенты в расширении должна выглядеть так:

Справочник «Контрагенты» в расширении

Рисунок 5. Справочник «Контрагенты» в расширении

После чего добавим в расширение перечисления ВидыКонтрагентов и ТипыКонтактнойИнформации.

Идем дальше. Из справочника ВидыКонтактнойИнформации нам нужно предопределенное значение ТелефонКонтрагента. Выдяем в дереве метаданных справочник ВидыКонтактнойИнформации и переходим по гиперссылке Предопределенные:

Предопределенные элементы справочника

Рисунок 6. Предопределенные элементы справочника

В ветке Контрагенты находим предопределенный элемент ТелефонКонтрагента.

Выбираем предопределенный элемент ТелефонКонтрагента

Рисунок 7. Выбираем предопределенный элемент ТелефонКонтрагента

Выполняем команду контекстного меню Добавить в расширение. В расширение добавляется справочник ВидыКонтактнойИнформации и его предопределенный элемент ТелефонКонтрагента.

Справочник «Виды контактной информации»

Элементы справочника «Виды контактной информации»

Рисунок 8. Справочник «Виды контактной информации» в расширении

С импортом объектов в расширение мы закончили. Теперь переходим к разработке веб-сервиса.

Как работают веб-сервисы

Веб-сервисы в 1C представляют собой реализацию протокола SOAP (от англ. Simple Object Access Protocol — простой протокол доступа к объектам). Архитектуру приложения на основе протокола SOAP можно представить в виде следующей схемы:

Архитектура приложений на основе протокола SOAP

Рисунок 9. Архитектура приложений на основе протокола SOAP

Общий принцип работы веб-сервиса можно описать так: мы создаем некий функционал, чтобы предоставить его сторонним разработчикам. Для того, чтобы этот функционал был им доступен, мы размещаем его на веб-сервере (публикуем). При публикации веб-сервиса происходит размещение его описания в формате WSDL (WSDL – Web Service Definition Language). Это описание стандартизовано и содержит описание методов веб-сервиса и типов данных, которые могут передаваться между сервисом и его клиентом. Клиент сервиса получает описание сервиса в виде WSDL-файла и может начать обмениваться данными в соответствии с этим описанием. Обмен происходит по протоколу HTTP, а сообщения передаются в теле HTTP пакетов в формате XML.

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

Создаем XDTO-пакет

XDTO-пакеты описывают типы данных, которые будут использоваться при обмене. Потребителями веб-сервисов могут быть программы, написанные на разных языках, поэтому веб-сервис должен представить свои данные в виде примитивных типов (их описание во всех языках равнозначно). XDTO-пакеты позволяют привести типы 1С к типам, которые описаны в общемировом стандарте W3C. Кроме того, мы можем описать набор ограничений, применяемых к данным.

Приступаем к созданию XDTO-пакета для нашего веб-сервиса. В дереве метаданных расширения в ветке Общие -> XDTO-пакеты добавим XDTO-пакет ak_Customers. В URI пространства имен указываем http://kursy-po-1c.ru/ws/wsextension.

Это не ссылка на реальный адрес в интернете, а просто строка-идентификатор пространства имен, который помогает однозначно идентифицировать типы данных с одинаковыми именами. Например, программист Иванов определил тип данных Customer c двумя свойствами Name и FullName, а программист Петров определил свой тип Customer со свойствами Name, INN, KPP.

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

Свойства XDTO-пакета

Рисунок 10. Свойства XDTO-пакета

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

Сначала опишем простые типы данных по которым нам нужно наложить ограничения. Это ИНН, КПП, Телефон.

ИНН по условиям задачи различается для ИП и для ЮрЛица.

Определим 2 простых типа: INN_IP и INN_UL. Для этого в форме редактирования пакета открываем меню Добавить -> ТипЗначения.

Добавляем тип значения в XDTO-пакет

Рисунок 11. Добавляем тип значения в XDTO-пакет

Заполняем свойства как на рисунке ниже:

Свойства типа значения INN_IP

Рисунок 12. Свойства типа значения INN_IP

Здесь мы указали имя типа INN_IP (ИНН для ИП) и определили для него ограничение — это должна быть строка длиной 12 знаков.

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

Теперь нам нужно задать ограничение: 12 знаков должны быть цифрами. Выделяем свойство INN_IP и вызываем меню Добавить->Образец:

Добавляем шаблона заполнения INN_IP

Рисунок 13. Добавляем шаблона заполнения INN_IP

Заполняем свойство образца шаблоном в виде регулярного выражения [0-9]{12}. То есть мы допускаем в значении 12 цифр от 0 до 9.

Шаблон заполнения INN_IP

Рисунок 14. Шаблон заполнения INN_IP

Подобные действия нужно произвести с INN_UL (ИНН юрлица) и KPP (КПП):

Рисунок 15. Добавляем типы значений и устанавливаем шаблоны

И для телефона (шаблон [+][7][ ][(][0-9]{3}[)][ ][0-9]{3}[-][0-9]{2}[-][0-9]{2}):

Рисунок 16. Типа значения Phone и шаблон его заполнения

Теперь перейдем к определению типов для данных о клиентах.

У нас есть три типа клиентов: Юрлицо, ФизЛицо и ИП.  Для всех типов клиентов правила заполнения ИНН и КПП отличаются. Можно сделать только один класс Customer и контроль заполнения ИНН и КПП производить программно, но удобнее это делать декларативно — чтобы уменьшить возможность ошибок. Мы создадим три комплексных типа: CustomerIP, CustomerUL и CustomerFL. Значения ИНН и КПП будем выбирать из ранее созданных типов значений.

Для создания клиента ФизЛицо выделим корень пакета и вызовем меню Добавить -> ТипОбъекта. В свойствах укажем следующие значения:

Рисунок 17. Свойства типа объекта CustomerFL

  • CustomerFL — это имя типа. Должно быть на английском.
  • ComplexType — базовый тип, аналогичный структуре.

Выделим тип объекта CustomerFL и вызовем меню Добавить->Свойство. Заполним в редакторе свойств значения:

Рисунок 18. Добавляем свойство FullName в тип объекта CustomerFL

  • FullName — имя свойства. Должно быть на английском.
  • Тип string — строковый тип.
  • Поле FullName должно быть обязательно заполнено указываем Возможно пустое — Ложь.

Таким же образом добавим свойства Phone и GUID.

Свойства типа объекта CustomerFL

Рисунок 19. Добавляем свойство Phone в тип объекта CustomerFL

Добавляем свойство GUID в тип объекта CustomerFL

Рисунок 20 Добавляем свойство GUID в тип объекта CustomerFL

Затем добавим тип объекта CustomerIP с такими же свойствами, как у CustomerFL, добавив новое свойство INN.

Добавляем свойство INN в тип объекта CustomerIP

Рисунок 21. Добавляем свойство INN в тип объекта CustomerIP

Дальше создадим тип объекта CustomerUL с такими же свойствами, как у CustomerIP. Добавим новое свойство KPP.

Добавляем свойство KPP в тип объекта CustomerUL

Рисунок 22. Добавляем свойство KPP в тип объекта CustomerUL

У свойства INN нужно изменить тип на INN_UL (http://kursy-po-1c.ru/ws/wsextension).

Добавляем свойство INN в тип объекта CustomerUL

Рисунок 23. Добавляем свойство INN в тип объекта CustomerUL

Мы завершили создание XDTO-пакета.

Новый XDTO-пакет

Рисунок 24. Новый XDTO-пакет

Переходим к разработке веб-сервиса.

Создаем веб-сервис

В ветке метаданных Общие выделяем ветку Web-Сервисы. Вызываем контекстное меню Добавить и заполняем свойства нового веб-сервиса:

Заполняем свойства веб-сервиса

Рисунок 25. Заполняем свойства веб-сервиса

  • Имя — ak_Customers
  • ПакетыXDTO — http://kursy-po-1c.ru/ws/wsextension. Теперь сможем использовать типы данных, которые определены этом пакете.
  • URI пространства — http://kursy-po-1c.ru/ws/wsextension. Пространство имен будет использоваться клиентами веб-сервиса.
  • Имя файла публикации — Customers.1cws. Имя будет использоваться в URL для получения WSDL.

Теперь добавим метод веб-сервиса, который будет записывать в УНФ нового контрагента-физлицо. Вызываем меню Добавить->Операция и заполняем свойства:

Свойства метода AddCustomerFL

Рисунок 26. Свойства метода AddCustomerFL

  • Имя — имя метода веб-сервиса. Будет использоваться при обращении к сервису извне.
  • Тип возвращаемого значения — тип данных, который возвращает сервис. В нашем случае это строка-уникальный идентификатор, который в будет возвращен в CRM.
  • Имя процедуры — имя процедуры в модуле сервиса, которая будет выполняться при обращении к этому методу.

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

В нашем случае это один параметр — Customer. Для добавления параметра выделяем операцию веб-сервиса и вызываем контекстное меню Добавить->Параметр. В свойствах этого параметра заполняем свойства:

Свойства параметра Customer

Рисунок 27. Свойства параметра Customer

  • Имя — имя параметра метода сервиса. Будет виден на клиенте веб-сервиса.
  • Тип значения — тип значения, определенный в нашем пакете.

Добавим еще две операции:

  • AddCustomerIP
  • AddCustomerUL.

Можно сделать это копированием. Затем нужно поменять имена операций, имена процедур-обработчиков (AddCustomerIP и AddCustomerUL) и типы параметров. Для AddCustomerIP тип параметра установим CustomerIP, а для AddCustomerUL — CustomerUP.

Теперь нужно создать процедуры-обработчики методов сервиса.

  //Добавляем ФизЛицо
  Функция AddCustomerFL(Customer)
      Возврат ДобавитьКлиента(Customer, Перечисления.ВидыКонтрагентов.ФизическоеЛицо);
  КонецФункции

  //Добавляем ЮрЛицо
  Функция AddCustomerUL(Customer)
      Возврат ДобавитьКлиента(Customer, Перечисления.ВидыКонтрагентов.ЮридическоеЛицо);
  КонецФункции

  //Добавляем ИП
  Функция AddCustomerIP(Customer)
      Возврат ДобавитьКлиента(Customer, Перечисления.ВидыКонтрагентов.ИндивидуальныйПредприниматель);
  КонецФункции

  //Добавляем контрагента в базу УНФ
  Функция ДобавитьКлиента(Клиент, ВидКонтрагента)
      //Создаем нового контрагента и заполняем общие реквищиты
      НовыйКлиент = Справочники.Контрагенты.СоздатьЭлемент();
      НовыйКлиент.ВидКонтрагента = ВидКонтрагента;
      НовыйКлиент.Наименование = Клиент.FullName;
      НовыйКлиент.НаименованиеПолное = Клиент.FullName;
      НовыйКлиент.Покупатель = Истина;
      //Для ЮрЛица и ИП заполняем ИНН
      Если ВидКонтрагента <> Перечисления.ВидыКонтрагентов.  ФизическоеЛицо Тогда
        НовыйКлиент.ИНН = Клиент.INN;
      КонецЕсли;
      //Для ЮрЛица заполняем КПП
      Если ВидКонтрагента = Перечисления.ВидыКонтрагентов.ЮридическоеЛицо Тогда
          НовыйКлиент.КПП = Клиент.KPP;
      КонецЕсли;
      //Заполняем контактные данные
      Телефон = НовыйКлиент.КонтактнаяИнформация.Добавить();
      Телефон.Тип = Перечисления.ТипыКонтактнойИнформации.Телефон;
      Телефон.Вид = Справочники.ВидыКонтактнойИнформации.ТелефонКонтрагента;
      Телефон.НомерТелефона = Клиент.Phone;
      Телефон.Представление = Клиент.Phone;
  
    //Записываем клиента в базу
      НовыйКлиент.Записать();
      //Возвращаем ссылку в виде уникального идентификатора (GUID)
      Возврат XMLСтрока(НовыйКлиент.Ссылка);
  КонецФункции

Код простой и каких-то особых комментариев не требует.

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

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

  • Веб-сервер (Apache или IIS)
  • Платформа 8.3.7 и выше с установленным расширением веб-сервера

О подготовке рабочего окружения можно прочитать в статье Как настроить обмен 1С с интернет-сервисами.

Для публикации веб-сервиса нужно запустить конфигуратор с правами администратора. Для этого вызываем контекстное меню и выбираем «Запуск от имени администратора»:

Запуск конфигуратора от имени администратора

Рисунок 28. Запускаем конфигуратор от имени администратора

После открываем меню Администрирование->Публикация на веб-сервере. В открывшемся окне заполняем настройки:

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

Рисунок 29. Публикация веб-сервиса

  • Имя — имя базы для публикации на сервере. Будет являться частью URL.
  • Веб-сервер — на нем будет опубликована база. В нашем случае используется Apache 2.4.
  • Каталог — место на диске, куда будет помещен default.vrd.
  • Публиковать веб-сервисы — отмечаем.
  • Публиковать веб-сервисы расширений по умолчанию — отмечаем, чтобы веб-сервисы были доступны из расширений.

Жмем Опубликовать.

Проверим, что веб-сервис опубликовался. Для этого запустим браузер и в адресной строке введем http://localhost/UNF/ws/Customers.1cws?wsdl. В результате в браузере должен отобразиться XML.

Проверяем работу веб-сервиса

Рисунок 30. Проверяем работу веб-сервиса

Если в вашей базе есть пользователи, то при обращении по указанной ссылке  будет запрошен логин и пароль. Нужно ввести логин и пароль администратора информационной базы.

Чтобы в дальнейшем не отвлекаться на пароли при изучении статьи (тему безопасности мы сознательно опускаем), откроем в текстовом редакторе файл default.vrd, (он лежит в каталоге, указанном при публикации). В него запишем логин и пароль в строке подключения: ib=”File=&quot;D:1CBaseUNF&quot;;usr=admin;pwd=12345;”. Логин, пароль и путь должны быть от вашей базы 1С.

Тестируем веб-сервис

Для проверки работоспособности сервера можно создать отдельную базу 1С и добавить в ней обработку ТестВебСервера со следующими реквизитами:

  • FullName, строка(100)
  • INN, строка(12)
  • KPP, строка(9)
  • Phone, строка(20)

Реквизиты выводим на форму и добавляем три кнопки:

  • Создать ФизЛицо
  • Создать ЮрЛицо
  • Создать ИП.

Обработка для проверки веб-сервиса

Рисунок 31. Обработка для проверки веб-сервиса

В модуле формы напишем такой код:

  //1. Обработчики кнопок
  //Обработчик кнопки СоздатьФизЛицо
  &НаКлиенте
  Процедура СоздатьФизЛицо(Команда)
      СоздатьКлиентаНаСервере("CustomerFL");
  КонецПроцедуры

  //Обработчик кнопки СоздатьИП
  &НаКлиенте
  Процедура СоздатьИП(Команда)
      СоздатьКлиентаНаСервере("CustomerIP");
  КонецПроцедуры

  //Обработчик кнопки СоздатьЮрЛицо
  &НаКлиенте
  Процедура СоздатьЮрЛицо(Команда)
      СоздатьКлиентаНаСервере("CustomerUL");
  КонецПроцедуры

  //Создание клиента
  &НаСервере
  Процедура СоздатьКлиентаНаСервере(ТипКлиента)
      //2. Получаем описание сервиса
      ВСОпределение = Новый WSОпределения("http://localhost/UNF/ws/Customers.1cws?wsdl");
      //3. Создаем прокси для обращения к сервису
      Прокси = Новый WSПрокси(ВСОпределение, "http://kursy-po-1c.ru">kursy-po-1c.ru/ws/wsextension", "ak_Customers", "ak_CustomersSoap");
      //4. Получаем тип клиента по URI пространству имен и имени типа
      ТипКлиент = Прокси.ФабрикаXDTO.Тип("http://kursy-po-1c.ru">kursy-po-1c.ru/ws/wsextension", ТипКлиента);
      //5. Создаем XDTOОбъект заданного типа
      Клиент = Прокси.ФабрикаXDTO.Создать(ТипКлиент)      ;
      //6. Заполняем данные Клиента данными, введенными в форме
      ЗаполнитьЗначенияСвойств(Клиент, Объект);
      //7. В зависимости от типа клиента вызываем соответствующий метод веб-сервиса
      Если ТипКлиента = "CustomerFL" Тогда
          Объект.GUID = Прокси.AddCustomerFL(Клиент);
      ИначеЕсли ТипКлиента = "CustomerIP" Тогда
          Объект.GUID = Прокси.AddCustomerIP(Клиент);
      ИначеЕсли ТипКлиента = "CustomerUL" Тогда
          Объект.GUID = Прокси.AddCustomerUL(Клиент);
      КонецЕсли;
  КонецПроцедуры

Прокомментируем код:

  1. В обработчиках кнопок вызываем процедуру СоздатьКлиентаНаСервере() и передаем название типа клиента в виде строки.
  2. Получаем WSDL-описание веб сервиса, опубликованного по указанному в параметрах URL. На основании него создается объект WSОпределение.
  3. Создаем объект Прокси для работы с сервисом. Он позволяет обращаться к веб-сервису, вызывая его методы в привычном объектном стиле. В качестве параметров передаем WSОпределение сервиса, созданное на предыдущем шаге, пространство имен веб-сервиса, имя веб-сервиса и точку подключения. Имя точки подключения формируется путем добавления к имени сервиса суффикса Soap (так формирует WSDL 1C).
  4. Получаем тип клиента по URI пространства имен.
  5. На основании типа клиента, полученного на предыдущем шаге, создаем XDTOОбъект Клиент. По структуре этот объект будет соответствовать структуре типа, который мы определяли в нашем XDTO-пакете.
  6. Заполняем значения реквизитов клиента данными, введенными в форме;
  7. В зависимости от переданного в процедуру типа клиента, мы вызываем разные методы веб-сервиса. «Под капотом» этого вызова произойдет сериализация данных в XML, валидация XML, формирование HTTP пакета и отправка его на сервер.

С этой обработкой можно поэксперементировать. Попробуйте создавать клиентов разных типов, введя корректные данные и некорректные. Если вы попытаетесь ввести в ИНН буквы или заполнить телефон, не соблюдая формат, то появится окно ошибки.

Итак, в данной статье мы познакомились с возможностями платформы по разработке веб-сервисов без снятия конфигурации с поддержки. Создали расширение, импортировали в расширение нужные нам объекты метаданных и описали модель данных для обмена. Создали и опубликовали веб-сервис. Написали обработку на 1С для проверки работоспособности этого сервиса.

На этом пока закончим, но не остановимся

Об авторе

Автор статьи – Алексей Дубровин, г. Челябинск

E-mail: dubrovin1973@gmail.com

Нужно быстро разобраться в работе расширений?

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

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

500 Internal Server Error (Внутренняя ошибка сервера)

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

3. Убедитесь, что права доступа к файлам, папкам и скриптам выставлены верно. Для папок рекомендуется значение 755, для скриптов — 600, а для других файлов — 644. При других вариантах прав доступ к сайту может блокироваться в целях безопасности.

4. Проверьте, всё ли в порядке со скриптами. Возможно, какой-то из скриптов слишком медленный или время ожидания ответа от сервера слишком мало. Если при просмотре лог-файлов выяснится, что какой-то из скриптов незапланированно требует слишком много памяти, оптимизируйте его или удалите. А если обнаружится, что какой-то из скриптов вовсе не запускается, убедитесь, что функция прописана верно, поддерживается сервером и соответствует используемой версии PHP.

5. Отдельно обратите внимание на CGI-скрипты: вероятно, строки в них имеют не те окончания, что исправляется загрузкой скриптов через FTP в режиме ASCII. Также некорректная работа CGI-скриптов может быть причиной ошибок в HTTP-заголовках, что тоже приводит к ошибке 500. Либо же имеются ошибочные директивы, предназначенные для работы со скриптами.

502 Bad Gateway (Ошибочный шлюз)

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

1. Перезагрузите страницу. Зайдите на любой другой сайт, которой точно должен работать в данный момент. Это поможет узнать, есть ли у вас доступ к интернету в принципе. Если доступ есть, очистите файлы cookies в браузере, а затем посетите сайт снова.

2. Убедитесь, что на ваш сайт не совершается DDoS-атака. В противном случае обратитесь к хостинг-провайдеру.

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

4. Проверьте нагрузку на сервер. Если лимит превышается, необходимо увеличить объём оперативной памяти.

5. Посмотрите настройки сервера. Возможными поводами для появления ошибки 502 могут быть:
• неполадки после установки обновлений;
• превышение лимитов на число обращений к внешним ресурсам и на время ответа сервера;
• некорректные лимиты в файлах конфигурации ini;
• превышение лимита на число php-cgi-процессов;
• недостаточная оптимизация скриптов;
• недостаточная оптимизация запросов;
• неправильная работа модулей (если ошибка возникает при обращении к скриптам конкретного расширения).

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

503 Service Unavailable (Сервис недоступен)

Сервер не работает из-за перегрузок. Либо же происходит плановая перезагрузка или отключение сервера: в этом случае вместе с сообщением об ошибке после слов «Retry-After» должно отображаться время, когда сервер вернётся в работу. Если же ошибка 503 появляется часто и не по причине плановых работ, то это говорит о неполадках, которые следует устранить.

1. Сначала просто подождите. Возможно, причина в длинной очереди запросов к серверу, что не требует вмешательства.

2. Как и в случае с ошибкой 502, удостоверьтесь, что на сайт не производится DDoS-атака.

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

4. Проверьте, не слишком ли активно посещают ваш сайт поисковые роботы. Если это имеет место быть, ограничьте их активность.

5. Удалите тяжёлые или вовсе ненужные плагины и компоненты.

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

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

8. Оптимизируйте почтовую рассылку: распределяйте отправку писем по времени, запускайте рассылку в часы наименьшей нагрузки.

9. Оптимизируйте SQL-запросы, выявите самые медленные из них с помощью лог-файлов.

504 Gateway Timeout (Шлюз не отвечает)

Один из серверов не дождался ответа от вышестоящего сервера, о чём сообщает кодом 504.

1. Перезагрузите страницу, убедитесь в стабильности работы сетевых устройств.

2. Как и в предыдущих случаях, проверьте работу скриптов. Важно, чтобы они выполнялись не слишком долго, а внешние соединения происходили успешно.

3. При чрезмерной нагрузке на сервер увеличьте его ресурсы или оптимизируйте сайт.

4. Если возможно, увеличьте время ожидания при использовании nginx как прокси-сервера для Apache. Для этого добавьте эти строки в блоке server в файле nginx. conf:

Proxy_connect_timeout 600;
Proxy_send_timeout 600;
Proxy_read_timeout 600;
Send_timeout 600;

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

Также посмотрите ответы на вопросы из нашего раздела FAQ:

Кстати, недавно мы в целом рассказали о кодах состояния сервера, к которым относятся в том числе и коды ошибок.

502 Bad Gateway — что это за ошибка и как ее исправить

Здравствуйте, уважаемые читатели блога KtoNaNovenkogo. ru. Иногда при попытке входа на определенный сайт пользователь может увидеть сообщение об ошибке 502 Bad Gateway.

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

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

В этой статье я постараюсь простыми словами рассказать о 502 Bad Gateway: что это значит и как устранить.

502 Bad Gateway — что это?

502 Bad Gateway в переводе на русский обозначает «Плохой шлюз».

Отсюда следует, что Bad Gateway — это ошибка, при которой браузер на компьютере пользователя получает недопустимый ответ от сервера или DNS-сервера при запросе данных с веб-узла.

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

Сервер Apache (то есть тот, на котором находится сайт) получает запрос, но не имеет возможности его обработать, о чем сообщает серверу nginx. А он уже передает сообщение, которое выводится в браузере пользователя: «502 Bad Gateway Nginx».

На разных сайтах Возможны следующие варианты отображения ошибки:

Причины появления ошибки

Вот 3 основных причины, из-за которых пользователь видит на странице браузера эту надпись:

Как пользователю устранить ошибку 502 Bad Gateway

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

1. Перезагрузите страницу

Самое простое решение, которое должно помочь устранить ошибку 502, — это просто обновить страницу, на которой появляется надпись. Делать это лучше спустя одну-две минуты после того, как возникла ошибка. В большинстве случаев после перезагрузки страницы проблема уходит.

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

2. Очистите кэш

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

В большинстве браузеров добиться желаемого результата можно, выполнив следующие действия:

3. Используйте другой браузер

В некоторых случаях для устранения ошибки 502 достаточно воспользоваться другим браузером. В качестве альтернативы включите «режим Инкогнито». Так вам удастся справиться с проблемой, если ее причина в используемом браузере.

4. Воспользуйтесь другим устройством

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

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

5. Удалите кэш DNS

Ошибка 502 Bad Gateway может также быть вызвана связанной с DNS причиной. Например, некорректным IP-адресом в кэше. В этом случае разумным решением станет очистка кэша DNS.

1. Просмотрите журнал ошибок

Бывают случаи, когда ошибка 502 появляется после определенного обновления или изменений на сайте. Чтобы проверить, является ли это причиной возникновения неполадок или нет, предлагаю просмотреть журнал ошибок.

Владельцы сайта на Вордпресс могут включить в код файла wp-config. php всего три строчки, благодаря которым будет идти автоматический учет ошибок.

Сохраненные записи можно найти в файле debug. log, который отображается в папке wp-content.

2. Проверьте плагины

Этот совет адресован владельцам сайтов на WordPress. Подобная ошибка может возникать из-за Проблем с плагинами кэширования. Чтобы проверить, действительно ли они виноваты, отключите их на непродолжительное время.

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

3. Уделите внимание сетям CDN

Иногда причиной ошибки 502 являются сети CDN и призванные предотвратить атаки DDoS службы. В качестве примера можно взять сервис CloudFlare, где в зависимости от причины, ошибка может быть такой:

Заключение

502 Bad Gatewa — это один из кодов ответа HTTP, который обозначает, что сервер-источник исправляет неверный ответ.

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

Я постарался простыми словами рассказать, что значит ошибка 502, почему она возникает и как с ней бороться. Надеюсь, что после прочтения статьи у вас не останется вопросов. В любом случае приглашаю спуститься в комментарии и при желании пообщаться на эту тему с другими читателями блога KtoNaNovenkogo. ru.

Не забудьте посмотреть видео:

Удачи вам! До скорых встреч на страницах блога KtoNaNovenkogo. ru

Комментарии и отзывы (2)

По своему опту скажу, что если отображается код 502, то это значит, что просто нет доступа к сайту. И с этим ничего не сделать. Можно конечно попробовать использовать ВПН, но скорее всего это не поможет. Это проблемы на стороне удаленного ресурса, и пользователю остается только ждать. Главное, это не начать бездумно рыться в настройках подключения, что бы не сделать себе проблему на ровном месте!

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

Источники:

Https://jino. ru/journal/articles/oshibki-500-502-503-504/

Https://ktonanovenkogo. ru/voprosy-i-otvety/oshibka-502-bad-gateway-chto-ehto-znachit-kak-ispravit. html

Добрый день.
Пытаюсь разобраться с WEB-сервисами. Разобрал пример из ИНЕТА. Опубликовал локально на WEB-сервере. Но при обращении к нему из обработки, сервер выдает ошибку:

{ВнешняяОбработка.WEB_Service.Форма.Форма.Форма(11)}: Ошибка при вызове конструктора (WSОпределения)
    Определение = Новый WSОпределения(«http://localhost/request/ws/request.1cws?wsdl»,»Admin»,»123″);
по причине:
При создании описания сервиса произошла ошибка. URL сервиса: http://localhost/request/ws/request.1cws?wsdl
Код ответа сервера: 301

   Публиковал и на IIS и на Apache 2.4
Результата один  «Код ответа сервера: 301» (получаемый в ответ от сервера в ситуации, когда запрошенный ресурс был на постоянной основе перемещён в новое место). Совершенно ни о чем мне не говорит.
Сервис прекрасно читается в браузере напрямую — «http://localhost/request/ws/request.1cws?wsdl»
Он даже загружается в «WS-ссылки» конфигуратора.
Но работать не хочет из Обработки, которая к нему обращается.
Пример брал здесь: https://infostart.ru/public/327963/
Подскажите, как с этим бороться.

Нашел неточность. Имя сервиса «Request» (С большой буквы)
Теперь строка в определении выглядит так — «http://localhost/Request/ws/request.1cws?wsdl»
Но теперь ошибка 400 (что-то там с синтаксисом)

Разобрался.
Надо было делать так «http://127.0.0.1/Request/ws/request.1cws?wsdl»
«localhost» не катит

Статья основана на запросе клиента:

выгрузка из 1С на сайт после сбоя происходит с ошибкой — ранее работала корректно. Выдает вот такую штуковину

Лог:

Выгружено товаров: 200

Выгружено картинок: 254

Выгружено предложений: 186

Выгружено документов Ремонт: 355

Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции  ‘admin/exchange/auto/?type=catalog&mode=file&filename=import_files/44/446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg’: Ошибка работы с Интернет:  неверный формат ответа шлюзу (502). <html>

<head><title>502 Bad Gateway</title></head>

<body bgcolor=»white»>

<center><h1>502 Bad Gateway</h1></center>

<hr><center>nginx-reuseport/1.11.10</center>

</body>

</html>

: Ошибка работы с Интернет:  неверный формат ответа шлюзу (502)

Произошла ошибка: . По причине:

Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersUSR1CV82AppDataLocalTemp1cbitriximport_files44446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg.2).

Обмен не выполнен

Ответ сервера:

<head><title>502 Bad Gateway</title></head>

<body bgcolor=»white»>

<center><h1>502 Bad Gateway</h1></center>

<hr><center>nginx-reuseport/1.11.10</center>

</body>

</html>

Выгрузка товаров завершена с ошибками!!!

Техническая информация:

Выгружено товаров: 200

Выгружено картинок: 254

Выгружено предложений: 186

Выгружено документов Ремонт: 355

{Обработка.ОбменССайтом.МодульОбъекта(326)}: Ошибка при вызове метода контекста (ОтправитьДляОбработки): Ошибка при выполнении файловой операции  ‘admin/exchange/auto/?type=catalog&mode=file&filename=import_files/44/446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg’: Ошибка работы с Интернет:  неверный формат ответа шлюзу (502). <html>

<head><title>502 Bad Gateway</title></head>

<body bgcolor=»white»>

<center><h1>502 Bad Gateway</h1></center>

<hr><center>nginx-reuseport/1.11.10</center>

</body>

</html>

: Ошибка работы с Интернет:  неверный формат ответа шлюзу (502)

Произошла ошибка: . По причине:

Произошла ошибка на стороне сервера. Не получен статус завершения операции. Файл не отправлен (C:UsersUSR1CV82AppDataLocalTemp1cbitriximport_files44446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg.2).

Обмен не выполнен

Ответ сервера:

<head><title>502 Bad Gateway</title></head>

<body bgcolor=»white»>

<center><h1>502 Bad Gateway</h1></center>

<hr><center>nginx-reuseport/1.11.10</center>

</body>

</html>

Просьба подсказать, что тут может быть?

Комментарий разработчиков на UMI.CMS А25 по настройке корректной выгрузки из 1С и исправлению ошибок:

502 ошибка возникает в момент, когда сервер не справляется с нагрузкой.

В вашем случае очень похоже, что картинка 446dce7e-0f76-11e1-81d4-0015179911ad_6cba4f76-3289-11e4-adc9-0015179911ac.jpeg является причиной данной проблемы. Возможно, что её размер превышает допустимые сервером нормы. Или же из-за её размера время загрузки увеличивается настолько, что сервер обрубает процесс.

Первая рекомендация — проверить саму картинку и уменьшить её.

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

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

Я

  

Vir_Rus

21.08.19 — 14:32

Добрый день!

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

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

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

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

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

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

Спасибо

  

Vir_Rus

1 — 21.08.19 — 14:45

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

<?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="/Obmen"
        ib="Srvr=&quot;10.194.11.201&quot;;Ref=&quot;gdctest2&quot;;">
    <ws publishExtensionsByDefault="true">
        <point name="Obmen"
                alias="ws1.1cws"
                enable="true"
                reuseSessions="autouse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"/>
    </ws>
    <standardOdata enable="true"
            reuseSessions="autouse"
            sessionMaxAge="20"
            poolSize="10"
            poolTimeout="5"/>
</point>

  

НЕА123

2 — 21.08.19 — 14:50

ХЗ.

м.б. конфигуратор при публикации был запущен не под администратором

  

Vir_Rus

3 — 21.08.19 — 14:57

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

Дело не в этом.

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

  

Жан Пердежон

4 — 21.08.19 — 15:23

(3) ну так почитал бы гайды сначала, с IIS тоже манипуляции могут потребоваться

  

Vir_Rus

5 — 22.08.19 — 12:41

Всем привет!

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

Но при попытке выполнить процедуру веб сервиса вываливается ошибка:»{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

Почему в ошибке указан файл в папке C:www? я его ни где не прописывал…

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

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

  

Vir_Rus

6 — 22.08.19 — 12:46

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

Функция Приветствие(Параметр1)
    Возврат Неопределено;
КонецФункции

В другой базе добавил ws-ссылку на веб сервис.

Пытаюсь подключиться:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси("Obmen","Hello","HelloSoap");
    Соединение.Пользователь = "****";
    Соединение.Пароль = "****";
    Попытка
        Ответ = Соединение.Приветствие("132");
        Сообщить(Ответ);
    Исключение
        Сообщить(ОписаниеОшибки());
    КонецПопытки;

в результате ошибка.

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

УРЛ = "http://localhost:80/Hello/ws/ws2.1cws?wsdl";;

    Пространство = "Obmen";
    ИмяСервиса = "Hello";
    ИмяТочкиПодключения = "HelloSoap";

         Попытка
        Определение = новый WSОпределения(УРЛ,,,,20);
        Соединение = Новый WSПрокси(Определение,Пространство,ИмяСервиса,ИмяТочкиПодключения,,150);
    Исключение
        Сообщить(ОписаниеОшибки());
        Возврат;
    КонецПопытки;

Получаю следующую ошибку:

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

Код ответа сервера: 500

  

ptiz

7 — 22.08.19 — 13:06

(5) «я его ни где не прописывал» — ищи в файле настроек апача httpd.conf

  

Vir_Rus

8 — 22.08.19 — 13:17

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

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

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

  

DrWatson

9 — 22.08.19 — 13:18

(5) А разве это сообщение не значит, что с настройками всё хорошо, веб-сервис вызывается. Но 1С не нравится твоя функция Приветствие(). Может стоит убрать у неё параметр?

  

Vir_Rus

10 — 22.08.19 — 13:28

(9) Убирал, результат тот же

  

ptiz

11 — 22.08.19 — 13:49

(8) Покажи, что у тебя в файле httpd.conf в блоке после:

# 1c publication

  

Vir_Rus

12 — 22.08.19 — 13:53

На всякий случай все после 1с publication выложу:

# 1c publication

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

    AllowOverride All
    Options None
    Order allow,deny
    Allow from all
    SetHandler 1c-application
    ManagedApplicationDescriptor "C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd"
</Directory>

#

# 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.

#

DefaultType text/plain

<IfModule mime_module>

    #

    # TypesConfig points to the file containing the list of mappings from

    # filename extension to MIME-type.

    #

    TypesConfig conf/mime.types

    #

    # 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.

    #

    #AddEncoding x-compress .Z

    #AddEncoding x-gzip .gz .tgz

    #

    # If the AddEncoding directives above are commented-out, then you

    # probably should define those extensions to indicate media types:

    #

    AddType application/x-compress .Z
    AddType application/x-gzip .gz .tgz

    #

    # 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.)

    #

    #AddHandler cgi-script .cgi

    # 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.)

    #

    #AddType text/html .shtml

    #AddOutputFilter INCLUDES .shtml

</IfModule>

#

# 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.

#

#MIMEMagicFile conf/magic


#

# 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 404 /missing.html

#ErrorDocument 404 "/cgi-bin/missing_handler.pl"

#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

#EnableSendfile off


# Supplemental configuration

#

# 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

# necessary.

# Server-pool management (MPM specific)

#Include conf/extra/httpd-mpm.conf

# Multi-language error messages

#Include conf/extra/httpd-multilang-errordoc.conf

# Fancy directory listings

#Include conf/extra/httpd-autoindex.conf


# Language settings

#Include conf/extra/httpd-languages.conf


# User home directories

#Include conf/extra/httpd-userdir.conf

# Real-time info on requests and configuration

#Include conf/extra/httpd-info.conf


# Virtual hosts

#Include conf/extra/httpd-vhosts.conf


# Local access to the Apache HTTP Server Manual

#Include conf/extra/httpd-manual.conf

# Distributed authoring and versioning (WebDAV)

#Include conf/extra/httpd-dav.conf

# Various default settings

#Include conf/extra/httpd-default.conf


# Secure (SSL/TLS) connections

#Include conf/extra/httpd-ssl.conf

#

# 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.

#

<IfModule ssl_module>

SSLRandomSeed startup builtin

SSLRandomSeed connect builtin

</IfModule>

  

ptiz

13 — 22.08.19 — 13:59

(12) Теперь проверь — всё ли правильно написано в этом файле: C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/default.vrd

  

Vir_Rus

14 — 22.08.19 — 14:06

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

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

<definitions xmlns=»http://schemas.xmlsoap.org/wsdl/»; xmlns:soap12bind=»http://schemas.xmlsoap.org/wsdl/soap12/»; xmlns:soapbind=»http://schemas.xmlsoap.org/wsdl/soap/»; xmlns:tns=»Obmen» xmlns:wsp=»http://schemas.xmlsoap.org/ws/2004/09/policy»; xmlns:wsu=»http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd»; xmlns:xsd=»http://www.w3.org/2001/XMLSchema»; xmlns:xsd1=»Obmen» name=»Hello» targetNamespace=»Obmen»>

<types>

<xs:schema xmlns:xs=»http://www.w3.org/2001/XMLSchema»; xmlns:xs1=»Obmen» targetNamespace=»Obmen» elementFormDefault=»qualified»>

<xs:element name="Приветствие">

<xs:complexType>
<xs:sequence/>
</xs:complexType>
</xs:element>
<xs:element name="ПриветствиеResponse">
<xs:complexType>
<xs:sequence>
<xs:element name="return" type="xs:all" nillable="true"/>
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:schema>
</types>
<message name="ПриветствиеRequestMessage">
<part name="parameters" element="tns:Приветствие"/>
</message>
<message name="ПриветствиеResponseMessage">
<part name="parameters" element="tns:ПриветствиеResponse"/>
</message>
<portType name="HelloPortType">
<operation name="Приветствие">
<input message="tns:ПриветствиеRequestMessage"/>
<output message="tns:ПриветствиеResponseMessage"/>
</operation>
</portType>
<binding name="HelloSoapBinding" type="tns:HelloPortType">
<soapbind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>;
<operation name="Приветствие">
<soapbind:operation style="document" soapAction="Obmen#Hello:Приветствие"/>
<input>
<soapbind:body use="literal"/>
</input>
<output>
<soapbind:body use="literal"/>
</output>
</operation>
</binding>
<binding name="HelloSoap12Binding" type="tns:HelloPortType">
<soap12bind:binding style="document" transport="http://schemas.xmlsoap.org/soap/http"/>;
<operation name="Приветствие">
<soap12bind:operation style="document" soapAction="Obmen#Hello:Приветствие"/>
<input>
<soap12bind:body use="literal"/>
</input>
<output>
<soap12bind:body use="literal"/>
</output>
</operation>
</binding>
<service name="Hello">
<port name="HelloSoap" binding="tns:HelloSoapBinding">
<documentation>
<wsi:Claim xmlns:wsi="http://ws-i.org/schemas/conformanceClaim/"; conformsTo="http://ws-i.org/profiles/basic/1.1"/>;
</documentation>
<soapbind:address location="http://localhost/Hello/ws/Hello"/>;
</port>
<port name="HelloSoap12" binding="tns:HelloSoap12Binding">
<soap12bind:address location="http://localhost/Hello/ws/Hello"/>;
</port>
</service>
</definitions>

  

ptiz

15 — 22.08.19 — 14:16

(14) Это ответ веб-сервиса, значит — работает.

  

Йохохо

16 — 22.08.19 — 14:18

(15) это копипаст из блокнота)

  

ptiz

17 — 22.08.19 — 14:19

(14) У тебя «Имя файла публикации» заполнено в свойстве веб-сервиса?

  

ptiz

18 — 22.08.19 — 14:20

(14) И покажи содержимое файла default.vrd

  

Vir_Rus

19 — 22.08.19 — 15:02

(17) заполнено (18) 
<?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="/Hello"
        ib="Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;">
    <httpServices publishByDefault="false"/>
    <standardOdata enable="true"
            reuseSessions="autouse"
            sessionMaxAge="20"
            poolSize="10"
            poolTimeout="5"/>
    <ws>
        <point name="Obmen"
                alias="ws1.1cws"
                enable="true"
                reuseSessions="autouse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"/>
        <point name="Hello"
                alias="ws2.1cws"
                enable="true"
                reuseSessions="autouse"
                sessionMaxAge="20"
                poolSize="10"
                poolTimeout="5"/>
    </ws>
</point>

  

ptiz

20 — 22.08.19 — 15:22

  

Йохохо

21 — 22.08.19 — 15:27

ib="Srvr=&quot;sd-s-vm02&quot;
попробуйте по айпи

  

Йохохо

22 — 22.08.19 — 15:29

ib="Srvr=&quot;sd-s-vm02&quot;;Ref=&quot;gdctest2&quot;;" странно выглядит
ib="Srvr=sd-s-vm02;Ref=gdctest2;"

  

Vir_Rus

23 — 22.08.19 — 15:32

(20) Открывается

http://localhost:80/Hello если так — то доступ к базе будет из браузера

  

Vir_Rus

24 — 22.08.19 — 15:35

(21) т.е. попробовать отредактировать этот файл? и написать там айпи вместо названия?

  

Vir_Rus

25 — 22.08.19 — 15:36

(22) Во всяком случае, если бы дело было в этом — я бы не смог зайти в базу из браузера. Так что не думаю что проблема тут

  

Йохохо

26 — 22.08.19 — 15:39

(23) открывается это именно текст из (24) виден в браузере?

  

Vir_Rus

27 — 22.08.19 — 15:45

(26) Виден текст из (14) если из браузера переходить http://localhost/Hello/ws/Hello?wsdl

А (19) это содержимое файла default.vrd

  

ptiz

28 — 22.08.19 — 15:57

(27) Команду: новый WSОпределения() выполняешь в какой базе? Файловая? Серверная? С какого компьютера?

А то ведь localhost будет доступен только с того компа, где апач.

  

Vir_Rus

29 — 22.08.19 — 16:05

(28) новый WSОпределения() выполняю на своем ПК, на нем же стоит Апач. Базы серверные.

При выполнении данной команды получаю ошибку:

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

Код ответа сервера: 500

У меня веб сервис основной забы подключен в ws-ссылки в «мобильной» базе. Из нее сразу создаю wsПрокси:

    Соединение = WSСсылки.WSСсылка1.СоздатьWSПрокси("Obmen","Hello","HelloSoap");

И получаю ошибку:

«{ОбщаяФорма.ФормаОбмена.Форма(26)}: Ошибка при вызове метода контекста (Приветствие): При вызове веб-сервиса произошла ошибка. Ошибка вызова операции сервиса:  {Obmen}:Hello:Приветствие(): При вызове веб-сервиса произошла ошибка. Ошибка HTTP:  HTTP Status 500 — Внутренняя ошибка сервера.

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

  

Vir_Rus

30 — 23.08.19 — 08:53

Возможно нашел причину возникновения ошибки…

Сейчас ради эксперимента выключил сервер апач и попробовал выполнить веб сервис. получил точно такую же ошибку.

Получается из 1с не виден сервер апача…

Потому что из браузера все работает нормально.

В чем может быть ошибка? Какие-нибудь права 1с-ке нужны?

  

ptiz

31 — 23.08.19 — 09:03

(29) Замени наконец localhost на нормальное имя компьютера, или (ещё лучше) — IP-адрес.

  

Vir_Rus

32 — 23.08.19 — 09:07

(31) Уже заменил на локальный адрес 127.0.0.1 — не помогло

  

Василий Алибабаевич

33 — 23.08.19 — 09:08

(12) Иттить колотить….

Вы на полном серьезе считаете нормальным вот такой путь: Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>?

  

Vir_Rus

34 — 23.08.19 — 09:08

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

  

Vir_Rus

35 — 23.08.19 — 09:09

(33) переделал путь на c:/www/ — тут уже лежит веб сервис — результат не изменился…

  

Василий Алибабаевич

36 — 23.08.19 — 09:10

+ (33) Тем более с учетом того, что в ошибке указан путь: ‘C:wwwdefault.vrd’ ЦЫ(28) ???

  

Василий Алибабаевич

37 — 23.08.19 — 09:10

(35) Переделал как? Что изменял?

  

ДенисЧ

38 — 23.08.19 — 09:11

А у тебя Апачу разрешено слушать какой-то адрес, кроме локохоста?

  

Vir_Rus

39 — 23.08.19 — 09:12

(37) папку публикации веб сервиса и в конфиге апача строку documentsdirectory — вроде так она называется на путь «c:/www»

  

ПускинАС

40 — 23.08.19 — 09:12

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

  

ПускинАС

41 — 23.08.19 — 09:16

(0) Поставь апач нормально, нормальный, и будет тебе ок.

  

Василий Алибабаевич

42 — 23.08.19 — 09:20

(39) Вообще корень сайта в файле конфигурации прописывается в "DocumentRoot"
При этом :
1. Пути должны указываться в в стиле Линукса
не c:www, а c://www
2. Там не должно быть кириллицы и спецсимволов.

  

Vir_Rus

43 — 23.08.19 — 09:20

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

  

Василий Алибабаевич

44 — 23.08.19 — 09:25

+ (42)
Каталог с публикацией 1с (*.vrd) должен быть внутри того, что указано в DocumentRoot.
в LoadModule должен быть указан корректный путь к wsap22.dll или wsap24.dll (зависит какой апач)

Публикация должна быть указана в файле httpd.conf примерно так :

# 1c publication

Alias "/Prdp" "D:/###/Prdp/"

<Directory "D:/###/Prdp/">

    AllowOverride All
    Options None
    Require all granted
    SetHandler 1c-application
    ManagedApplicationDescriptor "D:/###/Prdp/default.vrd"

</Directory>

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

  

Василий Алибабаевич

45 — 23.08.19 — 09:28

+(44) Если в httpd неправильно указан путь к wsap*.dll или юзеру, от имени которого запускается апач недостаточно прав на wsap*.dll служба не запустится. В журнале регистрации событий винды будет запись об ошибке.

Проверяй.

  

Vir_Rus

46 — 23.08.19 — 09:49

(45) по логике, если из браузера все работает — значит все настройки сервера и публикация веб сервиса выполнены корректно. или не факт?

Есть факт, то почему из 1с не получается достучаться до апача?

  

ptiz

47 — 23.08.19 — 09:51

(32) Где заменил? В создании ws-определения? И что будет делать 1С, если этот код запустится на сервере? К какому апачу стучаться?

  

Василий Алибабаевич

48 — 23.08.19 — 09:51

(46) «если из браузера все работает» А это так?

И как в браузере можно определить работоспособность сервиса? Оно же в браузер ничего не пишет.

Удалось открыть файл? Ну так видимо настройка прав позволяет. Запиши туда же обычный текстовый файл и попробуй открыть из браузера.

  

ПускинАС

49 — 23.08.19 — 09:54

https://www.apachehaus.com/cgi-bin/download.plx

вот норм.

распаковываешь с:Apache24 
в конфиге пишешь Define SRVROOT "C:/Apache24" (38 строка примерно) httpd.conf
переходишь в 
c:Apache24binhttpd.exe -k install (установка сервиса) 
c:Apache24binhttpd.exe -к start (запуск) 
и все ЁБА ! ! ) ) )

  

ДенисЧ

50 — 23.08.19 — 09:56

(46) Потому что у тебя апач и сервер 1с лежат на разных компах. А в апаче не разрешено слушать что-то другое, кроме лохоста.

  

ПускинАС

51 — 23.08.19 — 10:02

(50) кто тебе такую ересь сказал?

  

ДенисЧ

52 — 23.08.19 — 10:24

(51) Покажи мне в конфиге Апача директиву Listen

Её там нет.

  

ПускинАС

53 — 23.08.19 — 10:27

  

Василий Алибабаевич

54 — 23.08.19 — 10:27

(52) Она там есть. Вот пример :

#

# Listen: Allows you to bind Apache to specific IP addresses and/or

# ports, instead of the default. See also the <VirtualHost>

# directive.

#

# Change this to Listen on specific IP addresses as shown below to

# prevent Apache from glomming onto all bound IP addresses.

#

#Listen 12.34.56.78:80

Listen 81

Только оно не зато отвечает куда может ходить подключаемый модуль. Даже подключаемых пыхпых может грузить свои инклюды из-за пределов документрут.

  

ПускинАС

55 — 23.08.19 — 10:28

откуда вы все вылезли… из windows 95 ? )))

  

ДенисЧ

56 — 23.08.19 — 10:29

(53) Это порт.

  

ДенисЧ

57 — 23.08.19 — 10:30

А по дефолту апач слушает только локохост

  

Василий Алибабаевич

58 — 23.08.19 — 10:34

(57) Апач слушает порт. Откуда оно там возьмется — ему не важно.

ИМХАется мне ты спутал расположение ДокументРута. Вот за него не скажу. Хотя у меня написано так :

# DocumentRoot: The directory out of which you will serve your

# documents. By default, all requests are taken from this directory, but

# symbolic links and aliases may be used to point to other locations.

Настаиваю на : «but symbolic links and aliases may be used to point to other locations.»

  

Василий Алибабаевич

59 — 23.08.19 — 10:36

В общем у ТС проблема не в том, где расположен ДокументРут, а в том что ТС этого и сам не знает.

  

Йохохо

60 — 23.08.19 — 10:45

(46) откати все конфиги и сделай с нуля в отдельную папку

(59) на документрут плевать т.к.

Alias «/Hello» «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»

<Directory «C:/Program Files (x86)/Apache Software Foundation/Apache2.2/htdocs/»>

  

  

Йохохо

61 — 23.08.19 — 10:46

кстати под виндой слеша вроде не должно быть в конце Apache2.2/htdocs

  

Vir_Rus

62 — 23.08.19 — 10:48

Все заново сделал но уже на сервере где стоит сервер 1с. заработало.

Всем спасибо

  

Йохохо

63 — 23.08.19 — 10:49

так не интересно(

  

ptiz

64 — 23.08.19 — 12:16

(62) Ну правильно: локалхост с сервера 1С теперь стучится туда же, где апач (на нем же) :)

 

Пользователь 121134

Посетитель

Сообщений: 53
Баллов: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 07.03.2012

#1

0

12.03.2012 21:49:04

Здравствуйте. Выполняю обмен с web сайтом (1С Битикс редакция Малый Бизнес). Хотинг timeweb.
Если в настройках: Настройка параметров импорта каталога
Что делать с элементами отсутствующими в файле импорта: Ничего
Что делать с разделами отсутствующими в файле импорта: Ничего
Импорт проходит успешно и все выгружается. Но если настройки установлены иначе:
Что делать с элементами отсутствующими в файле импорта: Удалить
Что делать с разделами отсутствующими в файле импорта: Удалить
Тогда после зарузки вылетает ошибка:

Код
Выгружено товаров: 14 324
Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
<head><title>502 Bad Gateway</title></head>
<body bgcolor="white">
<center><h1>502 Bad Gateway</h1></center>
<hr><center>nginx/1.0.6</center>
</body>
</html>

Выгрузка товаров завершена с ошибками!!!

 

1С «Управление торговлей», редакция 10.3 (10.3.12.3) с стандартным механизмом обмена.
В Чем может быть проблема?  Выгрузка полная.

 

Пользователь 50292

Постоянный посетитель

Сообщений: 95
Баллов: 11
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 09.10.2009

 

Пользователь 46422

Эксперт

Сообщений: 545
Баллов: 93
Авторитет:

1

Рейтинг пользователя:

1

Регистрация: 31.07.2009

Это перегрузка сервера. Возьмите более мощный тарифный план. Сейчас какой тариф??

 

Пользователь 121134

Посетитель

Сообщений: 53
Баллов: 4
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 07.03.2012

Сейчас тарифный план Eterno[B], таписал в поддержку хостинга, сказали что нужно менять тарифный план и переезжать на другой сервер. Вышли из ситуации в настройках битрикса стояла настройка удалять элементы и группы, которых нет в пакете импорта, поменяли её на деактивировать и написал скрипт удаления деактивированных элементов.

 

Пользователь 60717

Заглянувший

Сообщений: 12
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 28.03.2010

У нас похожая беда на Eterno[B]. В настройках элементов и разделов поставили «Ничего», все равно не помогло. На 7 шаге падает в 502 и все тут.

 

Пользователь 82695

Заглянувший

Сообщений: 12
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 18.02.2011

Мужики помогите решить.

Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Обмен не выполнен
Ответ сервера:
<head><title>504 Gateway Time-out</title></head>
<body bgcolor=»white»>
<center><h1>504 Gateway Time-out</h1></center>
<hr><center>nginx/1.2.7</center>
</body>
</html>

Выгрузка товаров завершена с ошибками!!!

Сервер VDS с очень не хилыми параметрами. При выгрузке полного каталога (8000 товаров) выкидывает такую ошибку.
Я уже все перепробовал. Что не так ?

 

Пользователь 30123

Эксперт

Сообщений: 904
Баллов: 77
Авторитет:

0

Рейтинг пользователя:

3

Регистрация: 25.09.2008

bouton, у вас на стороне сайта стандартный импорт или кастомизированный? Используются ли обработчики событий?

 

Пользователь 82695

Заглянувший

Сообщений: 12
Авторитет:

0

Рейтинг пользователя:

0

Регистрация: 18.02.2011

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

 

Пользователь 30123

Эксперт

Сообщений: 904
Баллов: 77
Авторитет:

0

Рейтинг пользователя:

3

Регистрация: 25.09.2008

#9

1

27.04.2013 23:33:41

Цитата
bouton пишет:
Стандартный импорт. Ничего не дописывалось.
Проблема возникает только когда выгружаю полный каталог. Выгрузка только изменений проходит без проблем.

Возможно на стороне сайта висят обработчики событий добавления/апдейта элемента, и они писались не именно для импорта, но, тем не менее, влияют и на него. Возможно висит тяжелый обработчик события завершения импорта. Либо сервер не такой крутой, как вы думаете (неправильными настройками можно нивелировать любое железо). Не в порядке рекламы (к мастерхосту я не имею никакого отношения), но я беру вот этот их тарифный план (это даже не VDS, а виртуальная площадка)

http://masterhost.ru/service/hosting/virtual/extra/cms-bitrix/

в качестве своеобразного эталона. И вот если там работает, а на вашем VDS — нет, то этот VDS — фуфло, по-русски говоря. А стандартный импорт 8000 элементов, при отсутствии обработчиков событий, о которых я писала выше, там должен  отработать.

Сайт, Блог, Карточка партнера, Skype ID: Bedrosova

 

Пользователь 401766

Заглянувший

Сообщений: 1
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 26.10.2015

#10

0

22.12.2015 11:03:14

Добрый день. Возникла такая ошибка, с чем может быть связана? кто знает подскажите пожалуйста!

Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя и пароль,
а также настройки подключения к Интернет.
offers___e225d26b-b3ff-4a32-8786-5daebb055d8d.xml: Произошла ошибка на стороне сервера. Получен неизвестный статус импорта.
Ответ сервера:
<!DOCTYPE html>
<html>
<head>
<title>Error</title>
<style>
   body {
       width: 35em;
       margin: 0 auto;

 

Пользователь 71752

Постоянный посетитель

Сообщений: 153
Баллов: 24
Авторитет:

1

Рейтинг пользователя:

0

Регистрация: 21.09.2010

#11

0

25.01.2018 08:53:42

Здравствуйте! Мне ответили следующее в техподдержке Timeweb’а :
(имеется в виду по поводу ошибки 502 Bad Gateway)

Здравствуйте

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

http://timeweb.com/ru/services/hosting/rules/

:

  «Запрещается использование процессами процессоров сервера более 60% в  течение 5 секунд и более 10% в течение 25 секунд. В случае превышения  данного лимита процесс завершается.»

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

    Cледует отметить, что данное ограничение отсутствует на тарифных планах  Eterno, Premium и 1Сайт. Перейти на них можно в панели управления  аккаунтом, раздел «Тариф».

  Если у Вас возникнут какие-либо вопросы, обращайтесь, пожалуйста.

Ошибка при создании WSОпределения

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

Ошибка при создании WSОпределения

не проходит проверка веб-сервиса, падает на строке:
WS_Определение = Новый WSОпределения(СтруктураПараметров.WSDL_УдаленноеПодключение, СтруктураПараметров.WSDL_Пользователь, СтруктураПараметров.WSDL_Пароль);

сама ошибка:
{ОбщийМодуль.ТехнологическийЖурнал.Модуль(697)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. : При создании описания сервиса произошла ошибка. : Ошибка доступа к файлу ‘http://ws:xxxxxxx@skynet.gilev.ru/QueryTJ/ws/QueryTJ.1cws?wsdl’: Ошибка работы с Интернет: Couldn’t connect to server

имя и пароль веб-сервиса указываю ws, подскажите, куда копать?

Дмитрий Калинин
 
Сообщений: 2
Зарегистрирован: 04 мар 2014, 06:40

Re: Ошибка при создании WSОпределения

Сообщение Гилёв Вячеслав » 05 мар 2014, 20:26

Дмитрий Калинин писал(а):не проходит проверка веб-сервиса, падает на строке:
WS_Определение = Новый WSОпределения(СтруктураПараметров.WSDL_УдаленноеПодключение, СтруктураПараметров.WSDL_Пользователь, СтруктураПараметров.WSDL_Пароль);

сама ошибка:
{ОбщийМодуль.ТехнологическийЖурнал.Модуль(697)}: Ошибка при вызове конструктора (WSОпределения): При создании описания сервиса произошла ошибка. : При создании описания сервиса произошла ошибка. : Ошибка доступа к файлу ‘http://ws:xxxxxxx@skynet.gilev.ru/QueryTJ/ws/QueryTJ.1cws?wsdl’: Ошибка работы с Интернет: Couldn’t connect to server

имя и пароль веб-сервиса указываю ws, подскажите, куда копать?

скорее всего нет «интерната» для учетки, из под которой работает служба сервера 1С

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

Re: Ошибка при создании WSОпределения

Сообщение Дмитрий Калинин » 07 мар 2014, 07:38

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

Дмитрий Калинин
 
Сообщений: 2
Зарегистрирован: 04 мар 2014, 06:40


Вернуться в QueryTJ — Анализ долгих запросов

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

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

Вопрос → 
Ошибка при попытке синхронизации

Не удалось подключиться.
1. Проверьте настройки мобильного приложения. Убедитесь, что адрес, имя пользователя и пароль указаны правильно.
2. Проверьте настройки синхронизации в настольной программе.
3. Проверьте, что работает интернет-соединение.

Текст ошибки (для техподдержки):
Не удалось соединиться с приложением: {ОбщийМодуль.ОбменДаннымиПовтИсп.Модуль(19)}: Ошибка при вызове конструктора (WSОпределения)
по причине:
При создании описания сервиса произошла ошибка. http://192.168.0.10:4488/Money_19533/ws/MobileService?wsdl
по причине:
Ошибка работы с Интернет: Connect to  timed out

Настройки ПК-версии в приложенной картинке.

Посдскажите, с чем это может быть связано.

0



Кауров Вячеслав ( Кемерово)

19.09.2014 5:36

Забанво… Если раньше писал «Ошибка работы с Интернет: Connect to  timed out«, то теперь «Ошибка работы с Интернет: No route to host«

0



Зайцев Валерий (1С, Москва)

19.09.2014 14:48

Здравствуйте, Вячеслав.

Доступен ли компьютер, на котором установлена программа и веб-сервер с Вашего мобильного устройства?

Проверить это можно сделать с помощью любого браузера на мобильном устройстве: 

 наберите в браузере мобильного устройства адрес http://192.168.0.10:4488/ и, если все в порядке, на странице Вы должны увидеть сообщение веб-сервера «It works!».

Если указанное сообщение не увидели, значит настройки роутера, файерволла или антивируса запрещают обращение сдругих компьютеров к порту «4488». В «Инструкциях и подсказках» настройки синхронизации есть пример настройки роутера. Для настройки других защитных программ следует обратиться к документации на эти программы.

0



Sergey

20.09.2014 14:21

> Посдскажите, с чем это может быть связано.
Столкнулся с такой же проблемой.  Сообщение веб-сервера показывало «It works!», но синхронизация завершалась с такой же ошибкой как у Вас. Попробовал отключит файерфол ESET. Всё заработало как часы. В настройках файервола создал правило, указал порт. Думаю, что разработчики добавят в справку пункт по настройке не только роутера, но и файервола в антивирусе, чтоб избежать проблем.

0



Зайцев Валерий (1С, Москва)

22.09.2014 10:27

Спасибо, пожелание зарегистрировано.

0



Кауров Вячеслав ( Кемерово)

22.09.2014 18:50

У меня стоит free аваст.

Оно, вроде, не умеет блокировать трафик. Но даже с выключенными экранами ничего не выходит…

Продолжаю «танцы с бубном», научное «тыканье в небеса» и слепое гуглеье…

Как разберусь — отпишусь…

Кстати, на работе стоит «железный» ключь 1С. Там «1С: Деньги» запустися без пролем, но web-сервер (там почему-то программа предложила IIS) тоже номально не завелся. Говорит, что не может опублековать базу…

0



Зайцев Валерий (1С, Москва)

23.09.2014 9:37

Вячеслав Александрович, из Вашего сообщения не понятно, доступен ли веб-сервер с мобильного устройства?
> …наберите в браузере мобильного устройства адрес  192.168.0.10:4488/ »» и, если все в порядке, на странице Вы должны увидеть сообщение веб-сервера «It works!».

> У меня стоит free аваст.
> Оно, вроде, не умеет блокировать трафик.
Возможно у Вас работает брандмауэр Windows (http://windows.microsoft.com/ru-ru/windows/communicate-through-windows-firewall#1TC=windows-7). 

> но web-сервер (там почему-то программа предложила IIS) тоже номально не завелся. Говорит, что не может опублековать базу…
Пожалуйста, сообщите подробности на линию поддержки v8@1c.ru: какая операционная система? Установленные веб-серверы? Как именно публикуете базу? Какие сообщения получаете? и т.д.

0



Кауров Вячеслав ( Кемерово)

09.10.2014 4:18

После долгих и безуспешних попыток синхранизировать приложение дома, забил на это…

А всё дело, скорее всего, в роутере Dlink DIR-300.

В отличии от TPlink (который представлен в примере настрйки), это Dlink тупо не поддерживает переброску портов из LAN на LAN. Я нашел виртуальный сервер толко для проброски из WAN в LAN.

А может всё таки есть инструкция по настройки именно этого DIR-300?

Ведь именно его впаривают «бессплатно» все операторы интернет со словами: «Пока Вы с нами — роутер будет стоять у Вас!»

Пропустить

Расширенный поиск

  • Список форумов Сервисы gilev.ru APDEX — статистика длительности операций
  • Изменить размер шрифта
  • Для печати
  • На сайт Gilev.ru
  • FAQ
  • Регистрация
  • Вход

Ошибка при проверке веб-сервиса

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

Tема закрыта

Сообщений: 3
• Страница 1 из 1

Ошибка при проверке веб-сервиса

Сообщение solid_sky » 03 июн 2015, 12:20

Добрый день.

При проверке доступности веб-сервиса выходит ошибка —

При создании описания сервиса произошла ошибка.

https://ws:xxxxxxx@skynet.gilev.ru/apde … .1cws?wsdl

по причине:
Ошибка работы с Интернет: Не могу установить соединение.

Пробовал через браузер подключиться- все в порядке. Создал в сервере профиль безопасности и добавил адрес

https://skynet.gilev.ru/apdex/ws/ApdexValue.1cws?wsdl

+ протокол https, применил этот профиль для базы. Все равно выходит ошибка. Подскажите что может быть. Спасибо

solid_sky
 
Сообщений: 3
Зарегистрирован: 03 июн 2015, 12:16

Вернуться наверх


Re: Ошибка при проверке веб-сервиса

Сообщение Гилёв Вячеслав » 03 июн 2015, 17:25

Необходимо проверить если интернет для пользователя от имени которого запущена служба сервера 1С, на котором расположена исследуемая база, и есть доступ к сайту skynet.gilev.ru . И еще покажите скрин с настройками сервиса, посмотрим все ли верно указано…

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

Вернуться наверх


Re: Ошибка при проверке веб-сервиса

Сообщение solid_sky » 05 июн 2015, 08:55

Спасибо, помогло!

solid_sky
 
Сообщений: 3
Зарегистрирован: 03 июн 2015, 12:16

Вернуться наверх


Показать сообщения за:
Сортировать по:


Tема закрыта

Сообщений: 3
• Страница 1 из 1

Вернуться в APDEX — статистика длительности операций

Перейти:

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

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

  • Список форумов
  • Наша команда • Удалить cookies форума • Часовой пояс: UTC + 3 часа

Содержание статей: 1С:Предприятие 8. Веб-сервисы
Предыдущая статья: 1С:Предприятие 8. Веб-сервисы. Возвращаем массив

Хочу рассказать об ошибках, с которыми столкнулся при разработке веб-сервисов на 1С. Статью буду дополнять по мере получения опыта.

1
Это сообщение об ошибке при подключении к веб сервису из PHP.
[31-Mar-2013 05:32:02 UTC] PHP Fatal error:  SOAP-ERROR: Parsing WSDL: Couldn’t load from ‘http://test.ru/test/ws/WebServices?wsdl’ : failed to load external entity

Данное сообщение говорит лишь о недоступности веб-сервера, на котором опубликована база. В этом случае попробуйте вручную вызвать http://test.ru/test/ws/WebServices?wsdl и убедиться, что WSDL формируется. Если не формируется, значит либо веб-сервер выключен, либо база опубликована по другому адресу или порту, либо блокирует фаервол. Могут быть и другие причины.




2
02-Apr-2013 13:46:10 UTC] PHP Fatal error:  Uncaught SoapFault exception: [HTTP] Error Fetching http headers in /home/users/b/test/domains/test.ru/testDIR/test.php:169


Эта ошибка возникает если WSDL возвращается с ошибкой. Есть несколько причин для этой ошибки:

  1. Несогласованность пространств имен в конфигурации. Например в ws-операции тип возвращаемого значения не соответствует типу из XDTO. Это может возникнуть при сменен URI пространства имен пакета XDTO.
  2. Возникает если в PHP включить кеш WSDL. Кеш запоминает WSDL и при каждом вызове веб-операции не запрашивает его, но если вы поменяли веб-сервис, то произойдет ошибка. Вообще, при разработке кеш стоит отключить, а если уже все работает то для скорости лучше включить. Ускорение при отключенном кеше заметное. Для примера скажу, что создание объекта SoapClient с выключенным кешем занимает примерно 2 сек, а с включенным — за сотые доли секунды. Отключить можно так:
    ini_set("soap.wsdl_cache_enabled", 0);

    или

    $client = new SoapClient('http://somewhere.com/?wsdl', array('cache_wsdl' => 0));

3

Ошибка SOAP сервера: Неизвестная ошибка. bad allocation.

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

Многие из нас привыкли публиковать базу или веб сервис 1С нажатием нескольких кнопок.

Но не все из многих знают, что для этого необходимо запустить(от имени администратора!) конфигуратор 1С:Предприятие именно на той машине, где установлен веб сервер(а именно компонента веб-расширения 1С:Предприятия).

В случае, если веб-сервер и компонента веб-расширения 1С:Предприятия установлены на машину с ОС Linux  без графической оболочки,  то публикация через привычное окно конфигуратора становится невозможной.

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

О том, как осуществить публикацию базы можно почитать тут: Публикация 1С на Веб сервере Linux.

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

Итак, что делать, если не получается опубликовать веб-сервис 1С?

Список возможных ошибок:

1. Job for httpd.service failed because the control process exited with error code.

2. Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

3. Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

4. Не запускается 1С: Предприятие при подключении через веб сервер Linux. «Selinux policy enabled.»

5. Ошибка HTTP 404 Not found

6. Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Job for httpd.service failed because the control process exited with error code.

Полный текст ошибки:

Job for httpd.service failed because the control process exited with error code. See «systemctl status httpd.service» and «journalctl -xe» for details.

Описание ошибки:

После выполнения всех настроек файлов публикации базы или сервиса 1С:Предприятия. При попытке запустить веб-сервер — выдается ошибка и веб-сервер не запускается.

Данное сообщение говорит о том, что процесс был завершен  с ошибкой, более подробную информацию о которой можно получить в журнале. Как это сделать — описано далее.

Решение:

Необходимо проанализировать более подробное описание ошибки. Его можно получить следующим образом.

В результате выполнения команды будет выдано более подробное сообщение об ошибке.

Разбор, которых приведен в статье далее.

Ошибка веб-сервера Apache при публикации 1С «Syntax error on line…»

Полный текст ошибки:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: AH00526: Syntax error on line 6 of /etc/httpd/e1c/base.conf:

сен 16 11:41:54 1s-on-web-1 httpd[6596]: Invalid command ‘forceHandler’, perhaps misspelled or defined by a module not included in the server configuration

Описание ошибки:

Ошибка связана с ошибками или «опечатками» в файле настроек base.conf. Иными словами, в данном файле есть некорректные строки, которые новичку бывает сходу не так просто найти.

Решение:

Исправить ошибку в строке сообщения. В данном случае допущена опечатка в имени команды.

vim /etc/httpd/e1c/base.conf

Пример ошибочной строки. Команды forceHandler  — на самом деле не существует :

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   forceHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Исправим файл. Укажем корректное наименвоание команды — SetHandler:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

   AllowOverride All

   Options None

   Require all granted

   SetHandler 1c-application

   ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

Ошибка «Invalid command ‘ManagedApplicationDescriptor’»

Полный текст ошибки:

Начат процесс запуска юнита httpd.service.

сен 16 12:18:11 1s-on-web-1 httpd[9857]: AH00526: Syntax error on line 7 of /etc/httpd/e1c/base.conf:

сен 16 12:18:11 1s-on-web-1 httpd[9857]: Invalid command ‘ManagedApplicationDescriptor’, perhaps misspelled or defined by a module not included in the server configuration

сен 16 12:18:11 1s-on-web-1 systemd[1]: httpd.service: main process exited, code=exited, status=1/FAILURE

сен 16 12:18:11 1s-on-web-1 systemd[1]: Failed to start The Apache HTTP Server.

— Subject: Ошибка юнита httpd.service

Описание ошибки:

Ошибка связана с тем, что в файле httpd.conf отсутствует ссылка на модуль веб-расширения 1С:Предприятия, которая должна указываться в «LoadModule _1cws_module».

В этом можно убедиться выполнив команду.

cat /etc/httpd/conf/httpd.conf | grep wsap

Если результат пустой, то строка вида «/opt/1C/v8.3/x86_64/wsap24.so», отсутвтует  —  модуль не прописан.

Решение:

Отредактировать конфигурационный файл httpd.conf

vim /etc/httpd/conf/httpd.conf

Добавить строку:

LoadModule _1cws_module «/opt/1C/v8.3/x86_64/wsap24.so»

Не запускается 1С: Предприятие при подключении через веб сервер, Linux. «Selinux policy enabled.»

Полный текст ошибки:

cat /var/log/httpd/error_log

Описание проблемы:

При попытке запустить клиента 1С:Предприятие через веб-сервер (строка подключения вида: «ws=»http://1s-on-server/bast»;») —  сеанс не запускается.

Но при этом, таже самая база — запускается успешно при прямом подключении к серверу 1С:Предприятия (строка подключения вида Srvr=»1s-on-server»;Ref=»base»;).

Решение:

1. Убедиться, что selinux, действительно, работает.

Если видим Enforcing, значит переходим к следующему пункту.

2. Отключить selinux:

3. Проверить, что настройка выполнена.

Permissive – включен, но ничего не запрещает.

Enforcing – включен, работает, и запрещает.

Ошибка HTTP 404 Not found

<strong>Пример полного текста ошибки:</strong>

404 Error in Request. HTTP Status: 404 Not found

<img class=«wp-image-809» src=«https://1s-on.ru/wp-content/uploads/2020/12/post-802-image-3.jpeg» />

HTTP 404 Not found

The webpage cannot be found

Описание:

После публикации базы на сервере, при попытке перейти по веб-ссылке базы из браузера– выдается ошибка.

Проще говоря, браузер сообщает, что не нашел такой папки публикации на сервере.

Решение:

Ошибка часто связана с неправильным вводом имени базы/папки публикации.

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

Проверить имена публикации базы(выделено):

1. Конфигурационный файл *.conf:

vim /etc/httpd/e1c/base.conf

следующего содержания:

Alias «/base» «/var/www/e1c/base/»

<Directory «/var/www/e1c/base/»>

AllowOverride All

Options None

Require all granted

SetHandler 1c-application

ManagedApplicationDescriptor «/var/www/e1c/base/default.vrd»

</Directory>

2. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису.

Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса: 1s-on-1c-1/base/ws/ws_1s_on_1.1cws

Ошибка Service not found при обращении к веб-сервису 1С:Предприятия

Пример полного текста ошибки:

Описание:

При обращении к веб-сервису, после авторизации(если таковая требуется) – возникает ошибка, что сервис не найден. То есть публикация самой базы отвечает, но веб-сервиса нет или он не отвечает.

Ошибка часто связана с ошибками в именах самого веб-сервиса или его ссылки.

Решение:

Проверить имена веб-сервисов и ссылок на них.

    1. Конфигурационный файл публикации базы *.vrd

vim /var/www/e1c/base/default.vrd

следующего содержания:

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

<?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=»/base»

ib=»Srvr=1s-on-1c-1; Ref=base»>

<ws>

<point name=»ws_1s_on_1″

alias=»ws_1s_on_1.1cws»

enable=»true»/>

<point name=»ws_1s_on_2″

alias=»ws_1s_on_2.1cws»

enable=»true»/>

</ws>

</point>

point name – имя сервиса в конфигураторе;

alias – это имя ссылки, по которой будем обращаться к веб-сервису. Именно это имя необходимо вводить в браузер при проверке работы веб-сервиса.

В нашем случае веб-сервиса ws_1s_on_3.1cws нет в файле.

Понравилась статья? Поделить с друзьями:
  • 1с ошибка при отображении типов
  • 1с ошибка при создании каталога указан недопустимый путь
  • 1с ошибка при создании информационной базы на сервере
  • 1с ошибка при объект не найден
  • 1с ошибка при настройке синхронизации