При организации распределенной информационной базы (РИБ) в 1С:Розница и других типовых конфигурациях нередко выбирают передачу пакетов через папки облачных сервисов (Яндекс Диск, Dropbox, Google Диск). На начальном этапе с двумя узлами такая схема может работать относительно стабильно. Однако при подключении дополнительных периферийных узлов или отключении одного из магазинов администраторы сталкиваются с типовым симптомом: автоматический обмен по расписанию перестает запускаться, при этом ручная синхронизация выполняется без ошибок, после чего автомат на некоторое время снова оживает.
Проанализируем архитектурные причины такого поведения платформы 1С и разберем конкретные шаги для устранения проблемы.
Выясним, почему ручной запуск работает, а регламентное задание «засыпает». В свойствах каждого регламентного задания в 1С предусмотрены параметры реакции на аварийное завершение:
Когда удаленный узел выключен (компьютер в магазине обесточен), соединение отсутствует или файл заблокирован, фоновое задание синхронизации падает с ошибкой. Платформа 1С повторяет запуск указанное количество раз (по умолчанию часто стоит 3 раза). Как только лимит попыток исчерпан, регламентное задание переходит в состояние фатальной ошибки и полностью прекращает выполнение по текущему расписанию до наступления новых суток, перезапуска сеанса или принудительного ручного вмешательства.
Когда вы выполняете обмен вручную, процедура сбрасывает статус ошибки, обновляет временную отметку успешного обмена, и расписание на время возвращается к жизни — до следующего отключения удаленного компьютера.
Клиенты Яндекс Диска или Dropbox работают как фоновые службы операционной системы, отслеживающие системные события файловой структуры. В момент, когда 1С формирует исходящий архив обмена (например, Message_001_002.zip), происходят следующие конфликты:
Message_001_002 (2).zip. Типовой механизм РИБ не умеет обрабатывать файлы с измененными именами, сообщение пропускается, и номера сообщений обмена рассинхронизируются.Если центральная база работает в файловом варианте, регламентные задания не являются системной службой ОС. Они выполняются внутри запущенного сеанса пользователя либо выделенного служебного сеанса. Если рабочая станция уходит в спящий режим, завершает работу пользователя или сеанс 1С подвисает (например, из-за повреждения журнала регистрации), фоновые задания перестают запускаться в принципе.
Разберем по шагам, как исправить сбои автоматической синхронизации и сделать работу распределенной базы надежной.
Откроем список регламентных заданий через раздел Администрирование — Обслуживание — Регламентные и фоновые задания (или в конфигураторе) и проанализируем настройки задания обмена данными для каждого узла:
Практика показывает, что использование сторонних облачных дисков для РИБ является нестабильным костылем. Рассмотрим два правильных варианта организации транспорта:
1С умеет работать с FTP напрямую через встроенные механизмы без сторонних фоновых утилит. При передаче через FTP файл записывается и читается строго атомарно, что исключает блокировку дескрипторов файлов и появление дублей вида (2).zip. Для этого достаточно поднять собственный FTP-сервер (например, на базе IIS или FileZilla Server) либо арендовать защищенный хостинг.
Конфигурация 1С:Розница 2.1 на базе Библиотеки стандартных подсистем поддерживает синхронизацию напрямую через веб-сервисы. Центральная база публикуется на веб-сервере (IIS или Apache). Периферийные базы настраиваются на отправку данных по протоколу HTTP/HTTPS прямо в центральную базу. Это снимает необходимость в промежуточных файлах и обеспечивает максимальную скорость и надежность.
Если временно нет возможности отказаться от облачного диска, применим обходное решение с изолированной выгрузкой:
Если база аварийно закрывается при попытке открыть журнал регистрации, это указывает на повреждение или фрагментацию файла журнала (SQLite). Сбои при записи событий обмена в поврежденный журнал приводят к падению фоновых заданий.
Для исправления ситуации выполним процедуру сокращения журнала через конфигуратор: меню Администрирование — Настройка журнала регистрации — Сократить, указав удаление записей до определенной даты, либо временно переместим файл журнала из каталога базы данных для формирования нового чистого журнала.