Как настроить синхронизацию баз 1С между разными серверами при отсутствии общих сетевых ресурсов?

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

Часто в корпоративной среде администраторы безопасности (СБ) устанавливают жесткие ограничения: серверы приложений находятся в изолированных подсетях, прямое соединение между ними запрещено, а создание общих сетевых папок (шар) заблокировано. Если перед нами стоит задача настроить типовую синхронизацию между 1С:Бухгалтерия и 1С:Зарплата и Управление Персоналом, мы оказываемся в тупике, так как штатный механизм обмена требует указания каталога на сервере. Давайте разберем, как обойти эти ограничения, используя клиентскую сторону.

Вариант 1: Использование локального диска RDP-сессии

Если пользователи работают с базами через удаленный рабочий стол (RDP), мы можем использовать механизм перенаправления локальных дисков. Это часто является единственным «окном» в закрытую инфраструктуру, которое СБ вынуждена оставлять открытым для продуктивной работы.

  1. При настройке Плана обмена в 1С вместо пути на сервере (например, C:\Exchange) мы можем попытаться указать путь вида \\tsclient\D\Obmen\.
  2. Система \\tsclient указывает на локальный диск компьютера бухгалтера, к которому проброшена сессия RDP.
  3. Для того чтобы это заработало, необходимо, чтобы пользователь службы, от имени которого запущен сервер приложений, имел права на чтение и запись в этот путь, что бывает затруднительно. Однако в ряде случаев это является штатным способом обмена для терминальных серверов.

Вариант 2: P2P-синхронизация как промежуточное звено

Если прямое соединение серверов запрещено, но компьютер бухгалтера имеет доступ к файловой системе обоих серверов (через RDP или иные инструменты), мы можем организовать промежуточный узел. Мы можем использовать технологии P2P (Peer-to-Peer) синхронизации, которые работают локально без выхода в интернет.

Рассмотрим логику процесса:

  1. Сервер 1 (ЗУП) выгружает файл обмена во временную локальную папку.
  2. Приложение-синхронизатор, запущенное на клиенте, «подхватывает» файл из первой папки и копирует его во вторую (для сервера БП).
  3. Сервер 2 (БП) при выполнении регламентного задания или ручном запуске видит файл и выполняет загрузку данных.

Этот подход позволяет избежать «выхода в интернет» и использования облачных хранилищ, работая исключительно внутри локальной сети предприятия.

Вариант 3: Разработка собственного механизма обмена на стороне клиента

Если штатная синхронизация принципиально требует серверных папок, мы можем отказаться от использования РегистрСведений.НастройкиТранспортаОбменаДанными и написать собственную обработку, работающую в контексте клиента.

Вместо того чтобы полагаться на серверные пути, мы реализуем алгоритм:


// Пример псевдокода для реализации на клиенте
// 1. Выгрузка из ЗУП
ДанныеВыгрузки = Обработки.КонвертацияОбъектовИнформационныхБаз.ВыгрузитьДанные(ПараметрыОбменаЗУП);
ДанныеВыгрузки.Записать("C:\LocalExchange\Exchange_ZUP_BP.xml");

// 2. Загрузка в БП
Если ФайлСуществует("C:\LocalExchange\Exchange_ZUP_BP.xml") Тогда
    Обработки.КонвертацияОбъектовИнформационныхБаз.ЗагрузитьДанные("C:\LocalExchange\Exchange_ZUP_BP.xml");
КонецЕсли;

Используя этот метод, мы полностью переносим логику сохранения файлов на локальную машину бухгалтера. Поскольку код выполняется на клиенте, мы получаем прямой доступ к файловой системе, что снимает ограничения сервера приложений.

Рекомендации по взаимодействию со службой безопасности

Если технические ухищрения не приносят результата, необходимо сменить тактику взаимодействия с СБ:

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

← На главную