1с не подключается к сайту

Обновлено: 04.07.2024

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

Конфиг

- 1С УТ 10.3.6.8 (1С Предприятие 8.3) с модификациями
- стандартный модуль обмена с WEB сайтом
- сайт на 1С Битрикс (все обновления установлены, тестирование показывает все зеленые галочки, лицензия Бизнес)
- хостинг Бегет

Был настроен обмен между 1С и сайтом. Уже три недели как 1с без проблем соединялась с сайтом и проводила обмен (в самом обмене были ошибки, но главное - 1с успешно соединялась с сайтом). Вчера произошла неожиданная ситуация - 1С просто перестала соединяться с сайтом. Пишет "Не удалось установить соединение с сервером. Авторизация пользователя не выполнена. Не удалось получить данные с сервера. Проверьте правильность адреса сервера, порт, имя пользователя, пароль, а также настройки подключения к Интернет." Никаких изменений на сайте не вносилось. В 1С никакие изменения, которые касаются модуля обмена, не вносились. Путь, имя и пароль точно правильные - раз 10 перепроверяли. В то же время 1С успешно обменивается данными с другим сайтом.

На моем компьютере все работает, на их компьютере с тем же самым конфигом все не работает (точнее, перестало работать вчера - две недели до этого все подключалось). То есть как мы выяснили, проблема не в сайте, не в хостинге, не в 1ске. В чем же тогда проблема? Почему именно к моему сайту 1ска заказчика подключиться не может, а к другому сайту она подключается успешно? И почему их конфигурация 1ски на моем компьютере успешно подключается к нашему сайту? Сам бы не поверил в такую ситуацию, если бы лично все это не наблюдал. Если нужны пруфы - готов предоставить все скриншоты. Системный администратор заказчика не понимает, в чем проблема. 1сник закачика тоже.

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

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

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

В базе-источнике требуется создать объект конфигурации: WEB-сервисы

В базе приемнике создаем объект конфигурации: WS-ссылки

WS-ссылка содержит описание WEB-сервиса из базы-источника. Этот объект конфигурации не имеет программного кода и представляет собой только модель данных и описание операций созданного в базе-источнике WEB-сервиса.

Пример описания WS-ссылки (рис.1)


Рис. 1 – описание WS-ссылки

Важным параметром является то, что данную ссылку мы можем открыть в браузере и посмотреть текстовое описание WEB-сервиса (рис.2). Если в браузере WEB-сервис не открывается, то и созданная WS-ссылка работать не будет


Рис. 2 – описание WEB-сервиса

Если мы откроем WS-ссылку, которая корректно загружена, то увидим вот такую картину (рис.3)


Пакеты, которые автоматически подключаются (ветка пакеты)

Сам WEB-сервис, к которому идет обращение и его операции, которые описаны в базе-источнике.

Операции WEB-сервиса описываются функциями встроенного языка. То есть – любая операция веб-сервиса должна возвратить какое-либо значение. Тип возвращаемого значения можно указать в описании операции WEB_сервиса (рис 4.2).

Типы возвращаемых значений мы указываем в свойстве непосредственно WEB-сервиса «Пакеты XDTO». Механизм XDTO позволяет определять объекты переноса данных, которые могут образовывать строгую иерархию и могут сериализоваться в XML. Эти свойства позволили использовать объекты XDTO в качестве параметров и возвращаемых значений операций web-сервисов.


Рис. 4.1 – описание WEB-сервиса


Рис. 4.2 – описание операции WEB-сервиса

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

Описание вызова WEB-сервиса (Листинг 1)

Указать сертификат ssl

Организовать обращение к WS-ссылке с использованием метода: СоздатьWSПрокси – в методе прописывается

URL-пространство имен, (*) – описывается в Web-сервисе (см. рис 4.1),

имя сервиса (*)– описывается в Web-сервисе (см. рис 4.1),

имя порта (*) – описывается в WS-ссылке, см

использование аутентификации WINDOWS

Описание создания защищенного ssl-соединения (синтаксис-помощник 1С; листинг 2)

Листинг 2 - Возможные описания объекта защищенного соединения OpenSSL (1С помощник)

Объект защищенного соединения OpenSSL.
Используемый клиентский сертификат должен быть самоподписанным или проходить валидацию через сертификаты удостоверяющих центров, заданные в свойстве "СертификатыУдостоверяющихЦентров"

Тонкий клиент, мобильный клиент, сервер, толстый клиент, внешнее соединение, мобильное приложение (клиент), мобильное приложение (сервер), мобильный автономный сервер.

Листинг 2 – описание возможных описаний объекта защищенного соединения OpenSSL

Выбор корректного описания зависит напрямую от того, с каким сертификатом работает организация.

Если все корректно, то в переменную «ответ» (листинг 3) вернется значение из базы-источника. Так же тут указываем сразу параметры, которые требуются для передачи в операцию WEB-сервиса

Листинг 3 – Строка обращения к операции WEB-сервиса

