Настройка автоматического обмена данными в файловом варианте информационной базы 1С значительно отличается от клиент-серверного режима. Основная сложность заключается в том, что в файловой базе нет отдельного менеджера кластера, который бы инициировал выполнение заданий по расписанию независимо от пользователей. В этой статье мы подробно разберем, как заставить синхронизацию работать в автоматическом режиме, проанализируем типичные ошибки и рассмотрим альтернативные методы запуска через планировщик ОС.
Прежде всего, нам необходимо понять фундаментальный принцип: в файловой базе 1С фоновые и регламентные задания выполняются только внутри запущенного клиентского сеанса. Если ни одна программа 1С не открыта, задания выполняться не будут. Рассмотрим, как платформа 8.3 управляет этим процессом. По умолчанию платформа ищет активный сеанс и «назначает» его ответственным за выполнение заданий. Однако в условиях работы магазина или склада это не всегда надежно, так как пользователь может закрыть программу или заблокировать компьютер.
Для решения этой проблемы мы используем специальный параметр запуска /AllowExecuteScheduledJobs -Force. Разберем подробнее, что он дает. Этот ключ заставляет конкретный запущенный экземпляр программы брать на себя роль исполнителя регламентных заданий, даже если запущены другие сеансы. Важно понимать, что этот сеанс должен быть запущен постоянно на выделенном компьютере или сервере.
Перед тем как приступать к программным ключам, нам следует убедиться, что выполнение заданий не запрещено на уровне настроек самой базы. Проанализируем ситуацию, когда визуально все настроено правильно, но обмена нет. Выясним, не установлена ли блокировка:
Для стабильной работы нам нужно выделить один компьютер, который будет работать круглосуточно (или в часы работы магазина). Мы настроим на нем ярлык для запуска 1С с необходимыми параметрами. Рассмотрим пример командной строки для запуска такого сеанса:
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\1C_Bases\Retail" /N "Admin_Sync" /P "Password123" /AllowExecuteScheduledJobs -Force
В данном примере мы используем:
/F — путь к файловой базе./N и /P — имя и пароль пользователя с административными правами./AllowExecuteScheduledJobs -Force — критически важный ключ, который назначает этот сеанс «главным» по заданиям.Важный нюанс: у пользователя, под которым запускается этот сеанс, обязательно должны быть назначены роли ПолныеПрава и Администрирование. Также рекомендуется в карточке этого пользователя снять флажок «Защита от опасных действий», чтобы исключить появление интерактивных окон с подтверждением, которые заблокируют автоматический процесс.
Если сеанс запущен, но синхронизация не идет, нам нужно заглянуть «под капот» системы. Стандартный список регламентных заданий не всегда информативен. Мы рекомендуем воспользоваться внешней обработкой Консоль заданий (ее можно найти на дисках ИТС или в составе инструментов разработчика).
Проанализируем состояние задания синхронизации через консоль:
Иногда автоматическому обмену мешают файлы блокировок. В файловом режиме при некорректном завершении работы программы в папке с базой могут остаться файлы с расширением .cdn и .lck. Выясним, как это влияет на процесс:
Если в папке присутствует файл 1Cv8.cdn, платформа может считать, что база заблокирована для проведения регламентных работ, и не будет запускать фоновые процессы. Для исправления ситуации необходимо закрыть все сеансы 1С и вручную удалить файл 1Cv8.cdn из каталога информационной базы.
Если встроенный механизм 1С работает нестабильно (например, из-за особенностей сетевой инфраструктуры или энергосбережения компьютеров), мы можем прибегнуть к проверенному методу системных администраторов — запуску обмена через планировщик Windows. Этот метод хорош тем, что он не требует постоянно открытого окна 1С.
Для этого мы создадим командный файл (например, sync.bat):
@echo off
echo Запуск синхронизации 1С...
"C:\Program Files\1cv8\common\1cestart.exe" ENTERPRISE /F "D:\1C_Bases\Retail" /N "Admin" /P "Pass" /C "ВыполнитьОбменДанными" /Out "D:\logs\sync_log.txt"
В данном сценарии параметр /C передает команду в код конфигурации. В современных конфигурациях на базе БСП (Библиотека стандартных подсистем) предусмотрена обработка параметра ВыполнитьОбменДанными, которая инициирует синхронизацию при запуске и закрывает программу после завершения. После этого нам остается только добавить этот .bat файл в Планировщик задач Windows с нужным нам интервалом (например, каждые 30 минут).
Подводя итог, проанализируем контрольный список действий, если автоматическая синхронизация в 1С:Розница не работает:
/AllowExecuteScheduledJobs -Force./Out.Следуя этим шагам, мы обеспечим стабильную передачу данных между магазинами и центральным офисом, минимизируя ручное вмешательство в работу системы.