При росте торговой сети свыше 10 точек многие компании сталкиваются с проблемой деградации системы РИБ (Распределенной Информационной Базы). Основные сложности заключаются в конфликтах блокировок при частых обменах: данные о продажах нужны оперативно, но именно в момент синхронизации кассиры не могут пробить чеки. Рассмотрим подробно, как перевести сеть магазинов на работу в единой базе, сохранив стабильность и скорость работы торгового оборудования.
Разберем ситуацию, когда 14 магазинов работают в файловой базе через РИБ. При настройке частого обмена (например, каждые 5-10 минут) 1С инициирует транзакции, которые блокируют таблицы базы данных. В 1С:Розница это часто приводит к тому, что фискальный регистратор (касса) выдает бумажный чек, но в программе транзакция прерывается ошибкой блокировки, и документ ЧекККМ не записывается. Это порождает расхождения в учете и остатках. Выясним причину: файловая база не предназначена для интенсивной многопользовательской работы с частыми фоновыми процессами.
Если полный переход на единую базу пока невозможен, проанализируем шаги по оптимизации текущей архитектуры:
РМК (Рабочее место кассира) кнопку принудительного обмена. Кассир может запустить ее в моменты отсутствия покупателей.Это наиболее современный и эффективный способ. Рассмотрим по шагам, как организовать работу в единой базе для 18 и более пользователей.
Выбор архитектуры сервера
Для работы 18 пользователей файловый вариант базы на сервере недопустим. Нам потребуется переход на клиент-серверный вариант (SQL).
В качестве СУБД оптимально использовать PostgreSQL (желательно специализированную сборку от Postgres Professional для 1С). Это позволит избежать блокировок таблиц на уровне СУБД, так как SQL-сервер гораздо эффективнее управляет конкурентным доступом.
Лицензирование
Важно помнить, что для клиент-серверного режима обязательна покупка Лицензии на сервер 1С:Предприятие. Для небольшой сети магазинов можно рассмотреть 1С:Сервер МИНИ, но так как у нас 18 пользователей, потребуется полноценная 64-разрядная лицензия на сервер.
Публикация базы и Тонкий клиент
Вместо использования RDP (удаленного рабочего стола), который часто вызывает проблемы с пробросом портов кассового оборудования, разберем настройку через Web-сервер (IIS или Apache):
При такой схеме 1С работает через протокол HTTP/HTTPS. Это обеспечивает высокую скорость работы интерфейса даже на не самых быстрых каналах связи.
Одной из главных опасностей работы через удаленный сервер является стабильность связи с фискальным регистратором (ККТ). Проанализируем способы подключения:
Основной риск единой базы — полная остановка торговли при обрыве связи. Посмотрим, как минимизировать риски:
1С:Розница 3.0 реализованы механизмы, позволяющие кассе накапливать чеки в локальном буфере и отправлять их в базу при восстановлении связи.Если вы планируете арендовать сервер, проанализируем минимальные характеристики для 18 пользователей:
Рассмотрим пример настройки регламентного задания для очистки логов, чтобы база не разрасталась неоправданно быстро при интенсивной работе множества точек:
Процедура ОчиститьЖурналРегистрации()
КонецПериода = ТекущаяДата() - (60 * 60 * 24 * 30); // Удаляем записи старше 30 дней
ВыгрузитьЖурналРегистрации("C:\Backup\Log.xml", КонецПериода);
ОчиститьЖурналРегистрации(КонецПериода);
КонецПроцедуры
Для стабильной работы сети из 14 магазинов рекомендуем отказаться от РИБ в пользу централизованной базы. Оптимальный стек технологий: 1С:Розница 3.0 + PostgreSQL + Web-сервер + Тонкий клиент. Это обеспечит оперативность данных, отсутствие блокировок при пробитии чеков и упростит администрирование системы (обновление конфигурации нужно будет делать только один раз в центральной базе).