Обрабатываем полученные результаты. И тут может быть два варианта.

Мы получили сразу объект того типа, который указывали в выходных параметрах. Нам его нужно просто обработать средствами встроенного языка – извлечь из него требуемые данные (если это таблица значений, структура или хранилище значений, как в нашем случае).

WEB-сервер нам возвращает закодированный ответ в виде строки BASE64. Этот случай опишем подробнее.

Если WEB-сервер нам возвратил закодированную строчку, то требуется выполнить преобразование ее в объекты 1С. Для этого нам следует сделать несколько преобразований:

BASE64 в двоичные данные (используем функцию встроенного языка 1С:
ДвоичныеДанные = Base64Значение(Ответ); (где ответ – это значение, которое возвращено WEB-сервером)

Используем фабрику XDTO для представления двоичных данных в объекте 1С (листинг 4)

Фабрика типов XDTO: Содержит определения всех типов, позволяет осуществлять чтения/запись данных XDTO в XML и JSON (материал Синтаксис-помощника).

Листинг 4 – использование фабрики XDTO для преобразования двоичных данных в объект 1С -

Создаем значение XDTO по лексическому представлению значения. Лексическое представление значения должно удовлетворять ограничениям, определяемым данным типом значения XDTO. Тип нашего XDTO (параметр 1 – является обязательным) должен совпадать с типом выходного параметра функции WEB-сервиса (см. Рис 4.2). Описываем пространство имен (URIПространстваИмен (NamespaceURI)) и БазовыйТип (BaseType). Вторым параметром в функцию подставляем наши двоичные данные (без преобразования их в объекты). Если все выполнено корректно, то наше выходное значение из WEB-сервиса будет содержаться в реквизите: телоXDTO.Значение, того типа, который мы указали в выходном параметре ("ValueStorage" – хранилище значения).

Работа непосредственно с получением данных через WEB-сервис на этом заканчивается.

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

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

Так же этот вариант применим при необходимости получать данные из одной базы в другую (пример – получение остатка бюджета из одной базы (источник) при заведении нового счета на оплату (в сторонней базе)).

При интеграции с порталом и использовании услуг портала возможно возникновение проблем или ошибок, например:

У пользователя не работает услуга портала.

Подписки перестали отправляться в портал.

Ниже описаны действия при возникновении других ошибок.

Содержание

1. Общие действия

Проверить актуальность расширения по интеграции с порталом ИТС

Проверить актуальность расширения по интеграции с порталом ИТС для менеджера сервиса: команды меню Все функции — Управление расширениями конфигурации , расширение ИнтеграцияСПорталомИТС .

Проверить основные настройки интеграции с порталом в менеджере сервиса

Проверить основные настройки интеграции с порталом в менеджере сервиса: команды меню Интеграция — Учетные системы , учетная система Портал 1С:ИТС .


2. Если у пользователя не работают услуги портала.

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

Проверить, отправлены ли портал данные абонента, пользователя абонента и подписки

Нужно проверить, отправлены ли портал следующие данные:

Статус интеграции показывается в справочнике Абоненты (команда меню Обслуживание — Абоненты):


И в форме свойств абонента (пункт меню формы Интеграция ):


Статус интеграции показывается в справочнике Пользователи абонентов (команда меню Обслуживание — Пользователи абонентов):


И в форме свойств абонента (пункт меню формы Пользователи абонента ):


Статус интеграции показывается в форме списка Подписки (команда меню Управление тарифами — Подписки):


И в форме свойств подписки (пункт меню формы Интеграция ):


Если какой либо из объектов не интегрирован и вместо значка указан значок , нужно проверить наличие ошибок в логе отправки. Лог отправки расположен в нижней части формы элемента после выбора пункта меню формы Интеграция :


Проверить, заполнен ли реквизит «Идентификатор» у обслуживающей организации

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

Для этого нужно открыть карточку обслужи вающей организации в справочнике Абоненты :


В поле Идентификатор нужно указать код партнера. Например, если Код партнера 000987-77, то указываем 000987, или 987

Открыть форму свойств активной подписки клиента и проверить наличие нужной услуги на вкладке Услуги :


Если услуги нет, возможно в тарифе указан некорректный тариф поставщика Портала 1С:ИТС.

Симптомы проблемы


В списке Подписки у новых подписок не появляются значки интеграции, либо долго висят значки «часиков» .


В списке подписок не отправленные в портал подписки отображаются знаком .

Решение

Если пользователь абонента, который вызывает услугу, не отправлен на портал

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


Причины неотправки абонентов в основном технические, возможны разные ситуации:

Область данных: 38 253

3. Расхождение данных портала и менеджера сервиса

Расхождение данных Портала 1С:ИТС и менеджера сервиса. Например: на портале на 10 подписок больше чем в менеджере сервиса.

Чтобы объект также был удалён на портале, достаточно поставить пометку на удаление на соответствующий объект Подписки, Абонента или Пользователя абонента.

4. Подписки перестали отправляться в портал

В списке подписок у новых подписок не появляются значки интеграции, либо долго висят значки «часиков»

5. Устранение причин непринятия подписок порталом

  1. Вывести карточку свойств подписки и выбрать команду меню Интеграция.
  2. Посмотреть описание состояния интеграции и лог отправки.

Открыть описание объекта к отправке, показанное в списке Данные к отправке:


По этим сведениям можно понять причину, после чего нужно эту причину устранить. Возможные причины делятся на 2 типа:

  1. Бизнес-ошибка в подписке
  2. Техническая ошибка на Портале 1С:ИТС

5.1. Бизнес-ошибки

Бизнес-ошибки нужно устранять силами партнера, указав ее причины.

На каждый запрос идет проверка по логину и паролю от конкретного экземпляра сервиса Фреш.

Также выполняются проверки заполнения полей. Описание проверок приведены в п.6 документа Rest API Портала 1С:ИТС Fresh-Integration

Ниже приведены примеры бизнес-ошибок.

Could not read JSON document: Can not deserialize value

Пример ошибки

Решение

У обслуживающей организации указан код партнера отличный от числа. Нужно чтобы у обслуживающей организации код партнера был числом.

Код партнера указывается в поле Идентификатор без последних цифр после "-". Например, если Код партнера 000987-123, то указываем 000987, или 987 :


Пример ошибки

Решение

Тарифы поставщиков услуг доступны с помощью команды меню Управление тарифами — Тарифы поставщиков услуг или по ссылке e1cib/list/Справочник.ТарифыПоставщиковУслуг.


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

Пример ошибки

Решение

Партнер или оператор сервиса должен создать новую подписку. Эту подписку нужно вернуть в исходное состояние или пометить на удаление, если она не актуальна.

5.2. Технические ошибки

Технические ошибки нужно устранять самостоятельно, либо, если ошибка не устраняется, нужно связаться с отделом разработки портала 1С:ИТС.

Пример ошибки

Решение




Здесь будут доступны те же кнопки и . Их можно использовать следующим образом:

  • Если в списке выделен один элемент, то операция будет выполнена для всех элементов списка.
  • Если в списке выделено несколько элементов, то операция будет выполнена только для выделенных элементов.

Также в этом списке можно открывать отдельные объекты к отправке и выполнять их отправку из формы свойств объекта.

Симптомы проблемы

Решение

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

    В инфраструктуре сервиса Портала 1С:ИТС идут какие-то нагрузочные тесты.

Код партнера должен быть из существующих кодов партнера.

Нужно установить обслуживающей организации существующий код партнера, например 987 или 456.

Описание проблемы

В платформе 8.3.10 была переработана логика валидации доверенных сертификатов.

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

В случае некорректно заданных настроек доступа в Internet после перехода на 8.3.10 с более ранних версий платформы могут возникать ошибки :

а) при обращении к веб-сервисам или получении определения веб-сервиса по причине «ошибка работы с Интернет: Удаленный узел не прошел проверку»


