При работе с распределенными информационными базами (РИБ) в 1С:Розница 2.2 администраторы часто сталкиваются с вопросом выбора транспорта для обмена данными. Появление встроенного механизма «Синхронизация файлов с облачными сервисами» в разделе администрирования вызывает закономерный интерес: можно ли заменить этим инструментом старый добрый FTP и как это соотносится с классическим РИБ? Разберем эту тему подробно, проанализируем механизмы хранения и определим наиболее современные способы организации обмена.
Первое, что нам необходимо понять: классический РИБ (Распределенная Информационная База) и механизм синхронизации файлов с облаками — это две разные подсистемы, решающие разные задачи. Рассмотрим их отличия.
РИБ предназначен для синхронизации структурированных данных: документов, справочников, остатков, цен и движений по регистрам. Обмен происходит через сообщения в формате XML, которые содержат изменения объектов. Эти сообщения должны доставляться от «Центра» к «Магазинам» и обратно.
Синхронизация с облачными сервисами (Яндекс.Диск, Dropbox, Box) в 1С:Розница — это функционал Библиотеки стандартных подсистем (БСП), предназначенный исключительно для работы с присоединенными файлами. К ним относятся фотографии товаров, сканы договоров, PDF-инструкции и прочие двоичные данные, которые хранятся в справочниках типа НоменклатураПрисоединенныеФайлы.
Проанализируем ситуацию: если хранить все картинки товаров (которых в рознице могут быть тысячи) непосредственно в базе данных (в теле SQL или внутри файла 1Cv8.1CD), размер информационной базы начинает стремительно расти. Для файловых баз это критично — при достижении определенного порога (около 4 Гб на таблицу) база начинает работать крайне медленно или выдает ошибки блокировок.
Для решения этой проблемы в 1С предусмотрено два варианта хранения файлов:
ХранилищеЗначения. Плюс: они автоматически мигрируют по РИБ вместе с данными. Минус: огромный размер базы и медленные бекапы.Именно здесь на сцену выходят облачные сервисы. Рассмотрим алгоритм: вы настраиваете хранение файлов в облаке, и 1С сама выгружает картинки, например, на Яндекс.Диск. Магазин, получив по РИБ ссылку на файл, обращается к облаку и скачивает его. Таким образом, тяжелый контент доставляется в обход основного канала обмена данными.
Некоторые специалисты пытаются использовать папки облачных сервисов (установленных как приложения в Windows) в качестве транспорта для XML-пакетов РИБ. Разберем, почему это может быть рискованно:
Проблема блокировок: Облачный клиент (например, приложение Яндекс.Диск) постоянно отслеживает изменения в папке. Как только 1С выгружает файл сообщения обмена Message_001_002.xml, клиент начинает его «подхватывать» для отправки на сервер. Если в этот момент 1С попытается произвести какую-то операцию с файлом, возникнет ошибка доступа.
Конфликты копий: При нестабильном интернете облако может создать файл с припиской «конфликтующая копия». 1С не увидит этот файл, и цикл обмена будет разорван. Выясним причину: отсутствие прямой квитанции о доставке, которую гарантирует, например, HTTP-сервис.
Если вы все же решили использовать облако как «продвинутый FTP», воспользуйтесь советом опытных разработчиков: организуйте файл-флаг. Это пустой текстовый файл, который создается после завершения выгрузки данных. Процесс загрузки в приемнике должен начинаться только при наличии этого флага. После успешной загрузки флаг должен быть удален.
Выясним, что же является действительно современным способом обмена в 2024 году. Как было отмечено в обсуждении, FTP считается морально устаревшим и небезопасным (данные передаются в открытом виде). Наиболее «кошерный» способ — это использование Web-сервисов или HTTP-сервисов.
В типовой 1С:Розница 2.2 и выше встроен веб-сервис Exchange. Рассмотрим, как это работает:
https://server.com/base) и логин/пароль.Преимущества HTTP-обмена:
SSL/HTTPS шифрует трафик.Если вам необходимо настроить надежный обмен между магазинами, рекомендуем придерживаться следующей стратегии:
Шаг 1. Оценка объема данных. Если у вас мало картинок, храните их внутри базы. Если много — настройте «Тома хранения файлов» на сетевом ресурсе или используйте синхронизацию с облаком для Справочников и Документов.
Шаг 2. Выбор транспорта. Для передачи самих изменений (РИБ) лучше всего поднять веб-сервер. Для публикации на ОС Windows обычно используют Internet Information Services (IIS), для Linux — Apache.
Пример программной проверки доступности узла обмена (если бы вы писали свою обработку):
Попытка
Определения = Новый WSОпределения(АдресWSDL, Пользователь, Пароль);
Прокси = Новый WSПрокси(Определения, "http://www.1c.ru/SSL/Exchange", "Exchange", "ExchangeSoap");
Результат = Прокси.GetFileLimits();
Сообщить("Связь с центральным узлом установлена успешно.");
Исключение
Сообщить("Ошибка подключения: " + ОписаниеОшибки());
КонецПопытки;
Шаг 3. Настройка расписания. Не настраивайте обмен слишком часто, если используете облачные папки. Дайте время облачному клиенту завершить синхронизацию файла на диск. Оптимальный интервал для розницы — 15–30 минут.
Шаг 4. Оптимизация состава планов обмена. Проверьте, чтобы в план обмена «По магазинам» не попадали лишние данные (например, временные таблицы или тяжелые отчеты). Это уменьшит размер XML-пакета и ускорит передачу через любой канал, будь то Яндекс.Диск или HTTP.
Подведем итог: функционал синхронизации с облаками в 1С:Розница 2.2 — это дополнение к РИБ, а не его замена. Он помогает разгрузить базу от тяжелых файлов. Для передачи же самих данных обмена (документов, чеков, цен) наиболее надежным и современным методом остается прямое соединение через Web-сервисы по протоколу HTTPS. Облака же стоит использовать как удобный и дешевый транспорт для мультимедиа-контента, если нет возможности поднять собственный полноценный файловый сервер.