Как настроить обмен данными между 1С:Розница ПРОФ (центр) и 1С:Розница Базовая (магазины) без РИБ?

Системный администратор 1С v8.3 (Управляемые формы) 1С:Розница Управленческий учет Торговля и дистрибуция
← На главную

Организация сетевой розничной торговли часто сталкивается с задачей консолидации данных. Типовой сценарий: есть центральный склад (офис) и несколько периферийных торговых точек. Если во всех узлах используются версии ПРОФ, задача решается штатным механизмом РИБ (Распределенная Информационная База). Однако, если в целях экономии на торговых точках установлена 1С:Розница Базовая, стандартный механизм РИБ становится недоступен из-за лицензионных ограничений платформы. Чтобы убедиться, что базы настроены идентично перед началом синхронизации, можно использовать сравнение значений констант для поиска расхождений в настройках двух баз.

В этой статье мы подробно разберем, как построить архитектуру обмена в связке "Центр (ПРОФ) — Магазины (Базовая)", какие подводные камни нас ожидают при синхронизации справочников и как правильно настроить движение документов перемещения товара.

Ограничения Базовой версии и постановка задачи

Давайте проанализируем исходные данные. У нас есть Центральная база (версия ПРОФ) и несколько периферийных баз (версии Базовая). Ограничения базовой версии 1С критичны для нашей задачи:

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

Однако, обмен данными в универсальных форматах (XML, EnterpriseData) в базовых версиях разрешен. Это оставляет нам пространство для маневра. Наша цель — настроить выгрузку товаров и документов перемещения из Центра в Магазины, и загрузку данных о продажах (чеки, отчеты о розничных продажах) из Магазинов в Центр.

Вариант 1: Единая база данных (Терминальный доступ / Web-сервер)

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

Вместо того чтобы мучиться с обменами, рассинхронизацией остатков и дублями номенклатуры, мы можем организовать работу всех магазинов в одной центральной базе 1С:Розница ПРОФ.

Как это работает:

  1. База разворачивается на мощном сервере (или в облаке).
  2. В магазинах настраивается подключение к этой базе через Тонкий клиент (по протоколу HTTP/HTTPS через веб-сервер IIS или Apache) или через RDP (удаленный рабочий стол).
  3. Кассы ККМ подключаются к локальным компьютерам, но пробрасываются в сеанс 1С.

Преимущества:

Недостатки:

Если интернет стабилен, этот вариант предпочтительнее. Если же автономность магазинов критична, переходим к настройке обменов.

Вариант 2: Универсальный обмен данными (XML) и Конвертация Данных

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

Проблема уникальных идентификаторов (GUID)

В системе 1С каждый объект справочника (например, товар "Молоко") имеет уникальный идентификатор (GUID). Если вы создали карточку "Молоко" в Центральной базе и отдельно создали такую же карточку в базе Магазина — для 1С это два совершенно разных товара, даже если у них одинаковое наименование и штрихкод.

При попытке сделать стандартную выгрузку без специальной подготовки, в базе-приемнике появятся дубли. Чтобы этого избежать, необходимо использовать механизм поиска по полям. Для обеспечения надежной доставки сообщений между базами в сложных проектах может потребоваться универсальный обмен XML в связке с RabbitMQ.

Настройка правил обмена (Конвертация данных 2.0/2.1)

Для реализации обмена нам потребуется создать правила обмена (файл .xml) с помощью конфигурации "Конвертация данных". Рассмотрим ключевые настройки для справочников:

1. Справочник Номенклатура

В правилах конвертации объектов (ПКО) для номенклатуры необходимо отключить поиск по GUID (или сделать его вторичным) и включить поиск по ключевым полям. Оптимальный приоритет полей поиска:

  1. Штрихкод (наиболее точный идентификатор).
  2. Артикул (если штрихкоды не используются).
  3. Наименование (самый ненадежный способ, но иногда единственный).

2. Справочник Контрагенты

Здесь поиск следует настроить по связке полей ИНН + КПП. Это гарантирует, что поставщики не задвоятся.

Схема движения документов

При обмене между независимыми базами (не РИБ) логика документов меняется. Давайте разберем, как трансформировать документы при выгрузке.

Направление: Центр -> Магазин

