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

Обновлено: 26.04.2024

Стало любопытно что за сайт и какое отношение он имеет к 1С?

Собственно почему я полез туда, есть такая функция в глобальнике

Функция ЕстьДоступКВебCервису()
Состояние(НСтр("ru = 'Ожидание ответа с веб-сервера Web-ИТС'"));
ИмяWSОпределения = ИнтернетПоддержкаПользователейКлиентСервер.ИмяWSОпределения();
ИмяURIСервиса = ИнтернетПоддержкаПользователейКлиентСервер.ИмяURIСервиса();
ОпределениеWS = Новый WSОпределения(ИмяWSОпределения);
Сервис = ОпределениеWS.Сервисы.Получить(0);
ИмяСервиса = Сервис.Имя;
ТочкаПодключения = Сервис.ТочкиПодключения.Получить(0).Имя;
КлиентWS = Новый WSПрокси(ОпределениеWS, ИмяURIСервиса, ИмяСервиса, ТочкаПодключения);
// Выполнение метода "isReady" WEB-Сервиса.
ОтветСервера = КлиентWS.isReady();

И вот тут он выпадает в исключения и
ОткрытьФорму("ОбщаяФорма.ИнтернетПоддержкаПользователейОшибкаДоступаКИнтернету");

Хотя инет есть и например страницка конфигурации из самой программы открывается

Вот и понять хочу в чём проблема и кто виноват

Т.е. когда я пытаюсь получить уникальный идентификатор он мне выдает что нет инете

История особенно замечательна.

(11) И на сайте я был, откуда я по твоему телефон узнал бы?

(15) Ты не поверишь, но в типовой 1С они оттуда пытаются получить "уникальный идентификатор" для обмена

(19) ну несовсем оттуда

видать походу сервак у них лежал, сейчас заработало

Правда счастье так и не наступило. Теперь по кнопки получить он видит интернет, просит ввести рег номер, . и все после этого ничего не происходит, ни ошибок ни присвоение номера. вообще ничего

хотя в ЖР есть запись

authUrlPassword
bp
IDCertificateED
identifierTaxcomED
IDOrganizationED
login
password
regnumber
regNumForTaxcom
session_id
taxcomUserId
taxcomUserLogin
taxcomUserRegnumbers
userId
variantBPED

ну и соответственно различные значения

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

У 4-х стоит область видимости taxcomStart
IDCertificateED
identifierTaxcomED
IDOrganizationED
variantBPED

СтруктураСтартовыхПараметровЭДО = Новый Структура;
СтруктураСтартовыхПараметровЭДО.Вставить("IDCertificateED" , ПоместитьВоВременноеХранилище(СертификатЭЦП));
СтруктураСтартовыхПараметровЭДО.Вставить("IDOrganizationED" , ПоместитьВоВременноеХранилище(Организация));
СтруктураСтартовыхПараметровЭДО.Вставить("variantBPED" , ПоместитьВоВременноеХранилище(ВариантБизнесПроцесса));
СтруктураСтартовыхПараметровЭДО.Вставить("identifierTaxcomED", ПоместитьВоВременноеХранилище(ИдентификаторОрганизации));

Процедура СохранитьСтартовыеПараметры(СтруктураСтартовыхПараметров, ОбластьВидимости) Экспорт

Для каждого ЭлементСтруктуры Из СтруктураСтартовыхПараметров Цикл

Запись = РегистрыСведений.ПараметрыИнтернетПоддержкиПользователей.СоздатьМенеджерЗаписи();
Запись.Имя = ЭлементСтруктуры.Ключ;
Запись.Значение = ЗначениеВСтрокуВнутр(ПолучитьИзВременногоХранилища(ЭлементСтруктуры.Значение));
Запись.Пользователь = "00000000-0000-0000-0000-000000000000";
Запись.ОбластьВидимости = ОбластьВидимости;
Запись.Записать();

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

Создал обработку из которой вызываю web сервис.
На платформе 8.3.8 работает.
На платформе 8.3.5 не запускается. При попытке выполнить(и даже открыть обработку в режиме предприятия) выводится ошибка "Конструктор не найден" на строку Прокси = Новый WSПрокси(. );

Что можно сделать?

Причину нашёл в конструкторе было много параметров указано. При чём в 8.3.8 с этими параметрами работает. А в 8.3.5 нет.

WSПрокси.По умолчанию
WSПрокси (WSProxy)
На основании определения веб-сервиса
Синтаксис:

