Содержание:
1. Проверка интеграции на ошибки
2. Корректность отправки сообщений в конфигурации системы 1С: Шина
1. Проверка интеграции на ошибки
Чтобы проанализировать наличие ошибок при проведении процесса интеграции «1С: Шина» с иными программными продуктами системы 1С, необходимо следовать такому плану:
1. Провести проверку активности и самого приложения, и сервера «1С: Шина»;
2. Выполнить требуемые настройки для технологического журнала 1С;
3. При необходимости, скорректировать настройки того, как подключена «1С: Шина» к основной базе данных;
4. Просмотреть фоновые задачи, которые влияют на интеграционный процесс;
5. При наличии неполадки, сделать её зону локальной и выявить то, на каком узле возникла проблема;
6. Проанализировать журнал системы «1С: Шина» и технологический журнал 1С.
2. Корректность отправки сообщений в конфигурации системы 1С: Шина
Работоспособность интеграции программного продукта «1С: Шина» с другими системами 1С зависит от получения и отправки сообщений из главной базы данных в «1С: Шина».
Чтобы сверить то, насколько интеграция является работоспособной и, при необходимости, устранить неполадки по отправке и принятию сообщений, необходимо следовать такому алгоритму:
1. Узнать активен ли сервер системы «1С: Шина». Для этого, нужно провести к нему обращение через интерфейс HTTP. В таком случае, в браузере нужно набрать следующий программный код:
«
https:// IP-адрес сервера "1С: Шины":порт сервера
"1С: Шины"/maintenance/server/v1/heartbeat»
Если с сервером всё в порядке, то появится такой текст, как показано далее:
2. Следующий шаг – настройка технологического журнала, который сверяет корректность интеграции. Такая настройка требуется для событий SINTEG и EXCP, ниже можно увидеть пример логов технологического журнала 1С:
«
<?xml version="1.0"?>
http://v8.1c.ru/v8/tech-log">
<dump location="C:\Dumps\" create="1" type="3" externaldump="1"/>
<log location="C:\Logs\SERVER\ESB" history="24">
<event>
<eq property="name" value="EXCP"/>
</event>
<event>
<eq property="name" value="SINTEG"/>
</event>
<property name="all"/>
</log>
</config>»
Внутри технологического журнала 1С содержатся исключения, они могут появиться во время процессов по обработке очередей – за это отвечает событие EXCP. А также в этом журнале происходит оформление протоколов по работоспособности – за это отвечает событие SINTEG.
3. Далее, требуется сверить то, как настроено подключение между конфигурацией системы 1С и программным продуктом 1С: Шина. Для этого, переходим в режим «1С: Предприятие» и кликаем по «Функции технического специалиста», после чего, выбираем «Управление сервисами интеграции 1С». Настройки подключения должны быть корректными и должна быть установлена «галочка» около строки об интеграционном сервисе, как продемонстрировано на примере далее:
Настройки сервиса интеграции 1С
Если сведения некорректны, то попытка подключения завершится возникновением ошибки. Чтобы узнать к какому из интеграционных сервисов принадлежит данная ошибка – нужно посмотреть на текст-исключение, который представлен ниже:
«
19:19.215009-0,EXCP,1,process=rphost,p:processName=demo_erp,OSThread=8596,Exception=<ИД исключения>,Descr=<Описание ошибки>»
4. Последующее действие для проверки готовности к работе интеграции – это обращения к фоновым задачам, ответственным за совместную работу «1С: Шина» и конфигурации системы 1С. Для выполнения этого процесса, нужно обратиться к методу «ВыполнитьОбработку()». Нужные фоновые задачи будут запущены сразу при обращении к этому методу и закончатся в течении двух минут, после крайнего обращения к данному методу. На этом этапе важно зайти в журнал регистраций базы данных и проверить те события, которые привязаны к фоновым задачам, как можно увидеть на скриншоте здесь:
Журнал регистраций базы данных
Если процесс интеграции не будет активным, то, при обращении к методу «ВыполнитьОбработку()», внутри регистрационного журнала можно будет увидеть такое сообщение:
Сообщение внутри регистрационного журнала
Поменять статус активности процесса интеграции можно, если использовать обработку «Управление сервисами интеграции 1С», она располагается внутри раздела «Функции для технического специалиста», как продемонстрировано ниже:
Функции для технического специалиста
5. Если 1С: Шина не получает сообщения, которые были в неё из внешней базы данных 1С, то нужно проверить, что неполадка не относится к программному продукту 1С: Шина. Чтобы отобразился перечень сообщений, которые стоят на очереди – следует использовать метод «ВыбратьСообщения()», программный код которого можно увидеть далее:
«
Сообщения = СервисыИнтеграции[Сервис][Канал].ВыбратьСообщения();
Если Сообщения.Количество() > 0 Тогда
Сообщить("Количество сообщений в канале интеграции:" + Сообщения.Количество());
КонецЕсли;»
В случае, когда возвращён массив сообщений, который является пустым – значит, что отправка в систему конфигурации 1С: Шина была выполнена. Тогда надо обратиться к последующему обменному узлу.
Если же какое-то сообщение не удалось отправить, то и все последующие не смогут быть доставлены.
Чтобы устранить подобную интеграционную неполадку, нужно произвести удаление сообщения с ошибкой из базы данных, после чего, сверить названия по каналам и в системе конфигурации 1С: Шина, и в сторонней конфигурации 1С, и, последним шагом, заново создать требуемое сообщение. Эти действия можно увидеть на скриншоте с примером далее:
Создать требуемое сообщение
6. Если сообщение, которое приходит в систему из «1С: Шина» не проходит загрузку, то нужно узнать какой этап отвечает за данную неполадку. Для этого, в начале, нужно узнать не осталось ли сообщение на узле назначения, если это так, то величина счётчика не будет становиться меньше:
Какой этап отвечает за данную неполадку
Если само сообщение отсутствует на главном канале программного продукта 1С: Шина, однако, счётчик этого не отображает, то требуется удостовериться, что дело именно в обработке.
Узнать, что сообщение было записано в очередь, можно узнать из технологического журнала 1С (за это отвечает событие SINTEG).
Ошибка может выглядеть так, внутри события EXCP для технологического журнала 1С, если она относится к модулю внутри обработчика для получаемого сообщения:
«
40:05.162020-0,EXCP,3,process=rphost,p:processName=demo_erp,OSThread=8852,t:clientID=50904, t:applicationName=<applicationName>,t:computerName=uc1-9208-14,t:connectID=39382, SessionID=<SessionID>,Usr=<Usr>,
Exception=<Exception>,Descr=<Descr>;»
Чтобы избавиться от таких неполадок – следует правильно прописать обработчик и подключить саму обработку программного продукта 1С: Шина, как продемонстрировано на скриншоте с примером далее:
Прописать обработчик и подключить обработку программного продукта 1С: Шина
Специалист компании ООО "Кодерлайн"
Андрей Прыкин