б) при попытке выполнить OpenID-авторизацию вида «Ошибка подключения к OpenID провайдеру», сопровождающиеся появлением в технологическом журнале событий EXCP вида:


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

Диагностика проблемы

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

Целенаправленно только сайты, предназначенные для валидации сертификатов, никто не блокирует, поэтому скорее всего у пользователя не доступен ни один сайт (можно легко проверить, запустив браузер от имени данного пользователя – зажать Shift, правой кнопкой мыши на ярлык браузера, «Запустить от имени другого пользователя»). Однако расследование необходимо проводить именно на том примере, на котором ошибка воспроизводится.

Наиболее распространенные причины:

  • Доступ к ресурсу заблокирован через файл hosts
  • Нет доступа к ресурсу из-за использования прокси-сервера
  • Ресурс заблокирован firewall
  • Ресурс блокирован антивирусом

Для подробной диагностики ошибки в случае, если причина оказалась нетривиальной, рекомендуется настроить сбор дополнительных event-логов Windows, согласно описанию, приведенному в статье (раздел Use CAPI2 logging)

Решение проблемы

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

Про настройки прокси и hosts опишем подробнее.

Прокси сервер

1) Запустить Internet Explorer от имени пользователя, под которым работает rphost

2) В меню Свойства браузера (Свойства обозревателя) на закладке Подключения нажать кнопку Настройка сети

3) Если в настройках указано использование прокси-сервера, которая не предусмотрена политикой безопасности (кто-то когда-то установил и забыл) – отключить использование прокси-сервера, сняв соответствующий флаг


4) Если использование прокси действительно предусмотрено, нужно разрешить прямое обращение к ресурсам, на которые пытается обратиться платформа для валидации сертификата, нажав кнопку Дополнительно и указав данный ресурс в качестве исключения для прокси-сервера


Файл hosts

Доступ к некоторым сайтам может блокироваться через файл hosts. Лежит здесь:

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