Тип: WSОпределения.
Определение веб-сервисов, на основе которого создается данный прокси.
(обязательный)

Тип: Строка.
URI пространства имен веб-сервиса, с которым связывается данный прокси.
(обязательный)

Тип: Строка.
Имя веб-сервиса, с которым связывается данный прокси.
(обязательный)

Тип: Строка.
Имя точки подключения веб-сервиса, с которой связывается данный прокси.
(необязательный)

Тип: Число.
Таймаут соединения и операций, осуществляемых объектом WSПрокси, в секундах. 0 - не устанавливать таймаут.
Значение по умолчанию: 0.
(необязательный)

Создает прокси на основе определения веб-сервиса и связывает его с точкой подключения веб-сервиса.
--------------------------------------------------------------------------------

WSПрокси.По умолчанию
WSПрокси (WSProxy)
На основании определения веб-сервиса
Синтаксис:

Тип: WSОпределения.
Определение веб-сервисов, на основе которого создается данный прокси.
(обязательный)

Тип: Строка.
URI пространства имен веб-сервиса, с которым связывается данный прокси.
(обязательный)

Тип: Строка.
Имя веб-сервиса, с которым связывается данный прокси.
(обязательный)

Тип: Строка.
Имя точки подключения веб-сервиса, с которой связывается данный прокси.
(необязательный)

Тип: Число.
Таймаут соединения и операций, осуществляемых объектом WSПрокси, в секундах. 0 - не устанавливать таймаут.
Значение по умолчанию: 0.
(необязательный)

Тип: Строка.
Позволяет указать фактический адрес сервиса.
Если параметр не задан или задана пустая строка, то адрес сервиса выбирается из Местоположение.
Значение по умолчанию: Неопределено.
(необязательный)

Тип: Булево.
Включает использование авторизации NTLM или Negotiate на сервере.
Значение по умолчанию: Ложь.
Описание:

Создает прокси на основе определения веб-сервиса и связывает его с точкой подключения веб-сервиса.
--------------------------------------------------------------------------------

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

Далее оздал обработку и привзал к событию нажтия кнопки вышеуказанную функцию.
Ввылетает ошибка:
: Ошибка при вызове метода контекста (Obmen)
РезультатОбмена = ПроксиСервер.Obmen();
по причине:
Ошибка вызова операции сервиса: :WebService:Obmen()
по причине:
Ошибка SOAP сервера: Неизвестная ошибка. : Значение не является значением объектного типа (Добавить)
по причине:
: Значение не является значением объектного типа (Добавить)

Что не хватает? Как реализовать обратный обмен из сайта в 1С?? Нужно ли создвать специальную web-обработку для этих целей на языке PHP?

(3) Manticor, проверьте отладчиком, правильно ли у вас заполняются свойства "Код" и "Номенклатура"в строке

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

КонецПроцедуры // ()
обмен уже приводил выше. Как отладку включить?))

(7) Manticor, а обработка вызова Web-Сервиса у вас расположена в той же базе, где и сам Web-Сервис что-ли?

(9) Manticor, а что бы запустить отладчик, нужно в каталоге публикации вашего сервиса на Apache открыть файл default.vrd и перед строкой


Затем в конфигураторе, в меню "Отладка" > "Подключение" > "Автоматическое подключение" установить флажок напротив пункта "Web-Сервисы". После этого можно ставить точку останова в вашей процедуре Obmen и вызывать сервис обработкой из другой базы.
Только учтите, что редактировать файл default.vrd нужно уже после публикации Web-Сервиса, т.к. при публикации он заменяется на создаваемый Apache по умолчанию.

(11) VBod, (10) VBod, сделал все как Вы и сказали, создал чистую базу, туда перенес обработку.
Единтсвенное - убрал аутентификацию, поскольку вроде с ней не работает).
В итоге код такой:

Но зато заработал после добавлени функции отладки первоначальный код - отладчик выполняет функцию obmen, однако после вызова выводится ошибка:

(12) Manticor, как-то странно, как у вас мог заработать отладчик, если на строке получения прокси, пишет что сервис не найден?
Можете показать, что у вас в настройках публикации на веб-сервере и на закладках "Операции" и "Прочее" в настройках самого веб-сервиса?

(14) Manticor, в веб-сервисе на закладке "Прочее" в "URI пространства имен" установите значение "http://www.sample-package.org".
И в коде у вас должно быть так:

(15) VBod, попробовал сделать так. Поставил аутентификацию - также как и было.