В Центре вы создаете документ ПеремещениеТоваров, где отправитель — "Центральный склад", а получатель — "Магазин №1".

При выгрузке в базу Магазина этот документ нельзя загрузить как ПеремещениеТоваров, если в базе Магазина не ведется учет остатков Центрального склада. Поэтому в правилах обмена настраивается конвертация:

В документе поступления в качестве Контрагента подставляется виртуальный поставщик "Головная организация" или "Центральный склад".

Направление: Магазин -> Центр

Здесь все проще. Магазин закрывает смену и формирует документ ОтчетОРозничныхПродажах. Этот документ можно выгружать в Центр "как есть".

Вариант 3: Использование готовых обработок и Расширений

Если написание правил в "Конвертации данных" кажется слишком сложным, можно воспользоваться механизмами, которые предлагает сообщество или сама платформа в виде внешних обработок.

Для базовых версий (начиная с платформы 8.3.6 и определенных релизов конфигураций) доступно подключение Расширений конфигурации. Это позволяет добавить функционал обмена, не снимая конфигурацию с поддержки. Например, для синхронизации визуального контента можно использовать универсальный механизм выгрузки и загрузки картинок номенклатуры.

Посмотрим, как организовать такой обмен:

  1. Находим или разрабатываем внешнюю обработку/расширение для выгрузки данных. В отличие от штатного обмена, здесь можно жестко прописать логику: "Выгрузить все продажи за вчера" -> "Сформировать файл JSON".
  2. Файл передается через FTP, электронную почту или Яндекс.Диск.
  3. В центральной базе запускается обратная обработка, которая читает файл и создает документы.

Пример алгоритма загрузки продаж в Центр (псевдокод):

<code>
// Чтение файла данных
ЧтениеJSON = Новый ЧтениеJSON;
ЧтениеJSON.ОткрытьФайл(ПутьКФайлу);
МассивПродаж = ПрочитатьJSON(ЧтениеJSON);

Для Каждого СтрокаПродажи Из МассивПродаж Цикл
    // Поиск товара по штрихкоду
    ТоварСсылка = Справочники.Номенклатура.НайтиПоРеквизиту("Штрихкод", СтрокаПродажи.Штрихкод);
    
    Если ТоварСсылка.Пустая() Тогда
        // Логирование ошибки или создание товара (если разрешено)
        Продолжить;
    КонецЕсли;

    // Заполнение табличной части отчета
    НоваяСтрока = ДокументОбъект.Товары.Добавить();
    НоваяСтрока.Номенклатура = ТоварСсылка;
    НоваяСтрока.Количество = СтрокаПродажи.Количество;
    НоваяСтрока.Цена = СтрокаПродажи.Цена;
КонецЦикла;
</code>

Подводные камни и рекомендации

При реализации любого из описанных методов (кроме RDP) обратите внимание на следующие моменты:

1. Синхронизация цен
Вместе с товарами необходимо передавать документы УстановкаЦенНоменклатуры. В базе магазина цены должны быть актуальными для работы кассы. Убедитесь, что "Виды цен" в обеих базах называются одинаково или корректно сопоставляются.

2. Контроль дублей
Регулярно (раз в неделю/месяц) запускайте в базах обработку "Поиск и удаление дублей". Даже при идеальных правилах обмена, пользователи могут создать товар вручную в магазине, что приведет к рассинхронизации.

3. Возвраты товаров
Продумайте логику возвратов товаров от покупателя. Если возврат происходит в день покупки, он обрабатывается на кассе. Если позже — создается документ ВозвратТоваровОтПокупателя. Этот документ также должен мигрировать в Центр.

Резюме

Организовать обмен между 1С:Розница ПРОФ и Базовой версией возможно, несмотря на отсутствие РИБ. У вас есть три пути:

  1. Технически сложный, но дешевый: Настройка обмена через "Конвертацию данных" или внешние обработки с сопоставлением по полям (штрихкод, ИНН).
  2. Организационный (RDP/Web): Работа всех точек в одной центральной базе онлайн. Требует стабильного интернета и дополнительных лицензий.
  3. Апгрейд (самый надежный): Обновление всех базовых версий до ПРОФ и настройка типового РИБ. Это требует финансовых вложений, но значительно упрощает дальнейшую поддержку и администрирование сети.
← На главную