Как организован обмен данными между конфигурациями Рарус и кассовым ПО Frontol 5 через SQL-сервер

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

При автоматизации розничной торговли часто возникает вопрос: как именно взаимодействуют между собой учетная система на базе 1С (в частности, отраслевые решения от «Рарус») и кассовое программное обеспечение Frontol 5. Ситуация часто осложняется тем, что в схеме обмена фигурирует SQL-сервер, хотя сама база 1С может быть файловой. Разберем подробно, какую роль играет каждое звено в этой «пищевой цепочке» и как данные попадают из кассового чека в отчет о розничных продажах.

Архитектура обмена: роли компонентов

Для начала проанализируем, какие базы данных и службы задействованы в процессе. Важно понимать, что Frontol 5 не работает с данными напрямую из 1С. Рассмотрим основные компоненты системы:

  1. База данных Frontol (Firebird): На самой кассе установлена СУБД Firebird. Это SQL-база, в которой Frontol хранит настройки, справочники товаров и все транзакции (чеки). Именно к ней обращается кассир при поиске товара.
  2. Конфигурация «Рарус»: Центральное звено в 1С, где ведется управленческий учет. Если база 1С файловая, она сама по себе не может выступать в роли SQL-сервера.
  3. Промежуточное звено (Рарус: Сервер обмена): В решениях «Рарус: Торговый комплекс» или «Рарус: Общепит» часто используется дополнительный модуль — Exchange Server. Именно он использует MS SQL Server в качестве промежуточного хранилища (буфера).

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

Механизм передачи данных через текстовые файлы

Несмотря на наличие SQL-сервера, классический обмен между 1С и Frontol происходит по схеме «Обмен через папку» в формате АТОЛ. Рассмотрим этот процесс по шагам:

1. Выгрузка из 1С в кассу:
Проанализируем действия системы: 1С (или промежуточный сервер обмена) формирует текстовый файл, содержащий список товаров, цен и штрихкодов. По умолчанию этот файл называется goods.txt. Вместе с ним создается пустой файл-сигнал goods.flg. Frontol мониторит папку обмена, и как только видит файл-флаг, начинает загрузку данных в свою локальную базу Firebird.

2. Выгрузка из кассы в 1С:
Когда смена закрыта (или по запросу), Frontol выгружает файл отчета (например, report.txt) и файл-флаг (report.flg). В этот момент в игру вступает либо сама 1С, либо «Сервер обмена».

Зачем нужен MS SQL Server в решениях Раруса?

Если 1С «умеет» сама читать файлы, зачем же нам промежуточная база SQL? Рассмотрим основные преимущества такой схемы:

Проанализируем ситуацию, описанную в сообщении: касса выкладывает файл, а конфа формирует отчеты на основании данных SQL. Это означает, что в системе работает фоновая служба (Windows Service), которая выполняет роль «пылесоса»: она ищет файлы в папках обмена всех касс и перекладывает их содержимое в SQL-базу Раруса. 1С затем обращается к этой базе через ADOConnection или специальные внешние компоненты.

Настройка и проверка обмена

Если вы столкнулись с проблемой, что данные не попадают из файла в SQL, рекомендуем проверить следующие моменты:

  1. Проверьте права доступа службы «Сервер обмена» к папке, куда Frontol выкладывает отчеты.
  2. Убедитесь, что в настройках оборудования в 1С выбран правильный путь к каталогу обмена.
  3. Посмотрите логи «Сервера обмена» Рарус — там фиксируются ошибки загрузки из файлов в SQL.

Рассмотрим пример того, как программно может выглядеть обращение к таким данным (условно), если бы мы писали обработку загрузки самостоятельно через SQL:


// Пример логики подключения к промежуточной базе SQL Раруса
Соединение = Новый COMОбъект("ADODB.Connection");
СтрокаПодключения = "Driver={SQL Server};Server=" + ИмяСервера + ";Database=" + ИмяБазы + ";Uid=" + Логин + ";Pwd=" + Пароль + ";";
Попытка
    Соединение.Open(СтрокаПодключения);
    ТекстЗапроса = "SELECT * FROM TableCashedTransactions WHERE IsProcessed = 0";
    RecordSet = Соединение.Execute(ТекстЗапроса);
    // Дальнейшая обработка строк транзакций и создание документов в 1С
Исключение
    Сообщить("Ошибка подключения к SQL-буферу: " + ОписаниеОшибки());
КонецПопытки;

Особенности для «Рарус: Общепит» и бонусных систем

В некоторых случаях SQL-сервер используется для Online-обмена. Это актуально для дисконтных систем. Когда на кассе сканируют карту, Frontol через специальный плагин (Frontol Priority или аналоги) обращается к SQL-базе Раруса, чтобы получить актуальный остаток бонусов. В этом случае данные не передаются файлами, а идет прямой SQL-запрос или обращение к веб-сервису.

Резюме: Если в вашей конфигурации Рарус + Frontol фигурирует SQL при файловой 1С, значит, вы используете архитектуру с промежуточным сервером обмена. Данные из текстовых файлов в SQL загружает специальная служба (Exchange Server), а 1С лишь считывает готовый результат из таблиц базы данных. Это делает систему более устойчивой к сбоям и быстрой в работе.

← На главную