При автоматизации розничной торговли часто возникает вопрос: как именно взаимодействуют между собой учетная система на базе 1С (в частности, отраслевые решения от «Рарус») и кассовое программное обеспечение Frontol 5. Ситуация часто осложняется тем, что в схеме обмена фигурирует SQL-сервер, хотя сама база 1С может быть файловой. Разберем подробно, какую роль играет каждое звено в этой «пищевой цепочке» и как данные попадают из кассового чека в отчет о розничных продажах.
Для начала проанализируем, какие базы данных и службы задействованы в процессе. Важно понимать, что Frontol 5 не работает с данными напрямую из 1С. Рассмотрим основные компоненты системы:
Выясним причину, почему в обсуждениях часто возникает путаница. Пользователи видят наличие MS SQL и предполагают прямой обмен, но на практике транспортным механизмом почти всегда остаются текстовые файлы.
Несмотря на наличие SQL-сервера, классический обмен между 1С и Frontol происходит по схеме «Обмен через папку» в формате АТОЛ. Рассмотрим этот процесс по шагам:
1. Выгрузка из 1С в кассу:
Проанализируем действия системы: 1С (или промежуточный сервер обмена) формирует текстовый файл, содержащий список товаров, цен и штрихкодов. По умолчанию этот файл называется goods.txt. Вместе с ним создается пустой файл-сигнал goods.flg. Frontol мониторит папку обмена, и как только видит файл-флаг, начинает загрузку данных в свою локальную базу Firebird.
2. Выгрузка из кассы в 1С:
Когда смена закрыта (или по запросу), Frontol выгружает файл отчета (например, report.txt) и файл-флаг (report.flg). В этот момент в игру вступает либо сама 1С, либо «Сервер обмена».
Если 1С «умеет» сама читать файлы, зачем же нам промежуточная база SQL? Рассмотрим основные преимущества такой схемы:
Проанализируем ситуацию, описанную в сообщении: касса выкладывает файл, а конфа формирует отчеты на основании данных SQL. Это означает, что в системе работает фоновая служба (Windows Service), которая выполняет роль «пылесоса»: она ищет файлы в папках обмена всех касс и перекладывает их содержимое в SQL-базу Раруса. 1С затем обращается к этой базе через ADOConnection или специальные внешние компоненты.
Если вы столкнулись с проблемой, что данные не попадают из файла в 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С лишь считывает готовый результат из таблиц базы данных. Это делает систему более устойчивой к сбоям и быстрой в работе.