Как исправить ошибку «Не найдено ни одного сервера с размещенным сервисом serviceName=IntegrationDataService» при обновлении 1С?

Системный администратор 1С v8.3 (Управляемые формы) 1C:Бухгалтерия IT и автоматизация бизнеса
← На главную

При выполнении операции «Обновить конфигурацию базы данных» системные администраторы и разработчики 1С иногда сталкиваются с неприятным системным сообщением: «Не найдено ни одного сервера с размещенным сервисом serviceName=IntegrationDataService;Ref=ХХХХХ;». Данная проблема блокирует возможность внесения изменений в структуру метаданных и может парализовать работу по сопровождению системы. Давайте подробно разберем, почему возникает эта ситуация, и какие шаги необходимо предпринять для ее устранения.

Анализируем природу ошибки и технический контекст

Для начала проанализируем ситуацию: сервис IntegrationDataService является внутренним механизмом технологической платформы «1С:Предприятие 8.3». Он отвечает за работу современных подсистем интеграции, включая «Систему взаимодействия» (Collaboration System), работу с внешними источниками данных и некоторые механизмы реструктуризации. Ошибка возникает в тот момент, когда менеджер кластера (процесс rmngr) не может корректно делегировать выполнение задачи рабочему процессу (rphost), который в данный момент должен поддерживать этот сервис.

Важно понимать, что это не ошибка вашего кода или конкретной конфигурации (например, «Бухгалтерии предприятия»). Это проблема взаимодействия компонентов самой платформы. Выясним причину: в версиях платформы 8.3.19 и ранних сборках 8.3.20 был изменен алгоритм распределения сервисов внутри кластера, что привело к возникновению бага, зарегистрированного под номером 000115271.

Способ 1. Обновление платформы до исправленного релиза

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

  1. Линейка 8.3.20: проблему устранили в версии 8.3.20.1771 и всех последующих (например, 8.3.20.1838 и выше).
  2. Линейка 8.3.21: ошибка исправлена, начиная с версии 8.3.21.1197.
  3. Актуальные ветки (8.3.22, 8.3.23 и выше): в этих версиях данный механизм работает стабильно.

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

Способ 2. Временный откат на стабильную версию

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

Разберем по шагам процесс безопасного изменения версии платформы:

  1. Завершите все активные сеансы пользователей.
  2. Остановите службу 1C:Enterprise 8.3 Server Agent.
  3. Установите нужную версию платформы на сервер.
  4. При необходимости измените версию в настройках службы или переустановите службу на новый исполняемый файл.
  5. Запустите службу и выполните обновление базы данных под новой версией.

Способ 3. Очистка серверного кэша кластера

Если обновление платформы не помогло или ошибка продолжает «мелькать» эпизодически, проанализируем состояние серверного кэша. Часто записи о распределении сервисов в папке srvinfo становятся неактуальными, и менеджер кластера пытается обратиться к несуществующим процессам. Посмотрим, как выполнить глубокую очистку.

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

Рассмотрим алгоритм действий:

  1. Остановите службу сервера 1С.
  2. Перейдите в каталог данных сервера (по умолчанию это C:\Program Files\1cv8\srvinfo).
  3. Найдите внутри папки reg_1541 (или другого порта) подпапки с идентификаторами информационных баз.
  4. Удалите в них папки snaccnt.
  5. Также удалите временные файлы из папок temp внутри рабочего каталога сервера.

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


net stop "1C:Enterprise 8.3 Server Agent"
timeout /t 5
del /f /s /q "C:\Program Files\1cv8\srvinfo\reg_1541\snaccnt\*"
for /d %%i in ("C:\Program Files\1cv8\srvinfo\reg_1541\temp\*") do rd /s /q "%%i"
net start "1C:Enterprise 8.3 Server Agent"

Способ 4. Оптимизация настроек рабочих процессов

Иногда ошибка serviceName=IntegrationDataService возникает из-за нехватки ресурсов или агрессивных настроек перезапуска рабочих процессов. Выясним, как подстроить кластер под нагрузку. Рассмотрим следующие параметры в консоли администрирования 1С:

  1. Количество ИБ на процесс: Если у вас много баз, попробуйте установить значение 1. Это заставит систему запускать отдельный процесс rphost для каждой базы, что изолирует сервисы друг от друга.
  2. Объем памяти для рабочих процессов: Увеличьте порог «Выключить процессы с превышением памяти». Если процесс аварийно завершается во время реструктуризации из-за нехватки памяти, сервисы (включая сервис интеграции) становятся недоступными.
  3. Количество сервисов на процесс: Убедитесь, что лимит не слишком мал, чтобы платформа могла свободно запускать необходимые служебные модули.

Резюме

Мы выяснили, что ошибка с IntegrationDataService — это типичный «глюк» определенных релизов платформы 1С. Основным решением является переход на релизы 8.3.20.1771, 8.3.21.1197 или более поздние. В качестве временных мер эффективно помогают откат на 8.3.18 и полная очистка серверных временных файлов. Выполняя эти рекомендации, вы сможете успешно завершить обновление базы данных и обеспечить стабильную работу системы.

← На главную