(17) VBod, спасибо большое Вам, вроде без ошибок работает, тоесть сейчас при выполнении РезультатыИмпорта имеет такие данные(скрин приложил).
Что еще нужно сделать(добавить) для полноценной синхронизации контрагентов между 1С и сайтом и наоборот??

Сейчас на выходе у нас лишь объект XDTO.

(18) Manticor, ну теперь доделывайте передачу остальных реквизитов, которые вам нужны и делайте на сайте вызов этого веб-сервиса. Неплохо бы сделать, что бы в ответ веб-сервис возвращал данные с подтверждением удачной загрузки или ошибку в случае неудачной, что позволит в случае ошибки отправлять данные повторно. Продумайте предварительную проверку (перед загрузкой), существования контрагента, это позволит избежать дублей. Затем пишите веб-сервис на сайте, для передачи контрагентов из 1С на сайт. Плюс читайте (5) и (6).


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

(1) Manticor, а вот на сайте уже нужно будет разработать еще один Web-Сервис на PHP, который будет создавать контрагентов. Затем при создании контрагента в 1С, нужно будет вызвать этот Web-Сервис и в параметрах передавать ему данные нового контрагента. Только не забудьте учесть, что в 1С, контрагент может быть как создан, так и удален или его данные могут быть изменены, поэтому нужно учесть возможность удаления и изменения контрагентов на сайте, если они изменяются или удаляются в 1С.

Лучше создайте пустую базу и там разместите обработку вызывающую ваш Web-Сервис. И вызывайте его лучше не через статическую WS-Ссылку, а динамически:

&НаСервере
Процедура ИмпортВебСервис()

Определения = Новый WSОпределения("http://109.195.230.156/test/ws/WebService?wsdl");
Прокси = Новый WSПрокси(Определения, "http://www.my.org", "WebService", "WebServiceSoap");
РезультатыИмпорта = Прокси.Obmen();
КонецПроцедуры

При исполнении получаю:Метод объекта не обнаружен (Obmen)
На сервисе операция obmen есть


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



Предлагаемая разработка предоставляет программистам 1С функцию склонения по падежам слов и словосочетаний на русском и украинском языках, а также функцию формирования прописи чисел в заданном падеже. Программа умеет склонять фамилии, имена и отчества, а также должности, названия отделов и юридических лиц (на украинском пока только ФИО). Указание пола не требуется. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому определяется пол лица. Алгоритм демонстрирует высокое качество склонения, а для случаев, когда программа все же ошибается, предусмотрен сервис оперативного исправления ошибок. Программа реализована в виде веб-сервиса, доступного бесплатно всем желающим (до 1000 запросов в сутки). Для вызова функции склонения из 1С 8.2 достаточно 3 строчек кода, при этом не нужно включать в конфигурацию никаких дополнительных DLL. Пример обработки на языке 1С прилагается.

Реализуемые функции

Например, на входе:

ведущий инженер-программист III категории

И. ведущий инженер-программист III категории ведущие инженеры-программисты III категории
Р. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Д. ведущему инженеру-программисту III категории ведущим инженерам-программистам III категории
В. ведущего инженера-программиста III категории ведущих инженеров-программистов III категории
Т. ведущим инженером-программистом III категории ведущими инженерами-программистами III категории
П. о ведущем инженере-программисте III категории о ведущих инженерах-программистах III категории
Род: мужской

Число поддерживаемых типов слово сочетаний не ограничено фамилиями и должностями. Программа умеет склонять также названия подразделений, юридических лиц, географические названия и многое другое. Высокое качество склонения обеспечивается использованием словарей, в частности, «Словаря имен собственных» Ф.Л. Агеенко на 38 000 единиц. За 9 лет работы над «Морфером» было составлено более 27 000 примеров склонения для русского и более 11 000 для украинского языка. База примеров постоянно пополняется и используется для контроля качества продукта.

Веб-сервис также реализует функцию прописи чисел и денежных сумм в произвольном падеже, позволяющую формировать такие фразы как: «в течение 7 (Семи) календарных дней» («21 календарного дня»), «в размере 1000 (Одной тысячи) рублей» («десяти тысяч рублей») и т.п. Склонение единицы измерения также осуществляется автоматически. Нет необходимости указывать заранее все падежные формы ("рубль", "рубля", "рублей").

Быстрый старт: склонение должности

Программа для склонения должности будет выглядеть так:

Для украинского языка функция склонения называется СклонятьУкраинский:

