Часто в практике администраторов и программистов 1С встречается ситуация: после планового обновления платформы на сервере (например, с версии 8.3.9 на 8.3.13) отлаженный годами обмен данными внезапно «замирает». При этом в ЖурналРегистрации система рапортует об успешном завершении фонового задания, но фактического движения файлов или данных в базе-приемнике не наблюдается. Самое странное, что при нажатии кнопки «Выполнить обмен» вручную всё работает идеально.
Разберем детально, почему так происходит, и проанализируем неочевидные на первый взгляд механизмы работы серверных процессов 1С.
Прежде чем переходить к техническим манипуляциям, важно понять фундаментальное различие в выполнении кода. Когда мы запускаем обмен через интерактивную кнопку («вручную»), код выполняется в контексте текущего пользователя Windows. У этого пользователя есть свои права доступа к сетевым папкам, свои настройки реестра и свои зарегистрированные COM-объекты. Для настройки регулярной синхронизации по расписанию применяется программа для автоматизации регулярного обмена данными между базами 1С.
Регламентное задание выполняется на сервере в контексте службы Агент сервера 1С:Предприятия. По умолчанию эта служба работает от имени специального пользователя USR1CV8 (или локальной системной учетной записи). Рассмотрим основные причины, по которым этот «невидимый» пользователь может не справляться с задачей после обновления платформы.
Если ваш обмен использует механизм COM-соединения (объект V83.COMConnector), то при обновлении платформы система может «потерять» связь с нужной библиотекой comcntr.dll. Даже если вы установили новую платформу, в реестре Windows может остаться ссылка на старую версию, которой больше не существует или которая несовместима с текущим процессом.
Проанализируем шаги по регистрации компоненты для разных архитектур системы:
regsvr32 "C:\Program Files (x86)\1cv8\8.3.13.1315\bin\comcntr.dll"
SysWOW64 для корректной регистрации в реестре:
C:\Windows\SysWOW64\regsvr32 "C:\Program Files\1cv8\8.3.13.1313\bin\comcntr.dll"
Важный нюанс: После выполнения регистрации крайне рекомендуется перезагрузить службу Агент сервера 1С:Предприятия, а в идеале — весь физический сервер, чтобы изменения в реестре вступили в силу для всех дочерних процессов rphost.
Иногда простой регистрации библиотеки недостаточно, особенно если на одном сервере должны сосуществовать разные версии платформ. Выясним причину: 64-битный процесс сервера 1С иногда испытывает трудности при обращении к 32-битным библиотекам или при конфликте версий в общем реестре. В этом случае создадим изолированную среду выполнения.
Рассмотрим по шагам процесс создания приложения COM+:
1C_COM_Connector.comcntr.dll из каталога bin установленной платформы.Это позволит регламентному заданию обращаться к библиотеке через стабильный «мост», работающий от имени конкретного пользователя с гарантированными правами.
Посмотрим на ситуацию со стороны файловой системы. При обновлении платформы инсталлятор может сбросить или переустановить права на системные папки. Если обмен идет через текстовый файл, проверьте следующее:
USR1CV8 права на чтение и запись в каталог, где лежит файл обмена?\\Server\Exchange), помните, что локальный пользователь USR1CV8 не увидит эту папку. В этом случае службу 1С нужно запускать от имени доменного пользователя.Temp для формирования промежуточных данных. Очистите кэш сервера (папки snccntx в каталоге srvinfo), так как старые закэшированные метаданные версии 8.3.9 могут мешать работе на 8.3.13.Проанализируем сетевой аспект. В версиях платформы выше 8.3.9 механизмы взаимодействия между рабочими процессами могли измениться. Убедитесь, что брандмауэр Windows (или сторонний антивирус) не блокирует внутренние соединения. Для автоматизации технического обслуживания и снижения рисков при переходе на новые релизы используется программа для автоматического архивирования, обновления и тестирования баз 1С.
Стандартный диапазон портов для 1С: 1540, 1541, 1560-1591. При обновлении платформы исполняемый файл rphost.exe меняет свой путь (так как номер версии в пути к папке другой). Если в вашем брандмауэре было настроено разрешение «по пути к файлу», старое правило перестало действовать для новой платформы. Рекомендуется настраивать правила именно по номерам портов, а не по исполняемым файлам.
Начиная с новых релизов 8.3, 1С усилила контроль безопасности. Если регламентное задание пытается выполнить «внешнюю» операцию (обратиться к файловой системе или запустить COM), оно может быть заблокировано механизмом Защиты от опасных действий. Чтобы проконтролировать корректность результата фонового процесса, используется инструмент для автоматической сверки бухгалтерских и налоговых проводок между базами.
Выясним, как это проверить:
В свойствах пользователя, под которым выполняется регламентное задание (в информационной базе), найдите флажок «Защита от опасных действий». Попробуйте временно его снять и проверить выполнение задания. Также убедитесь, что в константах или настройках программы не включены Профили безопасности, ограничивающие доступ к внешним ресурсам для серверных процессов.
Подводя итог, можно сказать: если РегламентныеЗадания пишут «Успешно», но результата нет — проблема на 99% кроется в правах доступа к ресурсам или несоответствии зарегистрированных COM-компонент версии исполняемого серверного процесса. Совместное использование перерегистрации comcntr.dll и настройки прав пользователя службы 1С гарантированно решает данную проблему.