Проблемы с автоматической синхронизацией данных в распределенных информационных базах (РИБ) — одна из самых частых головных болей администраторов и программистов 1С, работающих с розничными сетями, которым часто требуется мониторинг обменов с магазинами (поможет программа мониторинга обменов 1С и уведомления о сбоях). Часто возникает ситуация, когда ручной обмен проходит успешно, а регламентное задание по расписанию упорно игнорируется системой. Рассмотрим подробно, почему это происходит и какие шаги нужно предпринять для восстановления работоспособности обмена.
В современных конфигурациях, таких как 1С:Розница 2.2, настройка обмена происходит не напрямую через список регламентных заданий, а через специализированный механизм — Сценарии синхронизации данных, при этом могут использоваться правила обмена для Розница 2.3 - 3.0. Ошибкой многих администраторов является попытка настроить расписание непосредственно в объекте РегламентноеЗадание.ОбменДанными.
Проанализируем правильный алгоритм действий для сброса и настройки сценария:
Иногда при анализе регламентных заданий (для этого есть обработка автоматического отслеживания сбоев в журнале регистрации) мы можем заметить странную вещь: колонка Дата последнего запуска содержит значение, которое еще не наступило. Это критическая ошибка для планировщика 1С. Если система видит, что задание якобы «уже выполнялось» в будущем, она не запустит его, пока текущее системное время не превысит эту ошибочную метку.
Рассмотрим, как исправить эту ситуацию:
Причиной обычно является рассинхронизация времени между сервером и рабочими станциями или некорректный перенос данных. Для решения проблемы недостаточно просто изменить расписание. Потребуется удалить регламентное задание и создать его заново через сценарий обмена, как было описано выше. Также проверим настройки времени на всех узлах РИБ и убедимся, что используется единый NTP-сервер для синхронизации, а также проведем сравнение значений констант для поиска расхождений в настройках.
Если база в магазине файловая, важно помнить, что регламентные задания не выполняются сами по себе «в воздухе». Для их работы нужен активный сеанс 1С, который будет выступать в роли планировщика.
Посмотрим на технические нюансы обслуживания файловой базы:
1Cv8JobScheduler. При возникновении необъяснимых сбоев в работе заданий рекомендуется закрыть все сеансы (в этом поможет автозавершение пользовательских серверных сеансов) и физически удалить эту папку. При следующем запуске 1С сформирует её заново./AllowExecuteScheduledJobs -Off, который принудительно запрещает выполнение заданий в данном сеансе.Если база серверная, или если вы меняли учетную запись, под которой запускается служба Агент сервера 1С:Предприятия, проблема может крыться в правах доступа. Разберем ситуацию, когда после смены пользователя службы обмен перестал работать.
Проанализируем следующие моменты:
Во-первых, проверим Блокировку регламентных заданий. Это делается в консоли администрирования серверов 1С или через Администрирование — Обслуживание — Регламентные и фоновые задания. Нажмите кнопку Разблокировать, если работа заданий была приостановлена для обслуживания базы.
Во-вторых, обратим внимание на права доступа к внешним ресурсам. Если обмен идет через сетевой каталог или FTP, служба сервера 1С (процесс rphost) должна иметь права на чтение и запись в эти папки. Помните, что системная учетная запись LocalSystem часто не имеет прав на доступ к сетевым шарам в домене. В таких случаях лучше использовать специально созданную доменную учетную запись с ограниченными правами.
В-третьих, проверим Безопасный режим. В профиле пользователя, под которым выполняется обмен, может быть установлен флаг «Безопасный режим». В этом режиме платформа блокирует любые операции с файловой системой и внешними соединениями (HTTP, FTP). Убедимся, что для целей обмена этот режим отключен или настроены соответствующие разрешения в профилях безопасности.
Бывают случаи, когда обмен «зависает» на программном уровне. В конфигурации существует регистр сведений СостоянияОбменаДанными. Система записывает туда информацию о начале обмена, и если сеанс завершился аварийно, флаг «Выполняется» может остаться в значении Истина.
Рассмотрим, как это проверить:
Через меню Функции для технического специалиста найдем регистр сведений Состояния обмена данными. Проанализируем записи для проблемного узла. Если мы видим незавершенную операцию с давней датой, попробуем очистить эти записи. После очистки планировщик сможет инициировать новый поток обмена, так как увидит, что предыдущий процесс не активен.
Подводя итог, если автоматический обмен в РИБ Розница 2.2 перестал работать, пройдем по шагам:
1Cv8JobScheduler и проверим наличие активного сеанса.Temp и сетевые ресурсы.Соблюдение этого порядка действий позволяет решить 99% проблем с автоматизацией обмена данными в распределенных системах на базе 1С.