Украинская версия пока лучше всего справляется с фамилиями, именами и отчествами. Работа над другими типами словосочетаний ведется.

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

На данный момент доступны след. признаки: name, feminine, masculine, neuter, animate, inanimate, common, plural.

Функция построения прописи числа в любом падеже

Функция ПрописьРусский (ПрописьУкраинский) решает две родственные задачи: получение прописи числа (тысяча сто двадцать пять) и согласование единицы измерения с предшествующим числом (1 попугай, 2 попугая, 5 попугаев). Пример:

Функция принимает два аргумента:

n – целое положительное число.

unit – единица измерения – слово или словосочетание в именительном падеже единственного числа: «рубль», «доллар США», «календарный день», «новое письмо» и т.п. Если слово употребляется только во множественном числе, то указывается форма именительного падежа множественного числа: «сутки», «брюки», «ножницы».

Результат, возвращаемый функцией Прописьрусский, содержит два набора падежных форм: один для числа (n), другой для единицы измерения (unit). Комбинируя соответствующие падежные формы n и unit, можно получить вывод «суммы прописью» на любой вкус:

Комбинировать имеет смысл только соответствующие падежные формы n и unit – именительный с именительным, родительный с родительным и т.д. Например, для получения фразы "в размере N рублей (долларов, евро. )", берем родительный падеж (Р): в размере + двухсот тридцати пяти + рублей.

Склонение прилагательных по родам

Функция СклонятьПрилагательноеПоРодам склоняет данное ей прилагательное, преобразуя его из мужского рода в женский, средний и во множественное число:

Авторизация

Для получения доступа к тегам род, откуда, куда, где, а так же снять ограничение на кол-во запросов в сутки, нужно купить подписку на сайте Морфер.Авторизация("ваш токен");

Обработка ошибок

В данном случае ошибка возникла из-за того, что склоняемая строка не содержит ни одного русского слова. Другой возможный случай – когда склоняемая строка содержит количественное числительное («тридцать три коровы»). Такие словосочетания программа не обрабатывает, выдается ошибка.

Совместимость и устранение неполадок

Модуль выпускается в двух вариантах для 8.3.16 и 8.2. Версии отличаются только тем, что версия 8.3.16 использует встроенный десериализатор JSON.

Оперативное исправление ошибок склонения

Склонение как языковой феномен изобилует неоднозначностями, особенно в области имен собственных. В городе Москва или в городе Москве? В республике Корея или в республике Корее? В Тушино или в Тушине? Обладатели «диковинных» фамилий часто не любят, чтобы их склоняли. Скажем, если у человека фамилия Груздь, он будет требовать, чтобы его фамилию не склоняли, часто вопреки правилам русского языка и всеобщему мнению. Но если он ваш начальник, то неизвестно еще, кто останется Груздём, если вы позволите себе просклонять его в договоре.

Не секрет, что алгоритм автоматического склонения тоже может ошибаться – не знать какого-либо слова или запутаться в сложной синтаксической структуре. Что делать, если машина склоняет не так, как надо, а документ должен быть на столе у начальника через 10 минут? Хорошо, если система позволяет вручную исправлять документ после его выдачи. Но исправлять фамилию начальника в каждом приказе тоже не дело. Традиционное решение этой проблемы (если руки дойдут до его реализации) – хранение падежных форм в таблице-справочнике, которая заполняется вручную.

Установка веб-сервиса в вашей локальной сети

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

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

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

Здесь comp001 – это сетевое имя компьютера, где установлен веб-сервис. Во второй строчке изменять ничего не нужно.

* Количество плюсов и минусов дано на момент публикации.

В «Морфере» учтены многие пожелания к системам подобного рода, а именно:

Кроме того, отличительными особенностями «Морфера» являются:

  1. Простой API: склонение всех типов словосочетаний производится одной функцией. Нет необходимости указывать тип словосочетания (ФИО, должность, подразделение. )
  2. Не требуется указание пола. Наоборот, программа автоматически определяет и выдает грамматический род словосочетания, по которому однозначно определяется пол лица.
  3. Высокое качество склонения, достигаемое использованием комбинированного подхода – алгоритмы для кодирования правил и словари для учета исключений. «Морфер» вобрал в себя несколько многотысячных словарей, годы кропотливой работы, учета замечаний и пожеланий пользователей.

Жду новых ваших пожеланий и замечаний. Именно они мотивируют меня развивать продукт дальше.

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

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

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

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

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

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

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

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

Загрузка cacert.pem

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

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

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

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

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

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

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

Читайте также: